SerializableAdaptrisMessage implements SerializableMessage { @Override public boolean equals(Object object) { if (object == null) { return false; } if (object == this) { return true; } if (object.getClass() != getClass()) { return false; } SerializableAdaptrisMessage rhs = (SerializableAdaptrisMessage) object; return new EqualsBuilder().append(getContent(), rhs.getContent()).append(getContentEncoding(), rhs.getContentEncoding()) .append(getUniqueId(), rhs.getUniqueId()).append(getMetadata(), rhs.getMetadata()) .append(getNextServiceId(), rhs.getNextServiceId()).isEquals(); } SerializableAdaptrisMessage();  SerializableAdaptrisMessage(SerializableMessage orig);  SerializableAdaptrisMessage(String uniqueId);  SerializableAdaptrisMessage(String uniqueId, String payload); @Override String getUniqueId(); @Override void setUniqueId(String uniqueId); @Override String getContent(); @Override void setContent(String payload); void setPayload(String payload, String payloadEncoding); Set<MetadataElement> getMetadata(); void setMetadata(KeyValuePairSet metadata); void setMetadata(Set<MetadataElement> set); void addMetadata(String key, String value); void addMetadata(MetadataElement e); void removeMetadata(MetadataElement element); boolean containsKey(String key); String getMetadataValue(String key); @Override void addMessageHeader(String key, String value); @Override void removeMessageHeader(String key); @Override Map<String, String> getMessageHeaders(); @Override void setMessageHeaders(Map<String, String> arg0); @Override String getContentEncoding(); @Override void setContentEncoding(String payloadEncoding); String getNextServiceId(); void setNextServiceId(String s); @Override boolean equals(Object object); @Override int hashCode();  }
@Test public void testEquals() throws Exception { SerializableAdaptrisMessage message = new SerializableAdaptrisMessage(); message.setUniqueId("MyUniqueID"); message.setContent("SomePayload"); message.addMetadata(KEY1, VALUE1); message.addMetadata(KEY2, VALUE2); message.addMetadata(KEY3, VALUE3); message.setContentEncoding("SomeEncoding"); assertFalse(message.equals(null)); assertFalse(message.equals(new Object())); assertTrue(message.equals(message)); SerializableAdaptrisMessage unmarshalledMessage = roundTrip(message); assertTrue(message.equals(unmarshalledMessage)); HashSet<SerializableAdaptrisMessage> set = new HashSet<>(); set.add(message); set.add(unmarshalledMessage); assertEquals(1, set.size()); }