add more tests

pull/6641/head
Jan Tattermusch 9 years ago
parent 3f8d199bbc
commit 013f5a7c40
  1. 35
      src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs

@ -181,13 +181,14 @@ namespace Grpc.Core.Internal.Tests
} }
[Test] [Test]
public void ClientStreaming_WriteFailure() public void ClientStreaming_WriteCompletionFailure()
{ {
var resultTask = asyncCall.ClientStreamingCallAsync(); var resultTask = asyncCall.ClientStreamingCallAsync();
var requestStream = new ClientRequestStream<string, string>(asyncCall); var requestStream = new ClientRequestStream<string, string>(asyncCall);
var writeTask = requestStream.WriteAsync("request1"); var writeTask = requestStream.WriteAsync("request1");
fakeCall.SendCompletionHandler(false); fakeCall.SendCompletionHandler(false);
// TODO: maybe IOException or waiting for RPCException is more appropriate here.
Assert.ThrowsAsync(typeof(InvalidOperationException), async () => await writeTask); Assert.ThrowsAsync(typeof(InvalidOperationException), async () => await writeTask);
fakeCall.UnaryResponseClientHandler(true, fakeCall.UnaryResponseClientHandler(true,
@ -199,7 +200,7 @@ namespace Grpc.Core.Internal.Tests
} }
[Test] [Test]
public void ClientStreaming_WriteAfterReceivingStatusFails() public void ClientStreaming_WriteAfterReceivingStatusThrowsRpcException()
{ {
var resultTask = asyncCall.ClientStreamingCallAsync(); var resultTask = asyncCall.ClientStreamingCallAsync();
var requestStream = new ClientRequestStream<string, string>(asyncCall); var requestStream = new ClientRequestStream<string, string>(asyncCall);
@ -210,7 +211,28 @@ namespace Grpc.Core.Internal.Tests
new Metadata()); new Metadata());
AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask); AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
var ex = Assert.Throws<RpcException>(() => requestStream.WriteAsync("request1"));
//TODO: add assert.
}
[Test]
public void ClientStreaming_WriteAfterCompleteThrowsInvalidOperationException()
{
var resultTask = asyncCall.ClientStreamingCallAsync();
var requestStream = new ClientRequestStream<string, string>(asyncCall);
requestStream.CompleteAsync();
Assert.Throws(typeof(InvalidOperationException), () => requestStream.WriteAsync("request1")); Assert.Throws(typeof(InvalidOperationException), () => requestStream.WriteAsync("request1"));
fakeCall.SendCompletionHandler(true);
fakeCall.UnaryResponseClientHandler(true,
new ClientSideStatus(Status.DefaultSuccess, new Metadata()),
CreateResponsePayload(),
new Metadata());
AssertUnaryResponseSuccess(asyncCall, fakeCall, resultTask);
} }
[Test] [Test]
@ -229,7 +251,7 @@ namespace Grpc.Core.Internal.Tests
} }
[Test] [Test]
public void ClientStreaming_WriteAfterCancellationRequestFails() public void ClientStreaming_WriteAfterCancellationRequestThrowsOperationCancelledException()
{ {
var resultTask = asyncCall.ClientStreamingCallAsync(); var resultTask = asyncCall.ClientStreamingCallAsync();
var requestStream = new ClientRequestStream<string, string>(asyncCall); var requestStream = new ClientRequestStream<string, string>(asyncCall);
@ -340,7 +362,7 @@ namespace Grpc.Core.Internal.Tests
} }
[Test] [Test]
public void DuplexStreaming_WriteAfterReceivingStatusFails() public void DuplexStreaming_WriteAfterReceivingStatusThrowsRpcException()
{ {
asyncCall.StartDuplexStreamingCall(); asyncCall.StartDuplexStreamingCall();
var requestStream = new ClientRequestStream<string, string>(asyncCall); var requestStream = new ClientRequestStream<string, string>(asyncCall);
@ -352,7 +374,8 @@ namespace Grpc.Core.Internal.Tests
AssertStreamingResponseSuccess(asyncCall, fakeCall, readTask); AssertStreamingResponseSuccess(asyncCall, fakeCall, readTask);
Assert.ThrowsAsync(typeof(InvalidOperationException), async () => await requestStream.WriteAsync("request1")); var ex = Assert.ThrowsAsync<RpcException>(async () => await requestStream.WriteAsync("request1"));
//TODO: add assert.
} }
[Test] [Test]
@ -372,7 +395,7 @@ namespace Grpc.Core.Internal.Tests
} }
[Test] [Test]
public void DuplexStreaming_WriteAfterCancellationRequestFails() public void DuplexStreaming_WriteAfterCancellationRequestThrowsOperationCancelledException()
{ {
asyncCall.StartDuplexStreamingCall(); asyncCall.StartDuplexStreamingCall();
var requestStream = new ClientRequestStream<string, string>(asyncCall); var requestStream = new ClientRequestStream<string, string>(asyncCall);

Loading…
Cancel
Save