public async Task EnsuresNonNullArguments()
            {
                var client = new ObservableIssuesEventsClient(Substitute.For <IGitHubClient>());

                Assert.Throws <ArgumentNullException>(() => client.GetAllForIssue(null, "name", 1));
                Assert.Throws <ArgumentNullException>(() => client.GetAllForIssue("owner", null, 1));

                Assert.Throws <ArgumentNullException>(() => client.GetAllForIssue(null, "name", 1, ApiOptions.None));
                Assert.Throws <ArgumentNullException>(() => client.GetAllForIssue("owner", null, 1, ApiOptions.None));
                Assert.Throws <ArgumentNullException>(() => client.GetAllForIssue("owner", "name", 1, null));
            }
Ejemplo n.º 2
0
            public async Task RequestsCorrectUrlWithApiOptions()
            {
                var result = new List <IssueEvent> {
                    new IssueEvent()
                };

                var connection   = Substitute.For <IConnection>();
                var gitHubClient = new GitHubClient(connection);
                var client       = new ObservableIssuesEventsClient(gitHubClient);

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

                IApiResponse <List <IssueEvent> > response = new ApiResponse <List <IssueEvent> >(CreateResponse(HttpStatusCode.OK), result);

                gitHubClient.Connection.Get <List <IssueEvent> >(Args.Uri, Arg.Is <Dictionary <string, string> >(d => d.Count == 2), null)
                .Returns(Task.FromResult(response));

                var eventInfos = await client.GetAllForIssue("fake", "repo", 42, options).ToList();

                connection.Received().Get <List <IssueEvent> >(Arg.Is <Uri>(u => u.ToString() == "repos/fake/repo/issues/42/events"), Arg.Is <Dictionary <string, string> >(d => d.Count == 2), null);
                Assert.Equal(1, eventInfos.Count);
            }
Ejemplo n.º 3
0
            public async Task RequestsCorrectUrlWithRepositoryIdWithApiOptions()
            {
                var result = new List <IssueEvent> {
                    new IssueEvent()
                };

                var connection   = Substitute.For <IConnection>();
                var gitHubClient = new GitHubClient(connection);
                var client       = new ObservableIssuesEventsClient(gitHubClient);

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

                IApiResponse <List <IssueEvent> > response = new ApiResponse <List <IssueEvent> >(
                    new Response
                {
                    ApiInfo = new ApiInfo(new Dictionary <string, Uri>(), new List <string>(), new List <string>(), "etag", new RateLimit()),
                }, result);

                gitHubClient.Connection.Get <List <IssueEvent> >(Args.Uri, Arg.Is <Dictionary <string, string> >(d => d.Count == 2), null)
                .Returns(Task.FromResult(response));

                var eventInfos = await client.GetAllForIssue(1, 42, options).ToList();

                connection.Received().Get <List <IssueEvent> >(Arg.Is <Uri>(u => u.ToString() == "repositories/1/issues/42/events"), Arg.Is <Dictionary <string, string> >(d => d.Count == 2), null);
                Assert.Equal(1, eventInfos.Count);
            }
Ejemplo n.º 4
0
            public async Task RequestsCorrectUrlWithRepositoryId()
            {
                var result = new List <IssueEvent> {
                    new IssueEvent()
                };

                var connection   = Substitute.For <IConnection>();
                var gitHubClient = new GitHubClient(connection);
                var client       = new ObservableIssuesEventsClient(gitHubClient);

                IApiResponse <List <IssueEvent> > response = new ApiResponse <List <IssueEvent> >(CreateResponse(HttpStatusCode.OK), result);

                gitHubClient.Connection.Get <List <IssueEvent> >(Args.Uri, Args.EmptyDictionary, null)
                .Returns(Task.FromResult(response));

                var eventInfos = await client.GetAllForIssue(1, 42).ToList();

                connection.Received().Get <List <IssueEvent> >(Arg.Is <Uri>(u => u.ToString() == "repositories/1/issues/42/events"), Args.EmptyDictionary, null);
                Assert.Equal(1, eventInfos.Count);
            }
            public async Task RequestsCorrectUrl()
            {
                var result = new List <EventInfo> {
                    new EventInfo()
                };

                var connection   = Substitute.For <IConnection>();
                var gitHubClient = new GitHubClient(connection);
                var client       = new ObservableIssuesEventsClient(gitHubClient);

                IApiResponse <List <EventInfo> > response = new ApiResponse <List <EventInfo> >(
                    new Response
                {
                    ApiInfo = new ApiInfo(new Dictionary <string, Uri>(), new List <string>(), new List <string>(), "etag", new RateLimit()),
                }, result);

                gitHubClient.Connection.Get <List <EventInfo> >(Args.Uri, Args.EmptyDictionary, null)
                .Returns(Task.FromResult(response));

                var eventInfos = await client.GetAllForIssue("fake", "repo", 42).ToList();

                connection.Received().Get <List <EventInfo> >(Arg.Is <Uri>(u => u.ToString() == "repos/fake/repo/issues/42/events"), Args.EmptyDictionary, null);
                Assert.Equal(1, eventInfos.Count);
            }