TestdataEntity a = new TestdataEntity("a", val1);
TestdataEntity b = new TestdataEntity("b", val1);
TestdataEntity c = new TestdataEntity("c", val3);
TestdataEntity d = new TestdataEntity("d", val3);
TestdataSolution original = new TestdataSolution("solution");
List<TestdataValue> valueList = Arrays.asList(val1, val2, val3);
original.setValueList(valueList);
List<TestdataEntity> originalEntityList = Arrays.asList(a, b, c, d);
original.setEntityList(originalEntityList);
TestdataSolution clone = cloner.cloneSolution(original);
assertNotSame(original, clone);
assertCode("solution", clone);
assertSame(valueList, clone.getValueList());
List<TestdataEntity> cloneEntityList = clone.getEntityList();
assertNotSame(originalEntityList, cloneEntityList);
assertEquals(4, cloneEntityList.size());
TestdataEntity cloneA = cloneEntityList.get(0);
TestdataEntity cloneB = cloneEntityList.get(1);
TestdataEntity cloneC = cloneEntityList.get(2);