public void clientStreaming() throws Exception { final Messages.StreamingInputCallRequest[] requests = new Messages.StreamingInputCallRequest[4]; for (int i = 0; i < 4; i++) { requests[i] = new Messages.StreamingInputCallRequest(); requests[i].payload = new Payload(); } requests[0].payload.body = new byte[27182]; requests[1].payload.body = new byte[8]; requests[2].payload.body = new byte[1828]; requests[3].payload.body = new byte[45904]; final Messages.StreamingInputCallResponse goldenResponse = new Messages.StreamingInputCallResponse(); goldenResponse.aggregatedPayloadSize = 74922; StreamRecorder<Messages.StreamingInputCallResponse> responseObserver = StreamRecorder.create(); StreamObserver<Messages.StreamingInputCallRequest> requestObserver = asyncStub.streamingInputCall(responseObserver); for (Messages.StreamingInputCallRequest request : requests) { requestObserver.onNext(request); } requestObserver.onCompleted(); assertMessageEquals(goldenResponse, responseObserver.firstValue().get()); }