BigtableDataGCJClient implements IBigtableDataClient, AutoCloseable { @Override public ApiFuture<Boolean> checkAndMutateRowAsync(ConditionalRowMutation conditionalRowMutation) { return delegate.checkAndMutateRowAsync(conditionalRowMutation); } 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 testCheckAndMutateRowAsync() throws Exception { ConditionalRowMutation checkAndMutate = ConditionalRowMutation.create(TABLE_ID, ROW_KEY) .then(Mutation.create().setCell(COL_FAMILY, QUALIFIER_1, VALUE_1)); when(dataClientV2.checkAndMutateRowAsync(checkAndMutate)) .thenReturn(immediateFuture(Boolean.TRUE)); assertTrue(dataGCJClient.checkAndMutateRowAsync(checkAndMutate).get()); verify(dataClientV2).checkAndMutateRowAsync(checkAndMutate); }