Beispiel #1
0
            public void EnsuresArguments()
            {
                var client = new ObservableRepositoriesClient(Substitute.For <IGitHubClient>());

                Assert.Throws <ArgumentNullException>(() => client.GetAllContributors(null, "repo"));
                Assert.Throws <ArgumentNullException>(() => client.GetAllContributors("owner", null));
                Assert.Throws <ArgumentException>(() => client.GetAllContributors("", "repo"));
                Assert.Throws <ArgumentException>(() => client.GetAllContributors("owner", ""));
            }
            public void RequestsTheCorrectUrlWithRepositoryIdIncludeAnonymous()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservableRepositoriesClient(gitHubClient);

                client.GetAllContributors(1, true);

                gitHubClient.Connection.Received()
                .Get <List <RepositoryContributor> >(Arg.Is <Uri>(u => u.ToString() == "repositories/1/contributors"), Arg.Is <IDictionary <string, string> >(d => d["anon"] == "1"), null);
            }
Beispiel #3
0
            public void GetsCorrectUrl()
            {
                var github   = Substitute.For <IGitHubClient>();
                var client   = new ObservableRepositoriesClient(github);
                var expected = new Uri("repos/owner/repo/contributors", UriKind.Relative);

                client.GetAllContributors("owner", "repo");

                github.Connection.Received(1)
                .Get <List <RepositoryContributor> >(expected,
                                                     Arg.Any <IDictionary <string, string> >(),
                                                     Arg.Any <string>());
            }
            public void RequestsTheCorrectUrlWithRepositoryId()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservableRepositoriesClient(gitHubClient);
                var expected     = new Uri("repositories/1/contributors", UriKind.Relative);

                client.GetAllContributors(1);

                gitHubClient.Connection.Received(1)
                .Get <List <RepositoryContributor> >(expected,
                                                     Args.EmptyDictionary,
                                                     null);
            }
            public void RequestsTheCorrectUrlWithRepositoryIdWithApiOptionsIncludeAnonymous()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservableRepositoriesClient(gitHubClient);

                var options = new ApiOptions
                {
                    PageCount = 1,
                    StartPage = 1,
                    PageSize  = 1
                };

                client.GetAllContributors(1, true, options);

                gitHubClient.Connection.Received()
                .Get <List <RepositoryContributor> >(Arg.Is <Uri>(u => u.ToString() == "repositories/1/contributors"), Arg.Is <IDictionary <string, string> >(d => d.Count == 3 && d["anon"] == "1" && d["page"] == "1" && d["per_page"] == "1"), null);
            }
            public void RequestsTheCorrectUrlWithApiOptionsWithRepositoryId()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservableRepositoriesClient(gitHubClient);
                var expected     = new Uri("repositories/1/contributors", UriKind.Relative);

                var options = new ApiOptions
                {
                    PageCount = 1,
                    StartPage = 1,
                    PageSize  = 1
                };

                client.GetAllContributors(1, options);

                gitHubClient.Connection.Received(1)
                .Get <List <RepositoryContributor> >(expected,
                                                     Arg.Is <IDictionary <string, string> >(d => d.Count == 2),
                                                     null);
            }