From 7a0fca3fd08fd2d16157bd28b08e7cedfa8bde74 Mon Sep 17 00:00:00 2001 From: "aedampir@gmail.com" Date: Fri, 10 Jun 2016 18:02:00 +0700 Subject: [PATCH] added new unit tests --- Octokit.Tests/Clients/BlobClientTests.cs | 41 ++++++++++++--- .../Reactive/ObservableBlobClientTests.cs | 52 ++++++++++++++----- 2 files changed, 72 insertions(+), 21 deletions(-) diff --git a/Octokit.Tests/Clients/BlobClientTests.cs b/Octokit.Tests/Clients/BlobClientTests.cs index c40a380f..36bd0bb2 100644 --- a/Octokit.Tests/Clients/BlobClientTests.cs +++ b/Octokit.Tests/Clients/BlobClientTests.cs @@ -22,26 +22,38 @@ namespace Octokit.Tests.Clients public class TheGetMethod { [Fact] - public void RequestsCorrectUrl() + public async Task RequestsCorrectUrl() { var connection = Substitute.For(); var client = new BlobsClient(connection); - client.Get("fake", "repo", "123456ABCD"); + await client.Get("fake", "repo", "123456ABCD"); connection.Received().Get(Arg.Is(u => u.ToString() == "repos/fake/repo/git/blobs/123456ABCD")); } + [Fact] + public async Task RequestsCorrectUrlWithRepositoryId() + { + var connection = Substitute.For(); + var client = new BlobsClient(connection); + + await client.Get(1, "123456ABCD"); + + connection.Received().Get(Arg.Is(u => u.ToString() == "repositories/1/git/blobs/123456ABCD")); + } + [Fact] public async Task EnsuresNonNullArguments() { var client = new BlobsClient(Substitute.For()); await Assert.ThrowsAsync(() => client.Get(null, "name", "123456ABCD")); - await Assert.ThrowsAsync(() => client.Get("", "name", "123456ABCD")); await Assert.ThrowsAsync(() => client.Get("owner", null, "123456ABCD")); - await Assert.ThrowsAsync(() => client.Get("owner", "", "123456ABCD")); await Assert.ThrowsAsync(() => client.Get("owner", "name", null)); + + await Assert.ThrowsAsync(() => client.Get("", "name", "123456ABCD")); + await Assert.ThrowsAsync(() => client.Get("owner", "", "123456ABCD")); await Assert.ThrowsAsync(() => client.Get("owner", "name", "")); } } @@ -51,15 +63,29 @@ namespace Octokit.Tests.Clients [Fact] public void PostsToCorrectUrl() { - var newBlob = new NewBlob(); var connection = Substitute.For(); var client = new BlobsClient(connection); + var newBlob = new NewBlob(); + client.Create("fake", "repo", newBlob); connection.Received().Post(Arg.Is(u => u.ToString() == "repos/fake/repo/git/blobs"), newBlob); } + [Fact] + public void PostsToCorrectUrlWithRepositoryId() + { + var connection = Substitute.For(); + var client = new BlobsClient(connection); + + var newBlob = new NewBlob(); + + client.Create(1, newBlob); + + connection.Received().Post(Arg.Is(u => u.ToString() == "repositories/1/git/blobs"), newBlob); + } + [Fact] public async Task EnsuresArgumentsNotNull() { @@ -67,10 +93,11 @@ namespace Octokit.Tests.Clients var client = new BlobsClient(connection); await Assert.ThrowsAsync(() => client.Create(null, "name", new NewBlob())); - await Assert.ThrowsAsync(() => client.Create("", "name", new NewBlob())); await Assert.ThrowsAsync(() => client.Create("owner", null, new NewBlob())); - await Assert.ThrowsAsync(() => client.Create("owner", "", new NewBlob())); await Assert.ThrowsAsync(() => client.Create("owner", "name", null)); + + await Assert.ThrowsAsync(() => client.Create("", "name", new NewBlob())); + await Assert.ThrowsAsync(() => client.Create("owner", "", new NewBlob())); } } diff --git a/Octokit.Tests/Reactive/ObservableBlobClientTests.cs b/Octokit.Tests/Reactive/ObservableBlobClientTests.cs index 6db6e1e9..f5664368 100644 --- a/Octokit.Tests/Reactive/ObservableBlobClientTests.cs +++ b/Octokit.Tests/Reactive/ObservableBlobClientTests.cs @@ -1,5 +1,4 @@ using System; -using System.Reactive.Threading.Tasks; using System.Threading.Tasks; using NSubstitute; using Octokit.Reactive; @@ -12,7 +11,7 @@ namespace Octokit.Tests.Reactive public class TheGetMethod { [Fact] - public void GetsFromClientIssueComment() + public void RequestsCorrectUrl() { var gitHubClient = Substitute.For(); var client = new ObservableBlobClient(gitHubClient); @@ -22,17 +21,29 @@ namespace Octokit.Tests.Reactive gitHubClient.Git.Blob.Received().Get("fake", "repo", "123456ABCD"); } + [Fact] + public async Task RequestsCorrectUrlWithRepositoryId() + { + var gitHubClient = Substitute.For(); + var client = new ObservableBlobClient(gitHubClient); + + client.Get(1, "123456ABCD"); + + gitHubClient.Git.Blob.Received().Get(1, "123456ABCD"); + } + [Fact] public async Task EnsuresArguments() { var client = new ObservableBlobClient(Substitute.For()); - await Assert.ThrowsAsync(() => client.Get(null, "name", "123456ABCD").ToTask()); - await Assert.ThrowsAsync(() => client.Get("", "name", "123456ABCD").ToTask()); - await Assert.ThrowsAsync(() => client.Get("owner", null, "123456ABCD").ToTask()); - await Assert.ThrowsAsync(() => client.Get("owner", "", "123456ABCD").ToTask()); - await Assert.ThrowsAsync(() => client.Get("owner", "name", null).ToTask()); - await Assert.ThrowsAsync(() => client.Get("owner", "name", "").ToTask()); + Assert.Throws(() => client.Get(null, "name", "123456ABCD")); + Assert.Throws(() => client.Get("owner", null, "123456ABCD")); + Assert.Throws(() => client.Get("owner", "name", null)); + + Assert.Throws(() => client.Get("", "name", "123456ABCD")); + Assert.Throws(() => client.Get("owner", "", "123456ABCD")); + Assert.Throws(() => client.Get("owner", "name", "")); } } @@ -41,26 +52,39 @@ namespace Octokit.Tests.Reactive [Fact] public void PostsToCorrectUrl() { - var newBlob = new NewBlob(); var gitHubClient = Substitute.For(); var client = new ObservableBlobClient(gitHubClient); + var newBlob = new NewBlob(); client.Create("fake", "repo", newBlob); gitHubClient.Git.Blob.Received().Create("fake", "repo", newBlob); } + [Fact] + public void PostsToCorrectUrlWithRepositoryId() + { + var gitHubClient = Substitute.For(); + var client = new ObservableBlobClient(gitHubClient); + + var newBlob = new NewBlob(); + client.Create(1, newBlob); + + gitHubClient.Git.Blob.Received().Create(1, newBlob); + } + [Fact] public async Task EnsuresArgumentsNotNull() { var gitHubClient = Substitute.For(); var client = new ObservableBlobClient(gitHubClient); - await Assert.ThrowsAsync(() => client.Create(null, "name", new NewBlob()).ToTask()); - await Assert.ThrowsAsync(() => client.Create("", "name", new NewBlob()).ToTask()); - await Assert.ThrowsAsync(() => client.Create("owner", null, new NewBlob()).ToTask()); - await Assert.ThrowsAsync(() => client.Create("owner", "", new NewBlob()).ToTask()); - await Assert.ThrowsAsync(() => client.Create("owner", "name", null).ToTask()); + Assert.Throws(() => client.Create(null, "name", new NewBlob())); + Assert.Throws(() => client.Create("owner", null, new NewBlob())); + Assert.Throws(() => client.Create("owner", "name", null)); + + Assert.Throws(() => client.Create("", "name", new NewBlob())); + Assert.Throws(() => client.Create("owner", "", new NewBlob())); } }