public async Task EnsuresNonNullArguments() { var client = new AssigneesClient(Substitute.For<IApiConnection>()); await AssertEx.Throws<ArgumentNullException>(async () => await client.CheckAssignee(null, "name", "tweety")); await AssertEx.Throws<ArgumentException>(async () => await client.CheckAssignee(null, "", "tweety")); await AssertEx.Throws<ArgumentNullException>(async () => await client.CheckAssignee("owner", null, "tweety")); await AssertEx.Throws<ArgumentException>(async () => await client.CheckAssignee("", null, "tweety")); await AssertEx.Throws<ArgumentNullException>(async () => await client.CheckAssignee("owner", "name", null)); await AssertEx.Throws<ArgumentException>(async () => await client.CheckAssignee("owner", "name", "")); }
public async Task ThrowsExceptionForInvalidStatusCode() { var response = Task.Factory.StartNew<IResponse<object>>(() => new ApiResponse<object> { StatusCode = HttpStatusCode.Conflict }); var connection = Substitute.For<IConnection>(); connection.GetAsync<object>(Arg.Is<Uri>(u => u.ToString() == "repos/foo/bar/assignees/cody"), null, null).Returns(response); var apiConnection = Substitute.For<IApiConnection>(); apiConnection.Connection.Returns(connection); var client = new AssigneesClient(apiConnection); AssertEx.Throws<ApiException>(async () => await client.CheckAssignee("foo", "bar", "cody")); }
public async Task RequestsCorrectValueForStatusCode(HttpStatusCode status, bool expected) { var response = Task.Factory.StartNew<IResponse<object>>(() => new ApiResponse<object> { StatusCode = status }); var connection = Substitute.For<IConnection>(); connection.GetAsync<object>(Arg.Is<Uri>(u => u.ToString() == "repos/foo/bar/assignees/cody"), null, null).Returns(response); var apiConnection = Substitute.For<IApiConnection>(); apiConnection.Connection.Returns(connection); var client = new AssigneesClient(apiConnection); var result = await client.CheckAssignee("foo", "bar", "cody"); Assert.Equal(expected, result); }