### Question:
GoalID extends Message { @Override public GoalID clone() { return new GoalID(this.stamp, this.id); } GoalID();  GoalID(Time stamp, String id); Time getStamp(); String getID(); @Override GoalID clone(); static GoalID fromJsonString(String jsonString); static GoalID fromMessage(Message m); static GoalID fromJsonObject(JsonObject jsonObject); static final String FIELD_STAMP; static final String FIELD_ID; static final String TYPE; }### Answer:
@Test public void testClone() { GoalID clone = g1.clone(); assertEquals(g1.toString(), clone.toString()); assertEquals(g1.toJsonObject(), clone.toJsonObject()); assertEquals(g1.getMessageType(), clone.getMessageType()); assertEquals(g1.getStamp(), clone.getStamp()); assertEquals(g1.getID(), clone.getID()); assertNotSame(g1, clone); assertNotSame(g1.toString(), clone.toString()); assertNotSame(g1.toJsonObject(), clone.toJsonObject()); }