@Test
public void testReadModifyWriteAsync() throws Exception {

  ReadModifyWriteRow readModify = ReadModifyWriteRow.create(TABLE_ID, "test-key");
  ReadModifyWriteRowRequest request = readModify.toProto(REQUEST_CONTEXT);
  Row expectedRow = buildRow();
  ReadModifyWriteRowResponse response =
      ReadModifyWriteRowResponse.newBuilder().setRow(expectedRow).build();
  ListenableFuture<ReadModifyWriteRowResponse> listenableResponse =
      Futures.immediateFuture(response);
  RowCell rowCell = RowCell.create("firstFamily", QUALIFIER_1, TIMESTAMP, LABEL_LIST, VALUE);
  com.google.cloud.bigtable.data.v2.models.Row modelRow =
      com.google.cloud.bigtable.data.v2.models.Row.create(
          ROW_KEY, Collections.singletonList(rowCell));
  when(client.readModifyWriteRowAsync(request)).thenReturn(listenableResponse);
  Future<com.google.cloud.bigtable.data.v2.models.Row> output =
      clientWrapper.readModifyWriteRowAsync(readModify);
  assertEquals(modelRow, output.get());
  verify(client).readModifyWriteRowAsync(request);
}