Как издеваться над MapstrukJAVA

Программисты JAVA общаются здесь
Anonymous
Как издеваться над Mapstruk

Сообщение Anonymous »

Я искал решение уже около дня. Я до сих пор не могу создать рабочий пример. < /P>
Моя проблема проста. У меня есть Mapper, использующий другой Mapper: < /p>
@Mapper(componentModel = "spring", uses = {RoleMapper.class})
public interface UserMapper {

/**
* Converts User DTO to User JPA Entity
* @Mapping annotation is used to convert fields with different names
* @param dto
* @return
*/
@Mappings({
@Mapping(target = "identityNo", source = "dto.userIdentity"),
@Mapping(target = "role", source = "dto.roleDTO")
})
User dtoToEntity(UserDTO dto);

/**
* Converts User JPA Entity to User DTO
* @Mapping annotation is used to convert fields with different names
* @param entity
* @return
*/
@Mappings({
@Mapping(target = "userIdentity", source = "entity.identityNo"),
@Mapping(target = "roleDTO", source = "entity.role")
})
UserDTO entityToDto(User entity);

}

< /code>
@Mapper(componentModel = "spring")
public interface RoleMapper {

Role roleDtoToEntity(RoleDTO dto);
RoleDTO roleEntityToDto(Role entity);
}

< /code>
My test class which tests mapper works as it should:
class UserMapperTest {

private UserMapper mapper = Mappers.getMapper(UserMapper.class);

@Test
void dtoToEntity() {

User user = new User();
user.setName("john");
user.setSurname("doe");
user.setIdentityNo("11111111111");
user.setRole(new Role("ROLE_ADMIN"));

UserDTO dto = mapper.entityToDto(user);

Assertions.assertEquals(user.getName(), dto.getName());
Assertions.assertEquals(user.getSurname(), dto.getSurname());
Assertions.assertEquals(user.getIdentityNo(), dto.getUserIdentity());
Assertions.assertEquals(user.getRole().getName(), dto.getRoleDTO().getName());
}
}
< /code>
However, NullPointerException is thrown on the line where roleMapper is called in automatically generated impl class UserMapperImpl:
Изображение

it comes to my basic problem, how to mock or autowire a nested mapper class?

Подробнее здесь: https://stackoverflow.com/questions/652 ... -in-junit5

Вернуться в «JAVA»