public async Task PostsToCorrectUrlWithRepositoryId()
        {
            var connection    = Substitute.For <IApiConnection>();
            var client        = new PullRequestReviewsClient(connection);
            var submitMessage = new PullRequestReviewSubmit()
            {
                Body  = "string",
                Event = PullRequestReviewEvent.Approve
            };
            await client.Submit(1, 13, 13, submitMessage);

            connection.Received().Post <PullRequestReview>(Arg.Is <Uri>(u => u.ToString() == "repositories/1/pulls/13/reviews/13/events"), submitMessage, null, null);
        }
            public void PostsToCorrectUrlWithRepositoryId()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservablePullRequestReviewsClient(gitHubClient);

                var submitMessage = new PullRequestReviewSubmit()
                {
                    Body  = "string",
                    Event = PullRequestReviewEvent.Approve
                };

                client.Submit(1, 13, 13, submitMessage);

                gitHubClient.Received().PullRequest.Review.Submit(1, 13, 13, submitMessage);
            }
            public void EnsuresNonNullArguments()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservablePullRequestReviewsClient(gitHubClient);

                var submitMessage = new PullRequestReviewSubmit()
                {
                    Body  = "string",
                    Event = PullRequestReviewEvent.Approve
                };

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

                Assert.Throws <ArgumentException>(() => client.Submit("", "name", 1, 1, submitMessage));
                Assert.Throws <ArgumentException>(() => client.Submit("owner", "", 1, 1, submitMessage));
            }
        public async Task EnsuresNonNullArguments()
        {
            var connection = Substitute.For <IApiConnection>();
            var client     = new PullRequestReviewsClient(connection);

            var submitMessage = new PullRequestReviewSubmit()
            {
                Body  = "string",
                Event = PullRequestReviewEvent.Approve
            };

            await Assert.ThrowsAsync <ArgumentNullException>(() => client.Submit(null, "name", 1, 1, submitMessage));

            await Assert.ThrowsAsync <ArgumentNullException>(() => client.Submit("owner", null, 1, 1, submitMessage));

            await Assert.ThrowsAsync <ArgumentNullException>(() => client.Submit("owner", "name", 1, 1, null));

            await Assert.ThrowsAsync <ArgumentException>(() => client.Submit("", "name", 1, 1, submitMessage));

            await Assert.ThrowsAsync <ArgumentException>(() => client.Submit("owner", "", 1, 1, submitMessage));
        }
Exemplo n.º 5
0
        public async Task CanSubmitApprovedReviewWithRepositoryId()
        {
            using (var context = await _github.CreateRepositoryContext("test-repo"))
            {
                await _github.CreateTheWorld(context.Repository);

                var pullRequest = await _github2.CreatePullRequest(context.Repository);

                var createdReview = await _github.CreatePullRequestReview(context.Repository, pullRequest.Number, "A pending review");

                var submitMessage = new PullRequestReviewSubmit
                {
                    Body  = "Roger roger!",
                    Event = PullRequestReviewEvent.Approve
                };
                var submittedReview = await _client.Submit(context.RepositoryId, pullRequest.Number, createdReview.Id, submitMessage);

                Assert.Equal("Roger roger!", submittedReview.Body);
                Assert.Equal(PullRequestReviewState.Approved, submittedReview.State);
            }
        }
        /// <summary>
        /// Submits a pull request review.
        /// </summary>
        /// <remarks>https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review</remarks>
        /// <param name="repositoryId">The Id of the repository</param>
        /// <param name="number">The pull request number</param>
        /// <param name="reviewId">The pull request review number</param>
        /// <param name="submitMessage">The message and event being submitted for the review</param>
        public IObservable <PullRequestReview> Submit(long repositoryId, int number, long reviewId, PullRequestReviewSubmit submitMessage)
        {
            Ensure.ArgumentNotNull(submitMessage, nameof(submitMessage));

            return(_client.Submit(repositoryId, number, reviewId, submitMessage).ToObservable());
        }
        /// <summary>
        /// Submits a pull request review.
        /// </summary>
        /// <remarks>https://developer.github.com/v3/pulls/reviews/#submit-a-pull-request-review</remarks>
        /// <param name="owner">The owner of the repository</param>
        /// <param name="name">The name of the repository</param>
        /// <param name="number">The pull request number</param>
        /// <param name="reviewId">The pull request review number</param>
        /// <param name="submitMessage">The message and event being submitted for the review</param>
        public IObservable <PullRequestReview> Submit(string owner, string name, int number, long reviewId, PullRequestReviewSubmit submitMessage)
        {
            Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
            Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
            Ensure.ArgumentNotNull(submitMessage, nameof(submitMessage));

            return(_client.Submit(owner, name, number, reviewId, submitMessage).ToObservable());
        }