Exemplo n.º 1
0
        public async Task CanCreateApprovedReviewWithRepositoryId()
        {
            using (var context = await _github.CreateRepositoryContext("test-repo"))
            {
                await _github.CreateTheWorld(context.Repository);

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

                const string body = "A review comment message";

                var review = new PullRequestReviewCreate()
                {
                    CommitId = pullRequest.Head.Sha,
                    Body     = body,
                    Event    = PullRequestReviewEvent.Approve,
                    Comments = new List <DraftPullRequestReviewComment>
                    {
                        new DraftPullRequestReviewComment("comment 1", "README.md", 1),
                        new DraftPullRequestReviewComment("comment 2", "README.md", 2)
                    }
                };

                var createdReview = await _client.Create(context.RepositoryId, pullRequest.Number, review);

                Assert.NotNull(createdReview);
                Assert.Equal(body, createdReview.Body);
                Assert.Equal(PullRequestReviewState.Approved, createdReview.State);
                Assert.Equal(pullRequest.Head.Sha, createdReview.CommitId);
            }
        }
        public async Task EnsuresNonNullArguments()
        {
            var connection = Substitute.For <IApiConnection>();
            var client     = new PullRequestReviewsClient(connection);

            string body     = "Comment content";
            string path     = "file.css";
            int    position = 7;

            var comment = new DraftPullRequestReviewComment(body, path, position);

            var review = new PullRequestReviewCreate()
            {
                CommitId = "commit",
                Body     = "body",
                Event    = PullRequestReviewEvent.Approve
            };

            review.Comments.Add(comment);

            await Assert.ThrowsAsync <ArgumentNullException>(() => client.Create(null, "fakeRepoName", 1, review));

            await Assert.ThrowsAsync <ArgumentNullException>(() => client.Create("fakeOwner", null, 1, review));

            await Assert.ThrowsAsync <ArgumentNullException>(() => client.Create("fakeOwner", "fakeRepoName", 1, null));

            await Assert.ThrowsAsync <ArgumentException>(() => client.Create("", "fakeRepoName", 1, review));

            await Assert.ThrowsAsync <ArgumentException>(() => client.Create("fakeOwner", "", 1, review));
        }
Exemplo n.º 3
0
        public static async Task <PullRequestReview> CreatePullRequestReview(this IGitHubClient client, Repository repository, int number, string body, PullRequestReviewEvent? @event = null, string commitId = null, List <DraftPullRequestReviewComment> comments = null)
        {
            var review = new PullRequestReviewCreate()
            {
                CommitId = commitId,
                Body     = body,
                Event    = @event,
                Comments = comments
            };

            var createdReview = await client.PullRequest.Review.Create(repository.Owner.Login, repository.Name, number, review);

            return(createdReview);
        }
            public void PostsToCorrectUrlWithRepositoryId()
            {
                var gitHubClient = Substitute.For <IGitHubClient>();
                var client       = new ObservablePullRequestReviewsClient(gitHubClient);

                var comment = new DraftPullRequestReviewComment("Comment content", "file.css", 7);
                var review  = new PullRequestReviewCreate()
                {
                    CommitId = "commit",
                    Body     = "body",
                    Event    = PullRequestReviewEvent.Approve
                };

                review.Comments.Add(comment);

                client.Create(1, 13, review);

                gitHubClient.Received().PullRequest.Review.Create(1, 53, review);
            }
Exemplo n.º 5
0
        public IObservable<PullRequestReview> PostPullRequestReview(
            string owner,
            string name,
            int number,
            string commitId,
            string body,
            PullRequestReviewEvent e)
        {
            Guard.ArgumentNotEmptyString(owner, nameof(owner));
            Guard.ArgumentNotEmptyString(name, nameof(name));

            var review = new PullRequestReviewCreate
            {
                Body = body,
                CommitId = commitId,
                Event = e,
            };

            return gitHubClient.PullRequest.Review.Create(owner, name, number, review);
        }
        public void PostsToCorrectUrlWithRepositoryId()
        {
            var connection = Substitute.For <IApiConnection>();
            var client     = new PullRequestReviewsClient(connection);

            var comment = new DraftPullRequestReviewComment("Comment content", "file.css", 7);

            var review = new PullRequestReviewCreate()
            {
                CommitId = "commit",
                Body     = "body",
                Event    = PullRequestReviewEvent.Approve
            };

            review.Comments.Add(comment);

            client.Create(1, 13, review);

            connection.Received().Post <PullRequestReview>(Arg.Is <Uri>(u => u.ToString() == "repositories/1/pulls/13/reviews"),
                                                           review, null, null);
        }
        public void PullRequestReviewCreateEnsuresArgumentsValue()
        {
            string body = "body";
            string path = "path";
            PullRequestReviewEvent evt = PullRequestReviewEvent.Approve;
            int position = 1;

            var comment = new DraftPullRequestReviewComment(body, path, position);

            var review = new PullRequestReviewCreate()
            {
                Body  = body,
                Event = evt
            };

            review.Comments.Add(comment);


            Assert.Equal(body, review.Body);
            Assert.Equal(evt, review.Event);
            Assert.NotEmpty(review.Comments);
        }
        /// <summary>
        /// Creates a pull request review.
        /// </summary>
        /// <remarks>https://developer.github.com/v3/pulls/reviews/#create-a-pull-request-review</remarks>
        /// <param name="repositoryId">The Id of the repository</param>
        /// <param name="number">The Pull Request number</param>
        /// <param name="review">The review</param>
        public IObservable <PullRequestReview> Create(long repositoryId, int number, PullRequestReviewCreate review)
        {
            Ensure.ArgumentNotNull(review, nameof(review));

            return(_client.Create(repositoryId, number, review).ToObservable());
        }
 /// <summary>
 /// Creates a pull request review.
 /// </summary>
 /// <remarks>https://developer.github.com/v3/pulls/reviews/#create-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="review">The review</param>
 public IObservable <PullRequestReview> Create(string owner, string name, int number, PullRequestReviewCreate review)
 {
     Ensure.ArgumentNotNullOrEmptyString(owner, nameof(owner));
     Ensure.ArgumentNotNullOrEmptyString(name, nameof(name));
     Ensure.ArgumentNotNull(review, nameof(review));
     return(_client.Create(owner, name, number, review).ToObservable());
 }