public void CanCloneWithNullRateLimit()
            {
                var original = new ApiInfo(
                    new Dictionary <string, Uri>
                {
                    {
                        "next",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=4&per_page=5")
                    },
                    {
                        "last",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=131&per_page=5")
                    },
                    {
                        "first",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=1&per_page=5")
                    },
                    {
                        "prev",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=2&per_page=5")
                    }
                },
                    "123abc",
                    null,
                    new FairUsageLimit(151));

                var clone = original.Clone();

                Assert.NotNull(clone);
                Assert.Equal(4, clone.Links.Count);
                Assert.Equal("123abc", clone.Etag);
                Assert.Null(clone.RateLimit);
                Assert.Equal(151, clone.FairUsageLimit.DailyRequestsLeft);
            }
            public void CanCloneWithNullETag()
            {
                var original = new ApiInfo(
                    new Dictionary <string, Uri>
                {
                    {
                        "next",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=4&per_page=5")
                    },
                    {
                        "last",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=131&per_page=5")
                    },
                    {
                        "first",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=1&per_page=5")
                    },
                    {
                        "prev",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=2&per_page=5")
                    }
                },
                    null,
                    new RateLimit(100, 75, 1372700873));

                var clone = original.Clone();

                Assert.NotNull(clone);
                Assert.Equal(4, clone.Links.Count);
                Assert.Null(clone.Etag);
                Assert.Equal(100, clone.RateLimit.Limit);
                Assert.Equal(75, clone.RateLimit.Remaining);
                Assert.Equal(1372700873, clone.RateLimit.ResetAsUtcEpochSeconds);
            }
Example #3
0
            public void CanClone()
            {
                var original = new ApiInfo(
                    new Dictionary <string, Uri>
                {
                    {
                        "next",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=4&per_page=5")
                    },
                    {
                        "last",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=131&per_page=5")
                    },
                    {
                        "first",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=1&per_page=5")
                    },
                    {
                        "prev",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=2&per_page=5")
                    }
                },
                    "5634b0b187fd2e91e3126a75006cc4fa",
                    new RateLimit(100, 75, 1372700873)
                    );

                var clone = original.Clone();

                // Note the use of Assert.NotSame tests for value types - this should continue to test should the underlying
                // model are changed to Object types
                Assert.NotSame(original, clone);

                Assert.Equal(original.Etag, clone.Etag);
                Assert.NotSame(original.Etag, clone.Etag);

                Assert.Equal(original.Links.Count, clone.Links.Count);
                Assert.NotSame(original.Links, clone.Links);
                for (int i = 0; i < original.Links.Count; i++)
                {
                    Assert.Equal(original.Links.Keys.ToArray()[i], clone.Links.Keys.ToArray()[i]);
                    Assert.NotSame(original.Links.Keys.ToArray()[i], clone.Links.Keys.ToArray()[i]);
                    Assert.Equal(original.Links.Values.ToArray()[i].ToString(), clone.Links.Values.ToArray()[i].ToString());
                    Assert.NotSame(original.Links.Values.ToArray()[i], clone.Links.Values.ToArray()[i]);
                }

                Assert.NotSame(original.RateLimit, clone.RateLimit);
                Assert.Equal(original.RateLimit.Limit, clone.RateLimit.Limit);
                Assert.NotSame(original.RateLimit.Limit, clone.RateLimit.Limit);
                Assert.Equal(original.RateLimit.Remaining, clone.RateLimit.Remaining);
                Assert.NotSame(original.RateLimit.Remaining, clone.RateLimit.Remaining);
                Assert.Equal(original.RateLimit.ResetAsUtcEpochSeconds, clone.RateLimit.ResetAsUtcEpochSeconds);
                Assert.NotSame(original.RateLimit.ResetAsUtcEpochSeconds, clone.RateLimit.ResetAsUtcEpochSeconds);
                Assert.Equal(original.RateLimit.Reset, clone.RateLimit.Reset);
                Assert.NotSame(original.RateLimit.Reset, clone.RateLimit.Reset);
            }
Example #4
0
            public void CanCloneWithNullRateLimit()
            {
                var original = new ApiInfo(
                    new Dictionary <string, Uri>
                {
                    {
                        "next",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=4&per_page=5")
                    },
                    {
                        "last",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=131&per_page=5")
                    },
                    {
                        "first",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=1&per_page=5")
                    },
                    {
                        "prev",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=2&per_page=5")
                    }
                },
                    new List <string>
                {
                    "user"
                },
                    new List <string>(),
                    "123abc",
                    null
                    );

                var clone = original.Clone();

                Assert.NotNull(clone);
                Assert.Equal(4, clone.Links.Count);
                Assert.Equal(1, clone.OauthScopes.Count);
                Assert.Equal(0, clone.AcceptedOauthScopes.Count);
                Assert.Equal("123abc", clone.Etag);
                Assert.Null(clone.RateLimit);
            }
            public void CanCloneWithNullFairUsageLimit()
            {
                var original = new ApiInfo(
                    new Dictionary <string, Uri>
                {
                    {
                        "next",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=4&per_page=5")
                    },
                    {
                        "last",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=131&per_page=5")
                    },
                    {
                        "first",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=1&per_page=5")
                    },
                    {
                        "prev",
                        new Uri("https://api.github.com/repos/rails/rails/issues?page=2&per_page=5")
                    }
                },
                    "123abc",
                    new RateLimit(1, 2, 3),
                    null);

                var clone = original.Clone();

                Assert.NotNull(clone);
                Assert.Equal(4, clone.Links.Count);
                Assert.Equal("123abc", clone.Etag);
                Assert.Equal(1, clone.RateLimit.Limit);
                Assert.Equal(2, clone.RateLimit.Remaining);
                Assert.Equal(3, clone.RateLimit.ResetInSeconds);
                Assert.Null(clone.FairUsageLimit);
            }
            public void CanClone()
            {
                var original = new ApiInfo(
                                new Dictionary<string, Uri>
                                {
                                    {
                                        "next",
                                        new Uri("https://api.github.com/repos/rails/rails/issues?page=4&per_page=5")
                                    },
                                    {
                                        "last",
                                        new Uri("https://api.github.com/repos/rails/rails/issues?page=131&per_page=5")
                                    },
                                    {
                                        "first",
                                        new Uri("https://api.github.com/repos/rails/rails/issues?page=1&per_page=5")
                                    },
                                    {
                                        "prev",
                                        new Uri("https://api.github.com/repos/rails/rails/issues?page=2&per_page=5")
                                    }
                                },
                                new List<string>
                                {
                                    "user",
                                },
                                new List<string>
                                {
                                    "user", 
                                    "public_repo",
                                    "repo",
                                    "gist"
                                },
                                "5634b0b187fd2e91e3126a75006cc4fa",
                                new RateLimit(100, 75, 1372700873)
                            );

                var clone = original.Clone();

                // Note the use of Assert.NotSame tests for value types - this should continue to test should the underlying 
                // model are changed to Object types
                Assert.NotSame(original, clone);

                Assert.Equal(original.Etag, clone.Etag);
                Assert.NotSame(original.Etag, clone.Etag);

                Assert.Equal(original.AcceptedOauthScopes.Count, clone.AcceptedOauthScopes.Count);
                Assert.NotSame(original.AcceptedOauthScopes, clone.AcceptedOauthScopes);
                for (int i = 0; i < original.AcceptedOauthScopes.Count; i++)
                {
                    Assert.Equal(original.AcceptedOauthScopes[i], clone.AcceptedOauthScopes[i]);
                    Assert.NotSame(original.AcceptedOauthScopes[i], clone.AcceptedOauthScopes[i]);
                }

                Assert.Equal(original.Links.Count, clone.Links.Count);
                Assert.NotSame(original.Links, clone.Links);
                for (int i = 0; i < original.Links.Count; i++)
                {
                    Assert.Equal(original.Links.Keys.ToArray()[i], clone.Links.Keys.ToArray()[i]);
                    Assert.NotSame(original.Links.Keys.ToArray()[i], clone.Links.Keys.ToArray()[i]);
                    Assert.Equal(original.Links.Values.ToArray()[i].ToString(), clone.Links.Values.ToArray()[i].ToString());
                    Assert.NotSame(original.Links.Values.ToArray()[i], clone.Links.Values.ToArray()[i]);
                }

                Assert.Equal(original.OauthScopes.Count, clone.OauthScopes.Count);
                Assert.NotSame(original.OauthScopes, clone.OauthScopes);
                for (int i = 0; i < original.OauthScopes.Count; i++)
                {
                    Assert.Equal(original.OauthScopes[i], clone.OauthScopes[i]);
                    Assert.NotSame(original.OauthScopes[i], clone.OauthScopes[i]);
                }

                Assert.NotSame(original.RateLimit, clone.RateLimit);
                Assert.Equal(original.RateLimit.Limit, clone.RateLimit.Limit);
                Assert.NotSame(original.RateLimit.Limit, clone.RateLimit.Limit);
                Assert.Equal(original.RateLimit.Remaining, clone.RateLimit.Remaining);
                Assert.NotSame(original.RateLimit.Remaining, clone.RateLimit.Remaining);
                Assert.Equal(original.RateLimit.ResetAsUtcEpochSeconds, clone.RateLimit.ResetAsUtcEpochSeconds);
                Assert.NotSame(original.RateLimit.ResetAsUtcEpochSeconds, clone.RateLimit.ResetAsUtcEpochSeconds);
                Assert.Equal(original.RateLimit.Reset, clone.RateLimit.Reset);
                Assert.NotSame(original.RateLimit.Reset, clone.RateLimit.Reset);
            }