### Question:
GoalStatusArray extends Message { @Override public GoalStatusArray clone() { return new GoalStatusArray(this.header, this.statusList); } GoalStatusArray();  GoalStatusArray(Header header, GoalStatus[] statusList); int size(); GoalStatus get(int index); GoalStatus[] getStatusList(); Header getHeader(); @Override GoalStatusArray clone(); static GoalStatusArray fromJsonString(String jsonString); static GoalStatusArray fromMessage(Message m); static GoalStatusArray fromJsonObject(JsonObject jsonObject); static final String FIELD_HEADER; static final String FIELD_STATUS_LIST; static final String TYPE; }### Answer:
@Test public void testClone() { GoalStatusArray clone = g1.clone(); assertEquals(g1.toString(), clone.toString()); assertEquals(g1.toJsonObject(), clone.toJsonObject()); assertEquals(g1.getMessageType(), clone.getMessageType()); assertEquals(g1.getHeader(), clone.getHeader()); assertTrue(Arrays.deepEquals(g1.getStatusList(), clone.getStatusList())); assertEquals(g1.size(), clone.size()); assertNotSame(g1, clone); assertNotSame(g1.toString(), clone.toString()); assertNotSame(g1.toJsonObject(), clone.toJsonObject()); assertNotSame(g1.getStatusList(), clone.getStatusList()); }