Commit c62b602f by Rubén Ramírez

feat: [TestServicioUsuario]: Testeadas las funciones para modificar los datos del usuario

parent 23e10daf
......@@ -151,4 +151,83 @@ public class TestServicioUsuarios {
.isInstanceOf(UsuarioNoExiste.class);
}
@Test
@DirtiesContext
void testModificarUsuario() {
// Registro un usuario inicial
Usuario usuario = new Usuario("original@mail.com", "Original", "contrasena123");
servicioUsuarios.crearUsuario(usuario);
// 1. Modificación correcta de todo (email, nombre, contraseña)
DTOLoginRespuesta respuesta = servicioUsuarios.modificarUsuario(
"original@mail.com",
"nuevo@mail.com",
"NuevoNombre",
"nuevaContrasena123",
"contrasena123"
);
assertThat(respuesta).isNotNull();
assertThat(respuesta.getEmail()).isEqualTo("nuevo@mail.com");
assertThat(respuesta.getNombreUsuario()).isEqualTo("NuevoNombre");
// 2. Intento de usar un email ya registrado
Usuario otro = new Usuario("otro@mail.com", "Otro", "clave123");
servicioUsuarios.crearUsuario(otro);
assertThatThrownBy(() -> servicioUsuarios.modificarUsuario(
"nuevo@mail.com",
"otro@mail.com", // ya existe
"NombreCualquiera",
"otraClave",
"nuevaContrasena123"
)).isInstanceOf(UsuarioYaRegistrado.class);
// 3. Intento de usar un nombre de usuario ya en uso
assertThatThrownBy(() -> servicioUsuarios.modificarUsuario(
"nuevo@mail.com",
"cambiado@mail.com",
"Otro", // nombre de usuario ya existe
"claveNueva",
"nuevaContrasena123"
)).isInstanceOf(NombreUsuarioYaCogido.class);
// 4. Contraseña actual incorrecta
assertThatThrownBy(() -> servicioUsuarios.modificarUsuario(
"nuevo@mail.com",
"valido@mail.com",
"ValidoNombre",
"loquesea",
"contrasenaIncorrecta"
)).isInstanceOf(IllegalArgumentException.class);
}
@Test
@DirtiesContext
void testModificarUsuarioDesdeToken() {
// Crear usuario y obtener su token
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
DTOLoginRespuesta modificado = servicioUsuarios.modificarUsuarioDesdeToken(
token,
"modificado@test.com",
"NombreModificado",
"claveModificada",
"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");
}
}
\ No newline at end of file
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