TestdataEntity a = new TestdataEntity("a", val1);
TestdataEntity b = new TestdataEntity("b", val1);
TestdataEntity c = new TestdataEntity("c", val3);
TestdataEntity d = new TestdataEntity("d", val3);
TestdataAccessModifierSolution original = new TestdataAccessModifierSolution("solution");
original.setWriteOnlyField("writeHello");
List<TestdataValue> valueList = Arrays.asList(val1, val2, val3);
original.setValueList(valueList);
List<TestdataEntity> originalEntityList = Arrays.asList(a, b, c, d);
original.setEntityList(originalEntityList);
TestdataAccessModifierSolution clone = cloner.cloneSolution(original);
assertSame("staticFinalFieldValue", TestdataAccessModifierSolution.getStaticFinalField());
assertSame(staticObject, TestdataAccessModifierSolution.getStaticField());
assertNotSame(original, clone);
assertCode("solution", clone);
assertEquals(original.getFinalField(), clone.getFinalField());
assertEquals("readHello", clone.getReadOnlyField());
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);