merge from upstream + conflict fix

This commit is contained in:
Mordechai Zuber
2015-05-19 09:41:44 +03:00
4 changed files with 59 additions and 18 deletions
@@ -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;
@@ -193,12 +194,54 @@ public class PullRequestsClientTests : IDisposable
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
var merge = new MergePullRequest("thing the thing");
var merge = new MergePullRequest { Message = "thing the thing" };
var result = await _fixture.Merge(Helper.UserName, _repository.Name, pullRequest.Number, merge);
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<ApiException>(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()
{
@@ -207,7 +250,7 @@ public class PullRequestsClientTests : IDisposable
var newPullRequest = new NewPullRequest("a pull request", branchName, "master");
var pullRequest = await _fixture.Create(Helper.UserName, _repository.Name, newPullRequest);
var merge = new MergePullRequest("thing the thing");
var merge = new MergePullRequest { Message = "thing the thing" };
var result = await _fixture.Merge(Helper.UserName, _repository.Name, pullRequest.Number, merge);
var master = await _client.GitDatabase.Reference.Get(Helper.UserName, _repository.Name, "heads/master");
@@ -138,9 +138,9 @@ namespace Octokit.Tests.Clients
public class TheMergeMethod
{
[Fact]
public void PutsToCorrectUrl()
public void PutsToCorrectUrl()
{
var mergePullRequest = new MergePullRequest("fake commit message");
var mergePullRequest = new MergePullRequest { Message = "fake commit message" };
var connection = Substitute.For<IApiConnection>();
var client = new PullRequestsClient(connection);
@@ -157,9 +157,9 @@ namespace Octokit.Tests.Clients
var client = new PullRequestsClient(connection);
await Assert.ThrowsAsync<ArgumentNullException>(() =>
client.Merge(null, "name", 42, new MergePullRequest("message")));
client.Merge(null, "name", 42, new MergePullRequest { Message = "message" }));
await Assert.ThrowsAsync<ArgumentNullException>(() =>
client.Merge("owner", null, 42, new MergePullRequest("message")));
client.Merge("owner", null, 42, new MergePullRequest { Message = "message" }));
await Assert.ThrowsAsync<ArgumentNullException>(() =>
client.Merge("owner", "name", 42, null));
}
@@ -224,7 +224,7 @@ namespace Octokit.Tests.Reactive
[Fact]
public void MergesPullRequest()
{
var mergePullRequest = new MergePullRequest("fake commit message");
var mergePullRequest = new MergePullRequest { Message = "fake commit message" };
var gitHubClient = Substitute.For<IGitHubClient>();
var client = new ObservablePullRequestsClient(gitHubClient);
@@ -240,9 +240,9 @@ namespace Octokit.Tests.Reactive
var client = new PullRequestsClient(connection);
await AssertEx.Throws<ArgumentNullException>(async () => await
client.Merge(null, "name", 42, new MergePullRequest("message")));
client.Merge(null, "name", 42, new MergePullRequest { Message = "message" }));
await AssertEx.Throws<ArgumentNullException>(async () => await
client.Merge("owner", null, 42, new MergePullRequest("message")));
client.Merge("owner", null, 42, new MergePullRequest { Message = "message" }));
await AssertEx.Throws<ArgumentNullException>(async () => await
client.Merge("owner", "name", 42, null));
}
+7 -9
View File
@@ -11,23 +11,21 @@ namespace Octokit
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class MergePullRequest
{
public MergePullRequest(string message)
{
Ensure.ArgumentNotNull(message, "message");
Message = message;
}
/// <summary>
/// The message that will be used for the merge commit (optional)
/// </summary>
public string Message { get; private set; }
public string Message { get; set; }
/// <summary>
/// The SHA that pull request head must match to allow merge (optional)
/// </summary>
public string Sha { get; set; }
internal string DebuggerDisplay
{
get
{
return String.Format(CultureInfo.InvariantCulture, "Message: {0}", Message);
return String.Format(CultureInfo.InvariantCulture, "Message: '{0}', Sha: '{1}'", Message, Sha);
}
}
}