### Question:
JmsProducerInfo extends JmsAbstractResource implements Comparable<JmsProducerInfo> { @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } JmsProducerInfo other = (JmsProducerInfo) obj; return producerId.equals(other.producerId); } JmsProducerInfo(JmsProducerId producerId);  JmsProducerInfo(JmsProducerId producerId, JmsMessageIDBuilder messageIDBuilder); JmsProducerInfo copy(); void copy(JmsProducerInfo info); @Override JmsProducerId getId(); JmsSessionId getParentId(); JmsDestination getDestination(); void setDestination(JmsDestination destination); boolean isPresettle(); void setPresettle(boolean presettle); JmsMessageIDBuilder getMessageIDBuilder(); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object obj); @Override int compareTo(JmsProducerInfo other); @Override void visit(JmsResourceVistor vistor);  }### Answer:
@Test public void testEqualsCode() { JmsProducerInfo first = createPorducerInfo(firstId); JmsProducerInfo second = createPorducerInfo(secondId); assertEquals(first, first); assertEquals(second, second); assertFalse(first.equals(second)); assertFalse(second.equals(first)); assertFalse(first.equals(null)); assertFalse(second.equals("test")); }