@Test
public class NoSetterTest1 extends AbstractTest {
static class Source {
private String str;
public Source(String str) {
this.str = str;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}
static class Dest {
private List<String> list;
public List<String> getList() {
return list;
}
}
static class SplitConverter implements Converter<String, List<String>> {
public List<String> convert(MappingContext<String, List<String>> context) {
return Arrays.asList(context.getSource().split(","));
}
}
public void shouldMap() {
modelMapper.getConfiguration()
.setFieldMatchingEnabled(true)
.setFieldAccessLevel(Configuration.AccessLevel.PRIVATE);
modelMapper.addMappings(new PropertyMap<Source, Dest>() {
@Override
protected void configure() {
using(new SplitConverter()).map(source.getStr(), destination.getList());
}
});
modelMapper.validate();
assertEquals(modelMapper.map(new Source("a,b,c"), Dest.class).list,
Arrays.asList("a", "b", "c"));
}
}