### Question:
MetaDataRow { @Override public boolean equals(final Object o) { if (o instanceof MetaDataRow) { MetaDataRow other = (MetaDataRow) o; return Objects.equals(id, other.id) && Objects.equals(attribute, other.attribute) && Objects.equals(value, other.value); } return false; } MetaDataRow();  MetaDataRow(final String attribute,
                       final String value);  MetaDataRow(final MetaDataAttribute metaData); long getId(); void setId(final long id); String getAttribute(); void setAttribute(final String attribute); String getValue(); void setValue(final String value); @Override boolean equals(final Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testEquals() { MetaDataRow metaDataRow1 = new MetaDataRow(new MetaDataAttribute("att1")); MetaDataRow metaDataRow2 = new MetaDataRow(new MetaDataAttribute("att1", "val1")); MetaDataRow metaDataRow3 = new MetaDataRow("att1", "val1"); VariableRow variableRow = new VariableRow(); assertNotEquals(metaDataRow1, variableRow); assertNotEquals(metaDataRow2, metaDataRow3); metaDataRow1.setId(1L); metaDataRow2.setId(1L); metaDataRow3.setId(1L); assertEquals(metaDataRow2, metaDataRow3); metaDataRow2.setAttribute("att2"); assertNotEquals(metaDataRow2, metaDataRow3); metaDataRow1.setAttribute("att1"); metaDataRow1.setValue("val2"); assertNotEquals(metaDataRow2, metaDataRow3); metaDataRow2.setAttribute("att1"); metaDataRow2.setValue("val2"); assertNotEquals(metaDataRow2, metaDataRow3); }