final TestDto12MapIterface dMap = new TestDto12cMapToCollectionClass();
final Assembler assembler = DTOAssembler.newCustomAssembler(dMap.getClass(), eWrap.getClass(), synthesizer);
assembler.assembleDto(dMap, eWrap, null, new BeanFactory() {
public Class getClazz(final String entityBeanKey) {
if ("dtoItem".equals(entityBeanKey)) {
return TestDto12CollectionItemClass.class;
} else if ("TestEntity12CollectionItemInterface".equals(entityBeanKey)) {
return TestEntity12CollectionItemInterface.class;
}
return null;
}
public Object get(final String entityBeanKey) {
if ("dtoItem".equals(entityBeanKey)) {
return new TestDto12CollectionItemClass();
} else if ("dtoMap".equals(entityBeanKey)) {
return new HashMap<Object, Object>();
}
return null;
}
});
assertNotNull(dMap.getItems());
assertEquals(2, dMap.getItems().size());
final Set<String> keys = dMap.getItems().keySet();
for (String key : keys) {
if ("itm1".equals(key)) {
assertEquals("itm1", dMap.getItems().get(key).getName());
} else if ("itm2".equals(key)) {
assertEquals("itm2", dMap.getItems().get(key).getName());
} else {
fail("Unknown key");
}
}
final TestDto12CollectionItemClass dto3 = new TestDto12CollectionItemClass();
dto3.setName("itm3");
dMap.getItems().put("itm3", dto3);
dMap.getItems().remove("itm1"); // first
final Map<String, Object> converters = new HashMap<String, Object>();
converters.put("Test12KeyMapToEntityMatcher.class", new Test12KeyMapToEntityMatcher());
assembler.assembleEntity(dMap, eWrap, converters, new BeanFactory() {
public Class getClazz(final String entityBeanKey) {
if ("nestedEntity".equals(entityBeanKey)) {
return TestDto12CollectionClass.class;
} else if ("entityItem".equals(entityBeanKey)) {