From b10ea7b94cbecc0a6caefde466b38d1e35c506a3 Mon Sep 17 00:00:00 2001 From: Devesh Khandelwal Date: Fri, 22 Apr 2016 11:46:44 +0530 Subject: [PATCH] More tests. --- .../Reactive/ObservableWatchedClientTests.cs | 78 ++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/Octokit.Tests/Reactive/ObservableWatchedClientTests.cs b/Octokit.Tests/Reactive/ObservableWatchedClientTests.cs index 811c0b3a..b43ec121 100644 --- a/Octokit.Tests/Reactive/ObservableWatchedClientTests.cs +++ b/Octokit.Tests/Reactive/ObservableWatchedClientTests.cs @@ -92,5 +92,81 @@ namespace Octokit.Tests.Reactive connection.Received().Get>(ApiUrls.WatchedByUser("jugglingnutcase"), Arg.Any>(), null); } } + + public class TheCheckWatchedMethod + { + [Fact] + public async Task EnsureArguments() + { + var client = new ObservableWatchedClient(Substitute.For()); + + await Assert.ThrowsAsync(() => client.CheckWatched(null, "name").ToTask()); + await Assert.ThrowsAsync(() => client.CheckWatched("owner", null).ToTask()); + await Assert.ThrowsAsync(() => client.CheckWatched("", "name").ToTask()); + await Assert.ThrowsAsync(() => client.CheckWatched("owner", "").ToTask()); + } + + [Fact] + public void CallIntoClient() + { + var gitHub = Substitute.For(); + var client = new ObservableWatchedClient(gitHub); + + client.CheckWatched("owner", "name"); + + gitHub.Activity.Watching.Received().CheckWatched("owner", "name"); + } + } + + public class TheWatchRepoMethod + { + [Fact] + public async Task EnsureArguments() + { + var client = new ObservableWatchedClient(Substitute.For()); + var subscription = new NewSubscription(); + + await Assert.ThrowsAsync(() => client.WatchRepo(null, "name", subscription).ToTask()); + await Assert.ThrowsAsync(() => client.WatchRepo("owner", null, subscription).ToTask()); + await Assert.ThrowsAsync(() => client.WatchRepo("", "name", subscription).ToTask()); + await Assert.ThrowsAsync(() => client.WatchRepo("owner", "", subscription).ToTask()); + } + + [Fact] + public void CallIntoClient() + { + var gitHub = Substitute.For(); + var client = new ObservableWatchedClient(gitHub); + + client.WatchRepo("owner", "name", new NewSubscription()); + + gitHub.Activity.Watching.Received().WatchRepo("owner", "name", Arg.Any()); + } + } + + public class TheUnWatchRepoMethod + { + [Fact] + public async Task EnsureArguments() + { + var client = new ObservableWatchedClient(Substitute.For()); + + await Assert.ThrowsAsync(() => client.UnwatchRepo(null, "name").ToTask()); + await Assert.ThrowsAsync(() => client.UnwatchRepo("owner", null).ToTask()); + await Assert.ThrowsAsync(() => client.UnwatchRepo("", "name").ToTask()); + await Assert.ThrowsAsync(() => client.UnwatchRepo("owner", "").ToTask()); + } + + [Fact] + public void CallIntoClient() + { + var gitHub = Substitute.For(); + var client = new ObservableWatchedClient(gitHub); + + client.UnwatchRepo("owner", "name"); + + gitHub.Activity.Watching.Received().UnwatchRepo("owner", "name"); + } + } } -} \ No newline at end of file +}