### Question:
ConditionalMutation extends Mutation { @Override public boolean equals(Object o) { if (o == this) { return true; } if (o == null || !(o instanceof ConditionalMutation)) { return false; } ConditionalMutation cm = (ConditionalMutation) o; if (!conditions.equals(cm.conditions)) { return false; } return super.equals(o); } ConditionalMutation(byte[] row, Condition... conditions);  ConditionalMutation(byte[] row, int start, int length, Condition... conditions);  ConditionalMutation(Text row, Condition... conditions);  ConditionalMutation(CharSequence row, Condition... conditions);  ConditionalMutation(ByteSequence row, Condition... conditions);  ConditionalMutation(ConditionalMutation cm); void addCondition(Condition condition); List<Condition> getConditions(); @Override boolean equals(Object o); @Override int hashCode(); @Override void setReplicationSources(Set<String> sources);  }### Answer:
@Test public void testEquals() { assertTrue(cm.equals(cm)); assertNotEquals(cm, (Object) null); ConditionalMutation cm2 = new ConditionalMutation(ROW, c1, c2); assertTrue(cm.equals(cm2)); assertTrue(cm2.equals(cm)); ConditionalMutation cm3 = new ConditionalMutation("row2".getBytes(UTF_8), c1, c2); assertFalse(cm.equals(cm3)); cm3 = new ConditionalMutation(ROW, c2, c1); assertNotEquals(cm.getConditions(), cm3.getConditions()); assertFalse(cm.equals(cm3)); }
@Test public void testEquals_Mutation() { Mutation m = new Mutation(ROW); assertFalse(m.equals(cm)); assertFalse(cm.equals(m)); }