private void assertCellEquals(Cell sourceCell, Cell targetCell, BooleanSupplier checkTimestamp) {
    assertTrue("Rows don't match, source: " + sourceCell + ", target: " + targetCell,
      CellUtil.matchingRows(sourceCell, targetCell));
    assertTrue("Families don't match, source: " + sourceCell + ", target: " + targetCell,
      CellUtil.matchingFamily(sourceCell, targetCell));
    assertTrue("Qualifiers don't match, source: " + sourceCell + ", target: " + targetCell,
      CellUtil.matchingQualifier(sourceCell, targetCell));
    if (checkTimestamp.getAsBoolean()) {
      assertTrue("Timestamps don't match, source: " + sourceCell + ", target: " + targetCell,
        CellUtil.matchingTimestamp(sourceCell, targetCell));
    }
    assertTrue("Values don't match, source: " + sourceCell + ", target: " + targetCell,
      CellUtil.matchingValue(sourceCell, targetCell));
  }
Basic test for the SyncTable M/R tool
hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestSyncTable.java