### Question:
JmsProducerInfo extends JmsAbstractResource implements Comparable<JmsProducerInfo> { public JmsProducerInfo copy() { JmsProducerInfo info = new JmsProducerInfo(producerId, messageIDBuilder); copy(info); return info; } 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 testCopy() { JmsProducerInfo info = createPorducerInfo(firstId); info.setDestination(new JmsTopic("Test")); JmsProducerInfo copy = info.copy(); assertEquals(new JmsTopic("Test"), copy.getDestination()); assertEquals(info, copy); }