@Test
public void testMultipleIncrementWithDuplicateQualifier() {

  byte[] rowKey = dataHelper.randomData("rk1-");
  byte[] family1 = Bytes.toBytes("family1");
  byte[] qualifier1 = Bytes.toBytes("qualifier1");
  long amount1 = 1234;
  byte[] family2 = Bytes.toBytes("family2");
  byte[] qualifier2 = Bytes.toBytes("qualifier2");
  long amount2 = 4321;
  long amount3 = 5000;
  Increment incr = new Increment(rowKey);
  incr.addColumn(family1, qualifier1, amount1);
  incr.addColumn(family2, qualifier2, amount2);
  incr.addColumn(family2, qualifier2, amount3);
  ReadModifyWriteRow readModifyWriteRow =
      ReadModifyWriteRow.create(TABLE_ID, ByteString.copyFrom(rowKey));
  incrementAdapter.adapt(incr, readModifyWriteRow);
  ReadModifyWriteRowRequest requestBuilder = readModifyWriteRow.toProto(requestContext);
  Assert.assertEquals(2, requestBuilder.getRulesCount());
  ReadModifyWriteRule rule = requestBuilder.getRules(0);
  Assert.assertEquals("family1", rule.getFamilyName());
  Assert.assertEquals("qualifier1", rule.getColumnQualifier().toStringUtf8());
  Assert.assertEquals(amount1, rule.getIncrementAmount());
  rule = requestBuilder.getRules(1);
  Assert.assertEquals("family2", rule.getFamilyName());
  Assert.assertEquals("qualifier2", rule.getColumnQualifier().toStringUtf8());
  // amount3 since it was added after amount2:
  Assert.assertEquals(amount3, rule.getIncrementAmount());
}