@Test public void shouldUseOnlyOneDirectionMapping() { // given MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build(); mapperFactory .classMap(BasicPerson.class, BasicPersonDto.class) .fieldAToB("name", "fullName") .field("age", "currentAge") .field("birthDate", "birthDate") .register(); BasicPerson bpSrc = createBasicPerson("Jan", 20, Calendar.getInstance().getTime()); BasicPersonDto bpDtoSrc = new BasicPersonDto(); bpDtoSrc.setFullName("Jan"); bpDtoSrc.setCurrentAge(20); bpDtoSrc.setBirthDate(Calendar.getInstance().getTime()); // when BoundMapperFacade<BasicPerson, BasicPersonDto> boundMapper = mapperFactory.getMapperFacade(BasicPerson.class, BasicPersonDto.class); BasicPersonDto bpDtoDest = boundMapper.map(bpSrc); BasicPerson bpDest = boundMapper.mapReverse(bpDtoSrc); // then assertThat(bpDtoDest.getCurrentAge()).isEqualTo(bpSrc.getAge()); assertThat(bpDtoDest.getFullName()).isEqualTo(bpSrc.getName()); assertThat(bpDtoDest.getBirthDate()).isEqualTo(bpSrc.getBirthDate()); assertThat(bpDest.getAge()).isEqualTo(bpDtoSrc.getCurrentAge()); assertThat(bpDest.getName()).isNull(); assertThat(bpDest.getBirthDate()).isEqualTo(bpDtoSrc.getBirthDate()); }