From e6cb205249d624f9d6d86bc6279f3b971b94fb1b Mon Sep 17 00:00:00 2001 From: "aedampir@gmail.com" Date: Sun, 22 May 2016 01:41:32 +0700 Subject: [PATCH] added unit tests --- Octokit.Tests/Clients/MergingClientTests.cs | 21 +++++- Octokit.Tests/Octokit.Tests.csproj | 1 + .../Reactive/ObservableMergingClientTests.cs | 68 +++++++++++++++++++ 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 Octokit.Tests/Reactive/ObservableMergingClientTests.cs diff --git a/Octokit.Tests/Clients/MergingClientTests.cs b/Octokit.Tests/Clients/MergingClientTests.cs index fa384c94..f7747689 100644 --- a/Octokit.Tests/Clients/MergingClientTests.cs +++ b/Octokit.Tests/Clients/MergingClientTests.cs @@ -10,7 +10,7 @@ namespace Octokit.Tests.Clients public class TheCreateMethod { [Fact] - public void PostsToTheCorrectUrl() + public void RequestsTheCorrectUrl() { var connection = Substitute.For(); var client = new MergingClient(connection); @@ -27,6 +27,24 @@ namespace Octokit.Tests.Clients && nm.CommitMessage == "some mergingMessage")); } + [Fact] + public void RequestsTheCorrectUrlWithRepositoryId() + { + var connection = Substitute.For(); + var client = new MergingClient(connection); + + var newMerge = new NewMerge("baseBranch", "shaToMerge") + { + CommitMessage = "some mergingMessage" + }; + client.Create(1, newMerge); + + connection.Received().Post(Arg.Is(u => u.ToString() == "repositories/1/merges"), + Arg.Is(nm => nm.Base == "baseBranch" + && nm.Head == "shaToMerge" + && nm.CommitMessage == "some mergingMessage")); + } + [Fact] public async Task EnsuresNonNullArguments() { @@ -36,6 +54,7 @@ namespace Octokit.Tests.Clients await Assert.ThrowsAsync(() => client.Create(null, "name", newMerge)); await Assert.ThrowsAsync(() => client.Create("owner", null, newMerge)); await Assert.ThrowsAsync(() => client.Create("owner", "name", null)); + await Assert.ThrowsAsync(() => client.Create(1, null)); await Assert.ThrowsAsync(() => client.Create("", "name", newMerge)); await Assert.ThrowsAsync(() => client.Create("owner", "", newMerge)); await Assert.ThrowsAsync(() => client.Create("owner", "", null)); diff --git a/Octokit.Tests/Octokit.Tests.csproj b/Octokit.Tests/Octokit.Tests.csproj index 2a8e7c32..07237b37 100644 --- a/Octokit.Tests/Octokit.Tests.csproj +++ b/Octokit.Tests/Octokit.Tests.csproj @@ -201,6 +201,7 @@ + diff --git a/Octokit.Tests/Reactive/ObservableMergingClientTests.cs b/Octokit.Tests/Reactive/ObservableMergingClientTests.cs new file mode 100644 index 00000000..f6ff2405 --- /dev/null +++ b/Octokit.Tests/Reactive/ObservableMergingClientTests.cs @@ -0,0 +1,68 @@ +using System; +using System.Threading.Tasks; +using NSubstitute; +using Octokit.Reactive; +using Xunit; + +namespace Octokit.Tests.Clients +{ + public class ObservableMergingClientTests + { + public class TheCreateMethod + { + [Fact] + public void RequestsTheCorrectUrl() + { + var gitHubClient = Substitute.For(); + var client = new ObservableMergingClient(gitHubClient); + + var newMerge = new NewMerge("baseBranch", "shaToMerge") + { + CommitMessage = "some mergingMessage" + }; + client.Create("owner", "repo", newMerge); + + gitHubClient.Repository.Merging.Received(1).Create("owner", "repo", newMerge); + } + + [Fact] + public void RequestsTheCorrectUrlWithRepositoryId() + { + var gitHubClient = Substitute.For(); + var client = new ObservableMergingClient(gitHubClient); + + var newMerge = new NewMerge("baseBranch", "shaToMerge") + { + CommitMessage = "some mergingMessage" + }; + client.Create(1, newMerge); + + gitHubClient.Repository.Merging.Received(1).Create(1, newMerge); + } + + [Fact] + public async Task EnsuresNonNullArguments() + { + var client = new ObservableMergingClient(Substitute.For()); + + var newMerge = new NewMerge("baseBranch", "shaToMerge") { CommitMessage = "some mergingMessage" }; + Assert.Throws(() => client.Create(null, "name", newMerge)); + Assert.Throws(() => client.Create("owner", null, newMerge)); + Assert.Throws(() => client.Create("owner", "name", null)); + Assert.Throws(() => client.Create(1, null)); + Assert.Throws(() => client.Create("", "name", newMerge)); + Assert.Throws(() => client.Create("owner", "", newMerge)); + Assert.Throws(() => client.Create("owner", "", null)); + } + } + + public class TheCtor + { + [Fact] + public void EnsuresNonNullArguments() + { + Assert.Throws(() => new ObservableMergingClient(null)); + } + } + } +}