@Test
public void testReadRowsAsync() throws Exception {

  Query query = Query.create(TABLE_ID).rowKey(ROW_KEY);
  when(mockDataClient.readRowsCallable(Mockito.<RowResultAdapter>any()))
      .thenReturn(mockStreamingCallable);
  when(mockStreamingCallable.all()).thenReturn(mockUnaryCallable);
  List<Result> expectedResult = ImmutableList.of(Result.EMPTY_RESULT, EXPECTED_RESULT);
  when(mockUnaryCallable.futureCall(query))
      .thenReturn(ApiFutures.immediateFuture(expectedResult));
  List<Result> actualResult = dataClientWrapper.readRowsAsync(query).get();
  assertEquals(expectedResult.size(), actualResult.size());
  assertResult(Result.EMPTY_RESULT, actualResult.get(0));
  assertResult(EXPECTED_RESULT, actualResult.get(1));
  verify(mockDataClient).readRowsCallable(Mockito.<RowResultAdapter>any());
  verify(mockStreamingCallable).all();
  verify(mockUnaryCallable).futureCall(query);
}