Added missing tests

This commit is contained in:
Kristian Hellang
2013-11-24 23:44:30 +01:00
parent b9b60ed77c
commit df0963c848
3 changed files with 76 additions and 9 deletions
+61 -5
View File
@@ -79,17 +79,17 @@ namespace Octokit.Tests.Clients
{
var client = new ReferencesClient(Substitute.For<IApiConnection>());
await AssertEx.Throws<ArgumentNullException>(async () => await client.Create(null, "name", new NewReference()));
await AssertEx.Throws<ArgumentNullException>(async () => await client.Create("owner", null, new NewReference()));
await AssertEx.Throws<ArgumentNullException>(async () => await client.Create(null, "name", new NewReference("heads/develop", "sha")));
await AssertEx.Throws<ArgumentNullException>(async () => await client.Create("owner", null, new NewReference("heads/develop", "sha")));
await AssertEx.Throws<ArgumentNullException>(async () => await client.Create("owner", "name", null));
await AssertEx.Throws<ArgumentException>(async () => await client.Create("", "name", new NewReference()));
await AssertEx.Throws<ArgumentException>(async () => await client.Create("owner", "", new NewReference()));
await AssertEx.Throws<ArgumentException>(async () => await client.Create("", "name", new NewReference("heads/develop", "sha")));
await AssertEx.Throws<ArgumentException>(async () => await client.Create("owner", "", new NewReference("heads/develop", "sha")));
}
[Fact]
public async Task PostsToCorrectUrl()
{
var newReference = new NewReference();
var newReference = new NewReference("heads/develop", "sha");
var connection = Substitute.For<IApiConnection>();
var client = new ReferencesClient(connection);
@@ -98,5 +98,61 @@ namespace Octokit.Tests.Clients
connection.Received().Post<Reference>(Arg.Is<Uri>(u => u.ToString() == "repos/owner/repo/git/refs"), newReference);
}
}
public class TheUpdateMethod
{
[Fact]
public async Task EnsuresNonNullArguments()
{
var client = new ReferencesClient(Substitute.For<IApiConnection>());
await AssertEx.Throws<ArgumentNullException>(async () => await client.Update(null, "name", "heads/develop", new ReferenceUpdate("sha")));
await AssertEx.Throws<ArgumentNullException>(async () => await client.Update("owner", null, "heads/develop", new ReferenceUpdate("sha")));
await AssertEx.Throws<ArgumentNullException>(async () => await client.Update("owner", "name", null, new ReferenceUpdate("sha")));
await AssertEx.Throws<ArgumentNullException>(async () => await client.Update("owner", "name", "heads/develop", null));
await AssertEx.Throws<ArgumentException>(async () => await client.Update("", "name", "heads/develop", new ReferenceUpdate("sha")));
await AssertEx.Throws<ArgumentException>(async () => await client.Update("owner", "", "heads/develop", new ReferenceUpdate("sha")));
await AssertEx.Throws<ArgumentException>(async () => await client.Update("owner", "name", "", new ReferenceUpdate("sha")));
}
[Fact]
public async Task PostsToCorrectUrl()
{
var referenceUpdate = new ReferenceUpdate("sha");
var connection = Substitute.For<IApiConnection>();
var client = new ReferencesClient(connection);
await client.Update("owner", "repo", "heads/develop", referenceUpdate);
connection.Received().Patch<Reference>(Arg.Is<Uri>(u => u.ToString() == "repos/owner/repo/git/refs/heads/develop"), referenceUpdate);
}
}
public class TheDeleteMethod
{
[Fact]
public async Task EnsuresNonNullArguments()
{
var client = new ReferencesClient(Substitute.For<IApiConnection>());
await AssertEx.Throws<ArgumentNullException>(async () => await client.Delete(null, "name", "heads/develop"));
await AssertEx.Throws<ArgumentNullException>(async () => await client.Delete("owner", null, "heads/develop"));
await AssertEx.Throws<ArgumentNullException>(async () => await client.Delete("owner", "name", null));
await AssertEx.Throws<ArgumentException>(async () => await client.Delete("", "name", "heads/develop"));
await AssertEx.Throws<ArgumentException>(async () => await client.Delete("owner", "", "heads/develop"));
await AssertEx.Throws<ArgumentException>(async () => await client.Delete("owner", "name", ""));
}
[Fact]
public async Task RequestsCorrectUrl()
{
var connection = Substitute.For<IApiConnection>();
var client = new ReferencesClient(connection);
await client.Delete("owner", "repo", "heads/develop");
connection.Received().Delete(Arg.Is<Uri>(u => u.ToString() == "repos/owner/repo/git/refs/heads/develop"));
}
}
}
}
+11 -2
View File
@@ -2,7 +2,16 @@
{
public class NewReference
{
public string Ref { get; set; }
public string Sha { get; set; }
public NewReference(string @ref, string sha)
{
Ensure.ArgumentNotNullOrEmptyString(@ref, "ref");
Ensure.ArgumentNotNullOrEmptyString(sha, "sha");
Ref = @ref;
Sha = sha;
}
public string Ref { get; private set; }
public string Sha { get; private set; }
}
}
+4 -2
View File
@@ -4,11 +4,13 @@
{
public ReferenceUpdate(string sha, bool force = false)
{
Ensure.ArgumentNotNullOrEmptyString(sha, "sha");
Sha = sha;
Force = force;
}
public string Sha { get; set; }
public bool Force { get; set; }
public string Sha { get; private set; }
public bool Force { get; private set; }
}
}