package [Link].
model;
import static [Link];
import static [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@ExtendWith([Link])
public class UserServiceUnitTest {
@Mock
private UsersRepository repo;
@InjectMocks
private UsersServiceImpl usersService;
private Mapeador mapper = [Link]([Link]);
@Test
public void recuperarAllUsers() throws Exception {
List<UsersEntity> listaUsuarios = listaUsuarios();
when([Link]()).thenReturn(listaUsuarios);
List<UserDTO> usuarios = [Link]();
for (int i = 0; i < [Link](); i++) {
[Link]([Link](i),
[Link](i));
}
}
@Test
public void recuperarUsuarioId() {
UsersEntity usuario = [Link](23, "ruben",
"perro15", [Link]("2024-08-03"),"ruben","perez","lopez","2000-04-
04","email@[Link]","123123123");
when([Link]([Link]())).thenReturn([Link](usuario));
Optional<UserDTO> usuarioOpcional =
[Link]([Link]());
UserDTO usuarioExistente = [Link]();
[Link](usuarioExistente,
usuario);
}
@Test
public void altaUsuario() throws Exception {
UsersEntity usuario = [Link](23, "ruben",
"perro15", [Link]("2024-08-03"),"ruben","perez","lopez","2000-04-
04","email@[Link]","123123123");
UserDTO nuevoUsuario = mapper.userEntity2UserDTO(usuario);
when([Link](any([Link]))).thenReturn(usuario);
when([Link](any([Link]))).thenReturn([Link]());
UserFullResponseDTO usuarioGuardado =
[Link](nuevoUsuario);
[Link](usuarioGuardado,
usuario);
}
@Test
public void altaUsuario_ThrowsException() {
UsersEntity existingUser = [Link](23,
"ruben", "perro15", [Link]("2024-08-03"),"ruben","perez","lopez","2000-04-
04","email@[Link]","123123123");
UserDTO nuevoUsuario = mapper.userEntity2UserDTO(existingUser);
when([Link]([Link]())).thenReturn([Link](existi
ngUser));
Exception exception = [Link]([Link], () -> {
[Link](nuevoUsuario);
});
String expectedMessage = ConstantsUtils.USER_ALREADY_EXISTS;
String actualMessage = [Link]();
[Link]([Link](expectedMessage));
}
@Test
public void altaUsuario_ThrowsExceptionUsernameNull() {
UserDTO nuevoUsuario = [Link](null, "perro15",
[Link]("2024-08-03"));
Exception exception = [Link]([Link], () -> {
[Link](nuevoUsuario);
});
String expectedMessage = ConstantsUtils.USERNAME_CANNOT_BE_NULL;
String actualMessage = [Link]();
[Link]([Link](expectedMessage));
}
@Test
public void altaUsuario_ThrowsExceptionPasswordNull() {
UserDTO nuevoUsuario = [Link]("ruben", null,
[Link]("2024-08-03"));
Exception exception = [Link]([Link], () -> {
[Link](nuevoUsuario);
});
String expectedMessage = ConstantsUtils.PASSWORD_CANNOT_BE_NULL;
String actualMessage = [Link]();
[Link]([Link](expectedMessage));
}
@Test
public void altaUsuario_ThrowsExceptionFechaAltaNull() {
UserDTO nuevoUsuario = [Link]("ruben",
"password1", null);
Exception exception = [Link]([Link], () -> {
[Link](nuevoUsuario);
});
String expectedMessage = ConstantsUtils.FECHA_ALTA_CANNOT_BE_NULL;
String actualMessage = [Link]();
[Link]([Link](expectedMessage));
}
@Test
public void altaUsuario_ThrowsExceptionAllNull() {
UserDTO nuevoUsuario = [Link](null, null, null);
Exception exception = [Link]([Link], () -> {
[Link](nuevoUsuario);
});
String expectedMessage = ConstantsUtils.USERNAME_CANNOT_BE_NULL; //
salta el error en la primera validacion
String actualMessage = [Link]();
[Link]([Link](expectedMessage));
}
private List<UsersEntity> listaUsuarios() {
return [Link]([Link](23, "ruben",
"perro15", [Link]("2024-08-03"),"ruben","perez","lopez","2000-04-
04","email@[Link]","123123123"),
[Link](23, "pedro", "perro15",
[Link]("2024-08-04"),"pedro","rodriguez","garcia","2000-05-
07","email2@[Link]","123125523"),
[Link](23, "jose", "perro15",
[Link]("2024-08-05"),"jose","garcia","rodriguez","2000-06-
07","email3@[Link]","123123663"));
}