AdminClientClassicApi implements AdminClientWrapper { @Override public ApiFuture<Void> deleteTableAsync(String tableId) { DeleteTableRequest request = DeleteTableRequest.newBuilder().setName(instanceName.toTableNameStr(tableId)).build(); return ApiFutureUtil.transformAndAdapt( delegate.deleteTableAsync(request), new Function<Empty, Void>() { @Override public Void apply(Empty empty) { return null; } }); } AdminClientClassicApi(
      @Nonnull BigtableTableAdminClient delegate, @Nonnull BigtableInstanceName instanceName); @Override ApiFuture<Table> createTableAsync(CreateTableRequest request); @Override ApiFuture<Table> getTableAsync(String tableId); @Override ApiFuture<List<String>> listTablesAsync(); @Override ApiFuture<Void> deleteTableAsync(String tableId); @Override ApiFuture<Table> modifyFamiliesAsync(ModifyColumnFamiliesRequest request); @Override ApiFuture<Void> dropRowRangeAsync(String tableId, ByteString rowKeyPrefix); @Override ApiFuture<Void> dropAllRowsAsync(String tableId); @Override void close();  }
@Test public void testDeleteTableAsync() throws ExecutionException, InterruptedException { DeleteTableRequest request = DeleteTableRequest.newBuilder().setName(TABLE_NAME).build(); when(delegate.deleteTableAsync(request)) .thenReturn(immediateFuture(Empty.newBuilder().build())); adminClientWrapper.deleteTableAsync(TABLE_ID).get(); verify(delegate).deleteTableAsync(request); }