Skip to content
Snippets Groups Projects
Commit b293c953 authored by Jan Tattermusch's avatar Jan Tattermusch
Browse files

add more tests

parent dcd8d7cd
No related branches found
No related tags found
No related merge requests found
...@@ -181,13 +181,14 @@ namespace Grpc.Core.Internal.Tests ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment