BigtableDataGCJClient implements IBigtableDataClient, AutoCloseable { @Override public List<FlatRow> readFlatRowsList(Query request) { return delegate.readRowsCallable(new FlatRowAdapter()).all().call(request); } BigtableDataGCJClient(BigtableDataClient delegate); @Override void mutateRow(RowMutation rowMutation); @Override ApiFuture<Void> mutateRowAsync(RowMutation rowMutation); @Override Row readModifyWriteRow(ReadModifyWriteRow readModifyWriteRow); @Override ApiFuture<Row> readModifyWriteRowAsync(ReadModifyWriteRow readModifyWriteRow); @Override IBulkMutation createBulkMutationBatcher(String tableId); @Override Boolean checkAndMutateRow(ConditionalRowMutation conditionalRowMutation); @Override ApiFuture<Boolean> checkAndMutateRowAsync(ConditionalRowMutation conditionalRowMutation); @Override List<KeyOffset> sampleRowKeys(String tableId); @Override ApiFuture<List<KeyOffset>> sampleRowKeysAsync(String tableId); @Override ResultScanner<Row> readRows(Query request); @Override ApiFuture<List<Row>> readRowsAsync(Query request); @Override List<FlatRow> readFlatRowsList(Query request); @Override ResultScanner<FlatRow> readFlatRows(Query request); @Override ApiFuture<List<FlatRow>> readFlatRowsAsync(Query request); @Override void readFlatRowsAsync(Query request, StreamObserver<FlatRow> observer); @Override void close();  }
@Test public void testReadFlatRowsList() { ServerStreamingCallable<Query, FlatRow> serverStreaming = mock(ServerStreamingCallable.class); UnaryCallable<Query, List<FlatRow>> unaryCallable = mock(UnaryCallable.class); when(dataClientV2.readRowsCallable(any(FlatRowAdapter.class))).thenReturn(serverStreaming); when(serverStreaming.all()).thenReturn(unaryCallable); when(unaryCallable.call(request)).thenReturn(flatRows); List<FlatRow> actualFlatRows = dataGCJClient.readFlatRowsList(request); assertEquals(flatRows, actualFlatRows); verify(dataClientV2).readRowsCallable(any(FlatRowAdapter.class)); verify(serverStreaming).all(); verify(unaryCallable).call(request); }