@Test
public void testOK() throws Exception {

  final ReadRowsResponse result = ReadRowsResponse.getDefaultInstance();
  Answer<Void> answer =
      new Answer<Void>() {
        @Override
        public Void answer(InvocationOnMock invocation) {
          Listener listener = invocation.getArgument(1, ClientCall.Listener.class);
          listener.onMessage(result);
          listener.onClose(Status.OK, null);
          return null;
        }
      };
  doAnswer(answer)
      .when(readAsync)
      .start(
          (ReadRowsRequest) any(),
          (ClientCall.Listener) any(),
          (Metadata) any(),
          (ClientCall) any());
  ListenableFuture future = createOperation(CallOptions.DEFAULT).getAsyncResult();
  Assert.assertEquals(result, future.get(1, TimeUnit.SECONDS));
  verify(readAsync, times(1))
      .start(
          (ReadRowsRequest) any(),
          (ClientCall.Listener) any(),
          (Metadata) any(),
          (ClientCall) any());
}