From de56f0ba6d458a1651a01c2f7cb65ab280db320e Mon Sep 17 00:00:00 2001 From: Timothy Haagenson Date: Wed, 9 Jul 2014 10:53:06 -0500 Subject: [PATCH] reactive unit tests reactive unit tests --- .../ObservableRepositoryCommitsClients.cs | 2 +- .../ObservableRepositoriesClientTests.cs | 55 +++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/Octokit.Reactive/Clients/ObservableRepositoryCommitsClients.cs b/Octokit.Reactive/Clients/ObservableRepositoryCommitsClients.cs index 2ff37d88..42feefea 100644 --- a/Octokit.Reactive/Clients/ObservableRepositoryCommitsClients.cs +++ b/Octokit.Reactive/Clients/ObservableRepositoryCommitsClients.cs @@ -43,7 +43,7 @@ namespace Octokit.Reactive { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); - Ensure.ArgumentNotNull(reference, "reference"); + Ensure.ArgumentNotNullOrEmptyString(reference, "reference"); return _commit.Get(owner, name, reference).ToObservable(); } diff --git a/Octokit.Tests/Reactive/ObservableRepositoriesClientTests.cs b/Octokit.Tests/Reactive/ObservableRepositoriesClientTests.cs index 02e69a4a..6104bb62 100644 --- a/Octokit.Tests/Reactive/ObservableRepositoriesClientTests.cs +++ b/Octokit.Tests/Reactive/ObservableRepositoriesClientTests.cs @@ -188,6 +188,61 @@ namespace Octokit.Tests.Reactive } } + public class TheGetCommitMethod + { + [Fact] + public void EnsuresArguments() + { + var client = new ObservableRepositoriesClient(Substitute.For()); + + Assert.Throws(() => client.Commits.Get(null, "repo", "reference")); + Assert.Throws(() => client.Commits.Get("owner", null, "reference")); + Assert.Throws(() => client.Commits.Get("owner", "repo", null)); + Assert.Throws(() => client.Commits.Get("", "repo", "reference")); + Assert.Throws(() => client.Commits.Get("owner", "", "reference")); + Assert.Throws(() => client.Commits.Get("owner", "repo", "")); + } + + [Fact] + public void GetsCorrectUrl() + { + var github = Substitute.For(); + var client = new ObservableRepositoriesClient(github); + var expected = new Uri("repos/owner/repo/commits/reference", UriKind.Relative); + + client.Commits.Get("owner", "repo", "reference"); + + github.Repository.Commits.Received(1).Get("owner", "repo", "reference"); + } + } + + public class TheGetAllCommitsMethod + { + [Fact] + public void EnsuresArguments() + { + var client = new ObservableRepositoriesClient(Substitute.For()); + + Assert.Throws(() => client.Commits.GetAll(null, "repo")); + Assert.Throws(() => client.Commits.GetAll("owner", null)); + Assert.Throws(() => client.Commits.GetAll("owner", "repo", null)); + Assert.Throws(() => client.Commits.GetAll("", "repo")); + Assert.Throws(() => client.Commits.GetAll("owner", "")); + } + + [Fact] + public void GetsCorrectUrl() + { + var github = Substitute.For(); + var client = new ObservableRepositoriesClient(github); + var expected = new Uri("repos/owner/repo/commits", UriKind.Relative); + + client.Commits.GetAll("owner", "repo"); + + github.Connection.Received(1).Get>(expected, Arg.Any>(), null); + } + } + public class TheGetAllContributorsMethod { [Fact]