sclassB.setBaseSubAttribute("sBase");
sclassB.setSubAttribute("s");
asub.setSClass(sclassA);
asub.setSClass2(sclassB);
AnotherSubClassPrime subPrime = mapper.map(asub, AnotherSubClassPrime.class);
assertEquals(asub.getSubAttribute(), subPrime.getSubAttribute2());
assertEquals(asub.getBaseAttribute(), subPrime.getBaseAttribute2());
assertTrue(subPrime.getTheListOfSubClassPrime().get(0) instanceof S2ClassPrime);
assertTrue(subPrime.getTheListOfSubClassPrime().get(1) instanceof SClassPrime);
assertEquals(s2.getSub2Attribute(), ((S2ClassPrime) subPrime.getTheListOfSubClassPrime().get(0)).getSub2Attribute2());
assertEquals(s2.getBaseSubAttribute(), ((S2ClassPrime) subPrime.getTheListOfSubClassPrime().get(0)).getBaseSubAttribute2());
assertEquals(s.getSubAttribute(), ((SClassPrime) subPrime.getTheListOfSubClassPrime().get(1)).getSubAttribute2());
assertEquals(s.getBaseSubAttribute(), ((SClassPrime) subPrime.getTheListOfSubClassPrime().get(1)).getBaseSubAttribute2());
assertTrue(subPrime.getArrayToList()[0] instanceof S2ClassPrime);
assertTrue(subPrime.getArrayToList()[1] instanceof SClassPrime);
assertTrue(subPrime.getArrayToList()[2] instanceof SClassPrime);
assertEquals(s2class.getSub2Attribute(), ((S2ClassPrime) subPrime.getArrayToList()[0]).getSub2Attribute2());
assertEquals(s2class.getBaseSubAttribute(), ((S2ClassPrime) subPrime.getArrayToList()[0]).getBaseSubAttribute2());
assertEquals(sclass.getSubAttribute(), ((SClassPrime) subPrime.getArrayToList()[1]).getSubAttribute2());
assertEquals(sclass.getBaseSubAttribute(), ((SClassPrime) subPrime.getArrayToList()[1]).getBaseSubAttribute2());
assertEquals(sclass2.getSubAttribute(), ((SClassPrime) subPrime.getArrayToList()[2]).getSubAttribute2());
assertEquals(sclass2.getBaseSubAttribute(), ((SClassPrime) subPrime.getArrayToList()[2]).getBaseSubAttribute2());
assertEquals(asub.getSClass().getSubAttribute(), subPrime.getSClass().getSubAttribute2());
assertEquals(asub.getSClass().getBaseSubAttribute(), subPrime.getSClass().getBaseSubAttribute2());
assertEquals(asub.getSClass2().getSubAttribute(), subPrime.getSClass2().getSubAttribute2());
assertEquals(asub.getSClass2().getBaseSubAttribute(), subPrime.getSClass2().getBaseSubAttribute2());
// map it back
AnotherSubClass sub = mapper.map(subPrime, AnotherSubClass.class);
assertTrue(sub.getSubList().get(0) instanceof S2Class);
assertTrue(sub.getSubList().get(1) instanceof SClass);