Add tests for ObservableStarredClient

This commit is contained in:
James R Sconfitto
2013-11-16 11:52:29 -05:00
parent 343fc35a03
commit 71fc7e76f8
2 changed files with 147 additions and 0 deletions
+1
View File
@@ -123,6 +123,7 @@
<Compile Include="Reactive\ObservableMilestonesClientTests.cs" />
<Compile Include="Reactive\ObservableOrganizationMembersClientTests.cs" />
<Compile Include="Reactive\ObservableRepositoriesClientTests.cs" />
<Compile Include="Reactive\ObservableStarredClientTests.cs" />
<Compile Include="SimpleJsonSerializerTests.cs" />
<Compile Include="Clients\UsersClientTests.cs" />
</ItemGroup>
@@ -0,0 +1,146 @@
using System;
using System.Collections.Generic;
using System.Reactive.Linq;
using System.Threading.Tasks;
using NSubstitute;
using Octokit;
using Octokit.Internal;
using Octokit.Reactive.Clients;
using Octokit.Reactive.Internal;
using Octokit.Tests.Helpers;
using Xunit;
using Xunit.Extensions;
namespace Octokit.Tests.Reactive
{
public class ObservableStarredClientTests
{
public class TheGetAllStargazersMethod
{
[Fact]
public async Task EnsuresArguments()
{
var client = new ObservableStarredClient(Substitute.For<IGitHubClient>());
await AssertEx.Throws<ArgumentException>(async () => await client.GetAllStargazers(null, "name"));
await AssertEx.Throws<ArgumentException>(async () => await client.GetAllStargazers("owner", null));
}
[Fact]
public void GetsStargazersFromClient()
{
var connection = Substitute.For<IConnection>();
var gitHubClient = Substitute.For<IGitHubClient>();
gitHubClient.Connection.Returns(connection);
var client = new ObservableStarredClient(gitHubClient);
client.GetAllStargazers("jugglingnutcase", "katiejamie");
connection.Received().GetAsync<List<User>>(ApiUrls.Stargazers("jugglingnutcase", "katiejamie"), null, null);
}
}
public class TheGetAllForCurrentMethod
{
[Fact]
public void GetsStarsForCurrent()
{
var connection = Substitute.For<IConnection>();
var gitHubClient = Substitute.For<IGitHubClient>();
gitHubClient.Connection.Returns(connection);
var client = new ObservableStarredClient(gitHubClient);
client.GetAllForCurrent();
connection.Received().GetAsync<List<Repository>>(ApiUrls.Starred(), null, null);
}
}
public class TheGetAllForUserMethod
{
[Fact]
public async Task EnsuresArguments()
{
var client = new ObservableStarredClient(Substitute.For<IGitHubClient>());
await AssertEx.Throws<ArgumentException>(async () => await client.GetAllForUser(null));
}
[Fact]
public void GetsStarsForUser()
{
var connection = Substitute.For<IConnection>();
var gitHubClient = Substitute.For<IGitHubClient>();
gitHubClient.Connection.Returns(connection);
var client = new ObservableStarredClient(gitHubClient);
client.GetAllForUser("jugglingnutcase");
connection.Received().GetAsync<List<Repository>>(ApiUrls.StarredByUser("jugglingnutcase"), null, null);
}
}
public class TheCheckStarredMethod
{
[Fact]
public async Task EnsuresArguments()
{
var client = new ObservableStarredClient(Substitute.For<IGitHubClient>());
await AssertEx.Throws<ArgumentException>(async () => await client.CheckStarred(null, "james"));
await AssertEx.Throws<ArgumentException>(async () => await client.CheckStarred("james", null));
}
[Fact]
public async Task ChecksStarredForUser()
{
var gitHubClient = Substitute.For<IGitHubClient>();
var client = new ObservableStarredClient(gitHubClient);
client.CheckStarred("jugglingnutcase", "katiejamie");
gitHubClient.Activity.Starring.Received().CheckStarred("jugglingnutcase", "katiejamie");
}
}
public class TheStarRepoMethod
{
[Fact]
public async Task EnsuresArguments()
{
var client = new ObservableStarredClient(Substitute.For<IGitHubClient>());
await AssertEx.Throws<ArgumentException>(async () => await client.StarRepo(null, "james"));
await AssertEx.Throws<ArgumentException>(async () => await client.StarRepo("james", null));
}
[Fact]
public async Task ChecksStarredForUser()
{
var gitHubClient = Substitute.For<IGitHubClient>();
var client = new ObservableStarredClient(gitHubClient);
client.StarRepo("jugglingnutcase", "katiejamie");
gitHubClient.Activity.Starring.Received().StarRepo("jugglingnutcase", "katiejamie");
}
}
public class TheRemoveStarFromRepoMethod
{
[Fact]
public async Task EnsuresArguments()
{
var client = new ObservableStarredClient(Substitute.For<IGitHubClient>());
await AssertEx.Throws<ArgumentException>(async () => await client.RemoveStarFromRepo(null, "james"));
await AssertEx.Throws<ArgumentException>(async () => await client.RemoveStarFromRepo("james", null));
}
[Fact]
public async Task ChecksStarredForUser()
{
var gitHubClient = Substitute.For<IGitHubClient>();
var client = new ObservableStarredClient(gitHubClient);
client.RemoveStarFromRepo("jugglingnutcase", "katiejamie");
gitHubClient.Activity.Starring.Received().RemoveStarFromRepo("jugglingnutcase", "katiejamie");
}
}
}
}