mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-04 19:26:51 +00:00
merge from upstream + conflict fix
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user