mirror of https://github.com/grpc/grpc-java.git
Implement cancel_after_* integration tests
------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=82734780
This commit is contained in:
parent
42fcc501b9
commit
1c20eb6cef
|
|
@ -72,6 +72,7 @@ import org.junit.Assert;
|
|||
import org.junit.Assume;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
|
@ -305,6 +306,46 @@ public abstract class AbstractTransportTest {
|
|||
verifyNoMoreInteractions(responseObserver);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cancelAfterBegin() throws Exception {
|
||||
StreamRecorder<StreamingInputCallResponse> responseObserver = StreamRecorder.create();
|
||||
StreamObserver<StreamingInputCallRequest> requestObserver =
|
||||
asyncStub.streamingInputCall(responseObserver);
|
||||
requestObserver.onError(new RuntimeException());
|
||||
responseObserver.awaitCompletion();
|
||||
assertEquals(Arrays.<StreamingInputCallResponse>asList(), responseObserver.getValues());
|
||||
assertEquals(Status.CANCELLED, Status.fromThrowable(responseObserver.getError()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cancelAfterFirstResponse() throws Exception {
|
||||
final StreamingOutputCallRequest request = StreamingOutputCallRequest.newBuilder()
|
||||
.addResponseParameters(ResponseParameters.newBuilder()
|
||||
.setSize(31415))
|
||||
.setPayload(Payload.newBuilder()
|
||||
.setBody(ByteString.copyFrom(new byte[27182])))
|
||||
.build();
|
||||
final StreamingOutputCallResponse goldenResponse = StreamingOutputCallResponse.newBuilder()
|
||||
.setPayload(Payload.newBuilder()
|
||||
.setType(PayloadType.COMPRESSABLE)
|
||||
.setBody(ByteString.copyFrom(new byte[31415])))
|
||||
.build();
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
StreamObserver<StreamingOutputCallResponse> responseObserver = mock(StreamObserver.class);
|
||||
StreamObserver<StreamingOutputCallRequest> requestObserver
|
||||
= asyncStub.fullDuplexCall(responseObserver);
|
||||
requestObserver.onValue(request);
|
||||
verify(responseObserver, timeout(1000)).onValue(goldenResponse);
|
||||
verifyNoMoreInteractions(responseObserver);
|
||||
|
||||
requestObserver.onError(new RuntimeException());
|
||||
ArgumentCaptor<Throwable> captor = ArgumentCaptor.forClass(Throwable.class);
|
||||
verify(responseObserver, timeout(1000)).onError(captor.capture());
|
||||
assertEquals(Status.CANCELLED, Status.fromThrowable(captor.getValue()));
|
||||
verifyNoMoreInteractions(responseObserver);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void fullDuplexCallShouldSucceed() throws Exception {
|
||||
// Build the request.
|
||||
|
|
|
|||
|
|
@ -223,6 +223,10 @@ public class TestServiceClient {
|
|||
tester.pingPong();
|
||||
} else if ("empty_stream".equals(testCase)) {
|
||||
tester.emptyStream();
|
||||
} else if ("cancel_after_begin".equals(testCase)) {
|
||||
tester.cancelAfterBegin();
|
||||
} else if ("cancel_after_first_response".equals(testCase)) {
|
||||
tester.cancelAfterFirstResponse();
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unknown test case: " + testCase);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue