@Test
public void testDeleteColumnAtTimestamp() {

  byte[] rowKey = randomHelper.randomData("rk1-");
  byte[] family = randomHelper.randomData("family1-");
  byte[] qualifier = randomHelper.randomData("qualifier");
  long hbaseTimestamp = 1000L;
  long bigtableStartTimestamp = TimeUnit.MILLISECONDS.toMicros(hbaseTimestamp);
  long bigtableEndTimestamp = TimeUnit.MILLISECONDS.toMicros(hbaseTimestamp + 1);
  Delete delete = new Delete(rowKey);
  delete.addColumn(family, qualifier, hbaseTimestamp);
  MutateRowRequest request = adapt(delete);
  Assert.assertArrayEquals(rowKey, request.getRowKey().toByteArray());
  Assert.assertEquals(1, request.getMutationsCount());
  MutationCase mutationCase = request.getMutations(0).getMutationCase();
  Assert.assertEquals(MutationCase.DELETE_FROM_COLUMN, mutationCase);
  Mutation.DeleteFromColumn deleteFromColumn = request.getMutations(0).getDeleteFromColumn();
  Assert.assertArrayEquals(family, deleteFromColumn.getFamilyNameBytes().toByteArray());
  Assert.assertArrayEquals(qualifier, deleteFromColumn.getColumnQualifier().toByteArray());
  Assert.assertTrue(request.getMutations(0).getDeleteFromColumn().hasTimeRange());
  TimestampRange timeStampRange = deleteFromColumn.getTimeRange();
  Assert.assertEquals(bigtableStartTimestamp, timeStampRange.getStartTimestampMicros());
  Assert.assertEquals(bigtableEndTimestamp, timeStampRange.getEndTimestampMicros());
}