/**
* Test good request/response
*/
public void testGoodRpc() throws RpcException {
// Create data
Response response = Response.newBuilder().setStrData("Response Data")
.build();
// Register Service
rpcForwarder.registerService(TestService.newReflectiveService(new FakeServiceImpl(REQUEST)
.withResponse(response)));
// Test doBlockingRpc
SocketRpcProtos.Response rpcResponse =
rpcForwarder.doBlockingRpc(RPC_REQUEST);
assertTrue(rpcResponse.getCallback());
assertEquals(response.toByteString(), rpcResponse.getResponseProto());
// Test doRpc
Callback<SocketRpcProtos.Response> rpcCallback =
new Callback<SocketRpcProtos.Response>();
rpcForwarder.doRpc(RPC_REQUEST, rpcCallback);
assertTrue(rpcCallback.isInvoked());
rpcResponse = rpcCallback.getResponse();
assertTrue(rpcResponse.getCallback());
assertEquals(response.toByteString(), rpcResponse.getResponseProto());
// Register BlockingService
response = Response.newBuilder().setStrData("New Data").build();
rpcForwarder.registerBlockingService(new FakeServiceImpl(REQUEST)
.withResponse(response).toBlockingService());
// Test doBlockingRpc
rpcResponse = rpcForwarder.doBlockingRpc(RPC_REQUEST);
assertTrue(rpcResponse.getCallback());
assertEquals(response.toByteString(), rpcResponse.getResponseProto());
// Test doRpc
rpcCallback = new Callback<SocketRpcProtos.Response>();
rpcForwarder.doRpc(RPC_REQUEST, rpcCallback);
assertTrue(rpcCallback.isInvoked());
rpcResponse = rpcCallback.getResponse();
assertTrue(rpcResponse.getCallback());
assertEquals(response.toByteString(), rpcResponse.getResponseProto());
}