Commit e465d085 by Rubén Ramírez

feat: [TestServicioUsuarios]: Actualizadas los tests de las funciones de…

feat: [TestServicioUsuarios]: Actualizadas los tests de las funciones de registro y modificación de datos con la comprobación de contraseña débil
parent 7d0bd97b
......@@ -5,6 +5,7 @@ import com.ujaen.tfg.mangaffinity.MangAffinityApplication;
import com.ujaen.tfg.mangaffinity.config.JpaTestConfig;
import com.ujaen.tfg.mangaffinity.entidades.BibliotecaPersonal;
import com.ujaen.tfg.mangaffinity.entidades.Usuario;
import com.ujaen.tfg.mangaffinity.excepciones.ContrasenaDebil;
import com.ujaen.tfg.mangaffinity.excepciones.NombreUsuarioYaCogido;
import com.ujaen.tfg.mangaffinity.excepciones.UsuarioNoExiste;
import com.ujaen.tfg.mangaffinity.excepciones.UsuarioYaRegistrado;
......@@ -37,27 +38,32 @@ public class TestServicioUsuarios {
@Test
@DirtiesContext
void testCrearUsuario() {
//Registro un usuario correctamente
var usuario1 = new Usuario("juan@gmail.com", "Juan", "juanelo");
// Usuario válido
var usuario1 = new Usuario("juan@gmail.com", "Juan", "Segura123!");
DTOLoginRespuesta respuesta1 = servicioUsuarios.crearUsuario(usuario1);
assertThat(respuesta1).isNotNull();
assertThat(respuesta1.getEmail()).isEqualTo("juan@gmail.com");
assertThat(respuesta1.getNombreUsuario()).isEqualTo("Juan");
// Intento registrar un usuario con un email ya registrado
var usuario2 = new Usuario("juan@gmail.com", "Carlos", "carlitos");
// Email ya registrado
var usuario2 = new Usuario("juan@gmail.com", "Carlos", "OtraSegura123!");
assertThatThrownBy(() -> servicioUsuarios.crearUsuario(usuario2))
.isInstanceOf(UsuarioYaRegistrado.class);
// Intento registrar un usuario con un nombre de usuario ya en uso
var usuario3 = new Usuario("maria@gmail.com", "Juan", "juanelo");
// Nombre de usuario ya en uso
var usuario3 = new Usuario("maria@gmail.com", "Juan", "Segura456!");
assertThatThrownBy(() -> servicioUsuarios.crearUsuario(usuario3))
.isInstanceOf(NombreUsuarioYaCogido.class);
// Intento registrar un usuario con el email del administrador
var usuarioAdmin = new Usuario("admin@example.com", "Admin", "adminpassword");
// Email del administrador
var usuarioAdmin = new Usuario("admin@example.com", "Admin", "Admin123!");
assertThatThrownBy(() -> servicioUsuarios.crearUsuario(usuarioAdmin))
.isInstanceOf(UsuarioYaRegistrado.class);
// Contraseña débil (sin mayúscula, número ni carácter especial)
var usuarioDebil = new Usuario("nuevo@gmail.com", "Nuevo", "insegura");
assertThatThrownBy(() -> servicioUsuarios.crearUsuario(usuarioDebil))
.isInstanceOf(ContrasenaDebil.class);
}
@Test
......@@ -210,28 +216,44 @@ public class TestServicioUsuarios {
@Test
@DirtiesContext
void testModificarUsuarioDesdeToken() {
// Crear usuario y obtener su token
Usuario usuario = new Usuario("token@test.com", "TokenUser", "clave123");
// Crear usuario con contraseña válida
Usuario usuario = new Usuario("token@test.com", "TokenUser", "Clave123!");
DTOLoginRespuesta registro = servicioUsuarios.crearUsuario(usuario);
String token = "Bearer " + registro.getToken();
// Modificar datos a través del token
// Modificar datos correctamente
DTOLoginRespuesta modificado = servicioUsuarios.modificarUsuarioDesdeToken(
token,
"modificado@test.com",
"NombreModificado",
"claveModificada",
"clave123"
"ClaveNueva123!",
"Clave123!"
);
assertThat(modificado).isNotNull();
assertThat(modificado.getEmail()).isEqualTo("modificado@test.com");
assertThat(modificado.getNombreUsuario()).isEqualTo("NombreModificado");
// Validar que el nuevo token contiene los datos actualizados
Claims claims = jwtUtil.decodeJWT(modificado.getToken());
assertThat(claims.get("email")).isEqualTo("modificado@test.com");
assertThat(claims.get("nombreUsuario")).isEqualTo("NombreModificado");
///️ Obtener el nuevo token con datos actualizados
String nuevoToken = "Bearer " + modificado.getToken();
// Contraseña nueva débil
assertThatThrownBy(() -> servicioUsuarios.modificarUsuarioDesdeToken(
nuevoToken,
"otro@test.com",
"OtroNombre",
"debile", // débil: sin número, mayúscula ni carácter especial
"ClaveNueva123!"
)).isInstanceOf(ContrasenaDebil.class);
// Contraseña actual incorrecta
assertThatThrownBy(() -> servicioUsuarios.modificarUsuarioDesdeToken(
nuevoToken,
"otro2@test.com",
"OtroNombre2",
"ClaveSegura456!",
"incorrecta"
)).isInstanceOf(IllegalArgumentException.class);
}
@Test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment