package com.pollex.pam.service.mapper;
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import com.pollex.pam.domain.User;
|
import com.pollex.pam.service.dto.AdminUserDTO;
|
import com.pollex.pam.service.dto.UserDTO;
|
import java.util.ArrayList;
|
import java.util.HashSet;
|
import java.util.List;
|
import java.util.Set;
|
import org.apache.commons.lang3.RandomStringUtils;
|
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.Test;
|
|
/**
|
* Unit tests for {@link UserMapper}.
|
*/
|
class UserMapperTest {
|
|
private static final String DEFAULT_LOGIN = "johndoe";
|
private static final Long DEFAULT_ID = 1L;
|
|
private UserMapper userMapper;
|
private User user;
|
private AdminUserDTO userDto;
|
|
@BeforeEach
|
public void init() {
|
userMapper = new UserMapper();
|
user = new User();
|
user.setLogin(DEFAULT_LOGIN);
|
user.setPassword(RandomStringUtils.random(60));
|
user.setActivated(true);
|
user.setEmail("johndoe@localhost");
|
user.setFirstName("john");
|
user.setLastName("doe");
|
user.setImageUrl("image_url");
|
user.setLangKey("en");
|
|
userDto = new AdminUserDTO(user);
|
}
|
|
@Test
|
void usersToUserDTOsShouldMapOnlyNonNullUsers() {
|
List<User> users = new ArrayList<>();
|
users.add(user);
|
users.add(null);
|
|
List<UserDTO> userDTOS = userMapper.usersToUserDTOs(users);
|
|
assertThat(userDTOS).isNotEmpty().size().isEqualTo(1);
|
}
|
|
@Test
|
void userDTOsToUsersShouldMapOnlyNonNullUsers() {
|
List<AdminUserDTO> usersDto = new ArrayList<>();
|
usersDto.add(userDto);
|
usersDto.add(null);
|
|
List<User> users = userMapper.userDTOsToUsers(usersDto);
|
|
assertThat(users).isNotEmpty().size().isEqualTo(1);
|
}
|
|
@Test
|
void userDTOsToUsersWithAuthoritiesStringShouldMapToUsersWithAuthoritiesDomain() {
|
Set<String> authoritiesAsString = new HashSet<>();
|
authoritiesAsString.add("ADMIN");
|
userDto.setAuthorities(authoritiesAsString);
|
|
List<AdminUserDTO> usersDto = new ArrayList<>();
|
usersDto.add(userDto);
|
|
List<User> users = userMapper.userDTOsToUsers(usersDto);
|
|
assertThat(users).isNotEmpty().size().isEqualTo(1);
|
assertThat(users.get(0).getAuthorities()).isNotNull();
|
assertThat(users.get(0).getAuthorities()).isNotEmpty();
|
assertThat(users.get(0).getAuthorities().iterator().next().getName()).isEqualTo("ADMIN");
|
}
|
|
@Test
|
void userDTOsToUsersMapWithNullAuthoritiesStringShouldReturnUserWithEmptyAuthorities() {
|
userDto.setAuthorities(null);
|
|
List<AdminUserDTO> usersDto = new ArrayList<>();
|
usersDto.add(userDto);
|
|
List<User> users = userMapper.userDTOsToUsers(usersDto);
|
|
assertThat(users).isNotEmpty().size().isEqualTo(1);
|
assertThat(users.get(0).getAuthorities()).isNotNull();
|
assertThat(users.get(0).getAuthorities()).isEmpty();
|
}
|
|
@Test
|
void userDTOToUserMapWithAuthoritiesStringShouldReturnUserWithAuthorities() {
|
Set<String> authoritiesAsString = new HashSet<>();
|
authoritiesAsString.add("ADMIN");
|
userDto.setAuthorities(authoritiesAsString);
|
|
User user = userMapper.userDTOToUser(userDto);
|
|
assertThat(user).isNotNull();
|
assertThat(user.getAuthorities()).isNotNull();
|
assertThat(user.getAuthorities()).isNotEmpty();
|
assertThat(user.getAuthorities().iterator().next().getName()).isEqualTo("ADMIN");
|
}
|
|
@Test
|
void userDTOToUserMapWithNullAuthoritiesStringShouldReturnUserWithEmptyAuthorities() {
|
userDto.setAuthorities(null);
|
|
User user = userMapper.userDTOToUser(userDto);
|
|
assertThat(user).isNotNull();
|
assertThat(user.getAuthorities()).isNotNull();
|
assertThat(user.getAuthorities()).isEmpty();
|
}
|
|
@Test
|
void userDTOToUserMapWithNullUserShouldReturnNull() {
|
assertThat(userMapper.userDTOToUser(null)).isNull();
|
}
|
|
@Test
|
void testUserFromId() {
|
assertThat(userMapper.userFromId(DEFAULT_ID).getId()).isEqualTo(DEFAULT_ID);
|
assertThat(userMapper.userFromId(null)).isNull();
|
}
|
}
|