diff --git a/Octokit.Tests/Octokit.Tests.csproj b/Octokit.Tests/Octokit.Tests.csproj index 5c6484c3..9f226d4e 100644 --- a/Octokit.Tests/Octokit.Tests.csproj +++ b/Octokit.Tests/Octokit.Tests.csproj @@ -212,6 +212,7 @@ + diff --git a/Octokit.Tests/Reactive/ObservableRepositoryCommitsClientTests.cs b/Octokit.Tests/Reactive/ObservableRepositoryCommitsClientTests.cs new file mode 100644 index 00000000..a99938b4 --- /dev/null +++ b/Octokit.Tests/Reactive/ObservableRepositoryCommitsClientTests.cs @@ -0,0 +1,50 @@ +using System; +using System.Reactive.Threading.Tasks; +using System.Threading.Tasks; +using NSubstitute; +using Octokit.Reactive; +using Xunit; + +namespace Octokit.Tests.Reactive +{ + public class ObservableRepositoryCommitsClientTests + { + public class TheGetSha1Method + { + [Fact] + public void EnsuresNonNullArguments() + { + var client = new ObservableRepositoryCommitsClient(Substitute.For()); + + Assert.ThrowsAsync(() => client.GetSha1("", "name", "reference").ToTask()); + Assert.ThrowsAsync(() => client.GetSha1("owner", "", "reference").ToTask()); + Assert.ThrowsAsync(() => client.GetSha1("owner", "name", "").ToTask()); + } + + [Fact] + public async Task EnsuresNonEmptyArguments() + { + var client = new ObservableRepositoryCommitsClient(Substitute.For()); + + await Assert.ThrowsAsync(() => client.GetSha1(null, "name", "reference").ToTask()); + await Assert.ThrowsAsync(() => client.GetSha1("owner", null, "reference").ToTask()); + await Assert.ThrowsAsync(() => client.GetSha1("owner", "name", null).ToTask()); + } + + [Fact] + public void GetsCorrectUrl() + { + var gitHubClient = Substitute.For(); + var client = new ObservableRepositoryCommitsClient(gitHubClient); + + client.GetSha1("owner", "name", "reference"); + + gitHubClient + .Received() + .Repository + .Commit + .GetSha1("owner", "name", "reference"); + } + } + } +}