diff --git a/Octokit.Tests.Integration/Clients/PullRequestsClientTests.cs b/Octokit.Tests.Integration/Clients/PullRequestsClientTests.cs index c35caa37..d98f8acb 100644 --- a/Octokit.Tests.Integration/Clients/PullRequestsClientTests.cs +++ b/Octokit.Tests.Integration/Clients/PullRequestsClientTests.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Octokit; +using Octokit.Tests.Helpers; using Octokit.Tests.Integration; using Xunit; @@ -199,6 +200,48 @@ public class PullRequestsClientTests : IDisposable Assert.True(result.Merged); } + [IntegrationTest] + public async Task CanBeMergedWithNoOptionalInput() + { + await CreateTheWorld(); + + var newPullRequest = new NewPullRequest("a pull request", branchName, "master"); + var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest); + + var merge = new MergePullRequest(); + var result = await _fixture.Merge(Helper.UserName, _repository.Name, pullRequest.Number, merge); + + Assert.True(result.Merged); + } + [IntegrationTest] + public async Task CanBeMergedWithShaSpecified() + { + await CreateTheWorld(); + + var newPullRequest = new NewPullRequest("a pull request", branchName, "master"); + var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest); + + var merge = new MergePullRequest { Message = "thing the thing", Sha = pullRequest.Head.Sha }; + var result = await _fixture.Merge(Helper.UserName, _repository.Name, pullRequest.Number, merge); + + Assert.True(result.Merged); + } + + [IntegrationTest] + public async Task CannotBeMerged() + { + await CreateTheWorld(); + var fakeSha = new string('f', 40); + + var newPullRequest = new NewPullRequest("a pull request", branchName, "master"); + var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest); + + var merge = new MergePullRequest { Sha = fakeSha }; + var ex = await AssertEx.Throws(async () => await _fixture.Merge(Helper.UserName, _repository.Name, pullRequest.Number, merge)); + + Assert.True(ex.ApiError.Message.StartsWith("Head branch was modified")); + } + [IntegrationTest] public async Task UpdatesMaster() {