KeyValuePair implements NameValuePair { @Override public boolean equals(Object obj) { if (obj instanceof KeyValuePair) { if (((KeyValuePair) obj).getKey().equals(getKey())) { return true; } } return false; } KeyValuePair();  KeyValuePair(String key, String value); @Override void setKey(String key); @Override String getKey(); @Override void setValue(String value); @Override String getValue(); @Override String toString(); @Override boolean equals(Object obj); @Override int hashCode();  }
@Test public void testEquals() { assertEquals(pair1, pair2); assertEquals(pair2, pair1); pair1.setValue("value2"); assertEquals(pair1, pair2); assertEquals(pair2, pair1); pair1.setKey("key2"); assertNotSame(pair1, pair2); assertNotSame(pair2, pair1); assertFalse(pair1.equals(new Object())); }