Assert.assertEquals(client.getName(), dto.getPerson().getName());
}
@Test
public void testNestedPolymorphicInheritance() {
MapperFactory factory = MappingUtil.getMapperFactory();
factory.registerClassMap(factory.classMap(Person.class, PersonDTO.class).byDefault().toClassMap());
factory.registerClassMap(factory.classMap(Client.class, ClientDTO.class).byDefault().toClassMap());
factory.registerClassMap(factory.classMap(Employee.class, EmployeeDTO.class).byDefault().toClassMap());
factory.registerClassMap(factory.classMap(Subscription.class, SubscriptionDTO.class).field("client", "person").toClassMap());
Client client = new Client();
client.setName("Khalil Gebran");
Employee employee = new Employee();
employee.setName("Kuipje Anders");
Subscription clientSubscription = new Subscription();
clientSubscription.setClient(client);
Subscription employeeSubscription = new Subscription();
employeeSubscription.setClient(employee);
List<Subscription> subscriptions = Arrays.asList(clientSubscription, employeeSubscription);
List<SubscriptionDTO> dto = factory.getMapperFacade().mapAsList(subscriptions, SubscriptionDTO.class);
Assert.assertNotNull(dto);
Assert.assertEquals(2, dto.size());
Assert.assertNotNull(dto.get(0).getPerson());
Assert.assertEquals(client.getName(), dto.get(0).getPerson().getName());