Commit 746f958e by Rubén Ramírez

feat: [Test*]: Actualizados test del servicio por contraseñas débiles

parent b003523a
......@@ -1056,7 +1056,7 @@ public class TestRecursosController {
assertThat(rankingResponse.getStatusCode()).isEqualTo(HttpStatus.OK);
assertThat(rankingResponse.getBody()).isNotEmpty();
assertThat(rankingResponse.getBody().length).isEqualTo(8); // Ahora deberían devolver 8 recursos
assertThat(rankingResponse.getBody().length).isEqualTo(8);
for (DTORecurso recurso : rankingResponse.getBody()) {
assertThat(recurso).isNotNull();
......@@ -1155,6 +1155,4 @@ public class TestRecursosController {
assertThat(respuesta404Recurso.getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
}
}
......@@ -12,13 +12,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
import java.time.LocalDate;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.assertThrows;
@SpringBootTest(classes = {MangAffinityApplication.class, JpaTestConfig.class})
@ActiveProfiles("test")
......@@ -38,7 +36,7 @@ public class TestServicioBibliotecaPersonal {
@DirtiesContext
void testAnadirRecursoBiblioteca() {
// Creo un usuario
Usuario usuario = new Usuario("test@email.com", "usuarioTest", "password123");
Usuario usuario = new Usuario("test@email.com", "usuarioTest", "Password123!");
servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal();
......@@ -80,7 +78,7 @@ public class TestServicioBibliotecaPersonal {
@DirtiesContext
void testListarRecursosPorCategoria() {
// Creo un usuario con su biblioteca personal
Usuario usuario = new Usuario("otro@email.com", "usuarioOtro", "claveSegura");
Usuario usuario = new Usuario("otro@email.com", "usuarioOtro", "Password123!");
servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal();
......@@ -109,7 +107,7 @@ public class TestServicioBibliotecaPersonal {
@DirtiesContext
void testEliminarRecursoDeBiblioteca() {
// Creo un usuario y su biblioteca
Usuario usuario = new Usuario("nuevo.usuario@email.com", "nuevoUsuarioTest", "nuevaPassword123");
Usuario usuario = new Usuario("nuevo.usuario@email.com", "nuevoUsuarioTest", "Password123!");
servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal();
......@@ -132,7 +130,7 @@ public class TestServicioBibliotecaPersonal {
List<BibliotecaPersonalRecurso> recursosDespues = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.AL_DIA);
assertThat(recursosDespues).isEmpty();
// Intento eliminarlo otra vez (debería lanzar excepción)
// Intento eliminarlo otra vez
assertThatThrownBy(() ->
servicioBibliotecaPersonal.eliminarRecursoDeBiblioteca(bibliotecaPersonal.getId(), recursoGuardado.getId())
).isInstanceOf(RecursoNoExiste.class);
......@@ -142,7 +140,7 @@ public class TestServicioBibliotecaPersonal {
@DirtiesContext
void testModificarCategoriaDeRecurso() {
// Creo usuario y biblioteca
Usuario usuario = new Usuario("usuario2@email.com", "usuarioMod", "securepass");
Usuario usuario = new Usuario("usuario2@email.com", "usuarioMod", "Password123!");
servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal();
......@@ -180,7 +178,7 @@ public class TestServicioBibliotecaPersonal {
@DirtiesContext
void testBuscarRecursoEnBiblioteca() {
// Creo un usuario y su biblioteca
Usuario usuario = new Usuario("buscar@email.com", "usuarioBuscar", "clave");
Usuario usuario = new Usuario("buscar@email.com", "usuarioBuscar", "Password123!");
servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal biblioteca = usuario.getBibliotecaPersonal();
......@@ -206,7 +204,7 @@ public class TestServicioBibliotecaPersonal {
@DirtiesContext
void testAnadirFavorito() {
// Creo usuario y recurso
Usuario usuario = new Usuario("fav@correo.com", "usuarioFav", "claveFav");
Usuario usuario = new Usuario("fav@correo.com", "usuarioFav", "Password123!");
servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal biblioteca = usuario.getBibliotecaPersonal();
......@@ -225,7 +223,7 @@ public class TestServicioBibliotecaPersonal {
@DirtiesContext
void testEliminarFavorito() {
// Setup
Usuario usuario = new Usuario("quitar@correo.com", "usuarioQ", "claveQ");
Usuario usuario = new Usuario("quitar@correo.com", "usuarioQ", "Password123!");
servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal biblioteca = usuario.getBibliotecaPersonal();
......@@ -244,7 +242,7 @@ public class TestServicioBibliotecaPersonal {
@Test
@DirtiesContext
void testObtenerFavoritos() {
Usuario usuario = new Usuario("ver@correo.com", "usuarioVer", "claveVer");
Usuario usuario = new Usuario("ver@correo.com", "usuarioVer", "Password123!");
servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal biblioteca = usuario.getBibliotecaPersonal();
......
......@@ -334,11 +334,11 @@ public class TestServicioRecursos {
assertThat(capitulos.get(1).getNumero()).isEqualTo(2);
assertThat(capitulos.get(1).getTitulo()).isEqualTo("Capítulo 2");
// Verifico que las fuentes de cada capítulo se inicializan correctamente (Lazy loading)
// Verifico que las fuentes de cada capítulo se inicializan correctamente
assertThat(capitulos.get(0).getFuentes()).isEmpty();
assertThat(capitulos.get(1).getFuentes()).isEmpty();
// Pruebo con un recurso inexistente (debe devolver lista vacía)
// Pruebo con un recurso inexistente
List<Capitulo> capitulosInexistente = servicioRecursos.obtenerCapitulosDeRecurso(9999L);
assertThat(capitulosInexistente).isEmpty();
}
......@@ -467,7 +467,6 @@ public class TestServicioRecursos {
fuenteGuardada.setUrlFuente("https://actualizada.com");
servicioRecursos.actualizarFuente(fuenteGuardada);
// Verifico
Capitulo actualizado = servicioRecursos.obtenerCapitulosDeRecurso(recursoId).getFirst();
FuenteCapitulo fuenteActualizada = actualizado.getFuentes().getFirst();
assertThat(fuenteActualizada.getUrlFuente()).isEqualTo("https://actualizada.com");
......@@ -627,7 +626,7 @@ public class TestServicioRecursos {
// Creo un recurso con un acceso menos que el mínimo
Recurso recurso6 = new Recurso("Manga F", "Descripción F", LocalDate.now(), "Autor 6", new byte[0]);
recurso6.setContadorAccesosSemanal(2); // 2 accesos
recurso6.setContadorAccesosSemanal(2);
servicioRecursos.crearRecurso(recurso6);
List<Recurso> topRecursos = servicioRecursos.obtenerTopRecursosUltimaSemana();
......@@ -648,10 +647,10 @@ public class TestServicioRecursos {
@Transactional
void testAnadirResena() {
// Crear usuario
Usuario usuario1 = new Usuario("usuario1@test.com", "Usuario Uno", "clave123");
Usuario usuario1 = new Usuario("usuario1@test.com", "Usuario Uno", "Password123!");
servicioUsuarios.crearUsuario(usuario1);
Usuario usuario2 = new Usuario("usuario2@test.com", "Usuario Dos", "clave456");
Usuario usuario2 = new Usuario("usuario2@test.com", "Usuario Dos", "Password123!");
servicioUsuarios.crearUsuario(usuario2);
// Crear recurso
......@@ -691,17 +690,16 @@ public class TestServicioRecursos {
for (Resena resena : resenas) {
assertThat(resena.getRecurso().getId()).isEqualTo(recursoId);
assertThat(resena.getUsuario()).isNotNull();
assertThat(resena.getEstrellas()).isBetween(1, 5); // Validación de rango si fuera aplicable
assertThat(resena.getEstrellas()).isBetween(1, 5);
}
}
@Test
@DirtiesContext
@Transactional
void testObtenerResenasDeRecurso() {
// Creo un usuario de prueba
Usuario usuario = new Usuario("usuario@test.com", "Usuario Test", "contraseña123");
Usuario usuario = new Usuario("usuario@test.com", "Usuario Test", "Password123!");
servicioUsuarios.crearUsuario(usuario);
// Creo un recurso de prueba
......@@ -730,12 +728,13 @@ public class TestServicioRecursos {
assertThat(resenas.get(1).getTexto()).isEqualTo("Buena reseña");
assertThat(resenas.get(2).getTexto()).isEqualTo("Normalita");
}
@Test
@DirtiesContext
@Transactional
void testObtenerRecomendacionesParaUsuario() {
// Crear usuario y su biblioteca
Usuario usuario = new Usuario("recom@test.com", "Usuario Recom", "clave123");
Usuario usuario = new Usuario("recom@test.com", "Usuario Recom", "Password123!");
servicioUsuarios.crearUsuario(usuario);
Long usuarioId = usuario.getId();
BibliotecaPersonal biblioteca = usuario.getBibliotecaPersonal();
......
package com.ujaen.tfg.mangaffinity.servicios;
import com.ujaen.tfg.mangaffinity.MangAffinityApplication;
import com.ujaen.tfg.mangaffinity.config.JpaTestConfig;
import com.ujaen.tfg.mangaffinity.entidades.BibliotecaPersonal;
......@@ -21,9 +20,6 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;import java.util.Base64;
import java.util.List;
@SpringBootTest(classes = {MangAffinityApplication.class, JpaTestConfig.class})
@ActiveProfiles("test")
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
......@@ -70,7 +66,7 @@ public class TestServicioUsuarios {
@DirtiesContext
void testAutenticarUsuario() {
//Creo un usuario en el sistema
var usuario1 = new Usuario("pedra@gmail.com", "Pedra", "pedrita");
var usuario1 = new Usuario("pedra@gmail.com", "Pedra", "Password123!");
servicioUsuarios.crearUsuario(usuario1);
Usuario usuarioGuardado = servicioUsuarios.buscaUsuario("pedra@gmail.com");
assertThat(usuarioGuardado).isNotNull();
......@@ -86,7 +82,7 @@ public class TestServicioUsuarios {
assertThat(servicioUsuarios.autenticarUsuario(emailExistente, contraseniaIncorrecta)).isNull();
// Usuario con email y contraseña correctos
DTOLoginRespuesta respuestaValida = servicioUsuarios.autenticarUsuario( "pedra@gmail.com", "pedrita");
DTOLoginRespuesta respuestaValida = servicioUsuarios.autenticarUsuario( "pedra@gmail.com", "Password123!");
assertThat(respuestaValida).isNotNull();
assertThat(respuestaValida.getToken()).isNotNull();
......@@ -100,7 +96,7 @@ public class TestServicioUsuarios {
@DirtiesContext
void testBuscaUsuario() {
// Creo un usuario normal
Usuario usuario1 = new Usuario("usuarios@test.com", "Usuarios", "password123");
Usuario usuario1 = new Usuario("usuarios@test.com", "Usuarios", "Password123!");
servicioUsuarios.crearUsuario(usuario1);
// Busco el usuario por email
......@@ -123,7 +119,7 @@ public class TestServicioUsuarios {
@DirtiesContext
void testObtenerBibliotecaDeUsuario() {
// Creo un usuario
Usuario usuario = new Usuario("biblioteca@test.com", "UsuarioBiblioteca", "password123");
Usuario usuario = new Usuario("biblioteca@test.com", "UsuarioBiblioteca", "Password123!");
servicioUsuarios.crearUsuario(usuario);
// Busco el usuario por email para obtener su ID
......@@ -148,7 +144,7 @@ public class TestServicioUsuarios {
@DirtiesContext
void testBuscaUsuarioPorId() {
// Creo un usuario normal
Usuario usuario1 = new Usuario("usuario@test.com", "Usuario", "password123");
Usuario usuario1 = new Usuario("usuario@test.com", "Usuario", "Password123!");
servicioUsuarios.crearUsuario(usuario1);
// Busco el usuario por ID
......@@ -165,17 +161,23 @@ public class TestServicioUsuarios {
@Test
@DirtiesContext
void testModificarUsuario() {
// Contraseñas válidas según los criterios de seguridad
String contrasenaInicial = "Password123!";
String contrasenaNueva = "Password123!!";
String contrasenaOtro = "OtraClave123#";
String contrasenaErronea = "Incorrecta1@";
// Registro un usuario inicial
Usuario usuario = new Usuario("original@mail.com", "Original", "contrasena123");
Usuario usuario = new Usuario("original@mail.com", "Original", contrasenaInicial);
servicioUsuarios.crearUsuario(usuario);
// 1. Modificación correcta de todo (email, nombre, contraseña)
// 1. Modificación correcta de email, nombre y contraseña
DTOLoginRespuesta respuesta = servicioUsuarios.modificarUsuario(
"original@mail.com",
"nuevo@mail.com",
"NuevoNombre",
"nuevaContrasena123",
"contrasena123"
contrasenaNueva,
contrasenaInicial
);
assertThat(respuesta).isNotNull();
......@@ -183,24 +185,24 @@ public class TestServicioUsuarios {
assertThat(respuesta.getNombreUsuario()).isEqualTo("NuevoNombre");
// 2. Intento de usar un email ya registrado
Usuario otro = new Usuario("otro@mail.com", "Otro", "clave123");
Usuario otro = new Usuario("otro@mail.com", "Otro", contrasenaOtro);
servicioUsuarios.crearUsuario(otro);
assertThatThrownBy(() -> servicioUsuarios.modificarUsuario(
"nuevo@mail.com",
"otro@mail.com", // ya existe
"otro@mail.com",
"NombreCualquiera",
"otraClave",
"nuevaContrasena123"
"PasswordValida1@",
contrasenaNueva
)).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"
"correoNuevo@mail.com",
"Otro",
"PasswordValida2#",
contrasenaNueva
)).isInstanceOf(NombreUsuarioYaCogido.class);
// 4. Contraseña actual incorrecta
......@@ -208,9 +210,10 @@ public class TestServicioUsuarios {
"nuevo@mail.com",
"valido@mail.com",
"ValidoNombre",
"loquesea",
"contrasenaIncorrecta"
)).isInstanceOf(IllegalArgumentException.class);
"PasswordValida3$",
contrasenaErronea
)).isInstanceOf(IllegalArgumentException.class)
.hasMessage("La contraseña actual no es correcta");
}
@Test
......@@ -234,7 +237,7 @@ public class TestServicioUsuarios {
assertThat(modificado.getEmail()).isEqualTo("modificado@test.com");
assertThat(modificado.getNombreUsuario()).isEqualTo("NombreModificado");
///️ Obtener el nuevo token con datos actualizados
// Obtener el nuevo token con datos actualizados
String nuevoToken = "Bearer " + modificado.getToken();
// Contraseña nueva débil
......@@ -260,7 +263,7 @@ public class TestServicioUsuarios {
@DirtiesContext
void testActualizarPerfil_Completo() {
// Crear y registrar un usuario
Usuario usuario = new Usuario("perfil@test.com", "PerfilUser", "clave123");
Usuario usuario = new Usuario("perfil@test.com", "PerfilUser", "Password123!");
servicioUsuarios.crearUsuario(usuario);
Usuario guardado = servicioUsuarios.buscaUsuario("perfil@test.com");
......@@ -283,7 +286,7 @@ public class TestServicioUsuarios {
assertThat(actualizado2.getDescripcion()).isEqualTo(nuevaDescripcion2);
assertThat(actualizado2.getFotoPerfil()).isNotNull(); // conserva la anterior
// actualizar con foto vacía (no cambia foto)
// actualizar con foto vacía
String imagenVacia = " "; // string en blanco
servicioUsuarios.actualizarPerfil(guardado.getId(), "Descripción sin cambio de imagen", imagenVacia);
Usuario actualizado3 = servicioUsuarios.buscaUsuario(guardado.getId());
......@@ -302,9 +305,9 @@ public class TestServicioUsuarios {
@DirtiesContext
void testBuscarPorNombre() {
// Crear usuarios con diferentes nombres
servicioUsuarios.crearUsuario(new Usuario("one@mail.com", "Ana", "clave1"));
servicioUsuarios.crearUsuario(new Usuario("two@mail.com", "Anabel", "clave2"));
servicioUsuarios.crearUsuario(new Usuario("three@mail.com", "Pedro", "clave3"));
servicioUsuarios.crearUsuario(new Usuario("one@mail.com", "Ana", "Password123!"));
servicioUsuarios.crearUsuario(new Usuario("two@mail.com", "Anabel", "Password123!"));
servicioUsuarios.crearUsuario(new Usuario("three@mail.com", "Pedro", "Password123!"));
// Buscar usuarios con filtro "Ana"
List<Usuario> resultado = servicioUsuarios.buscarPorNombre("Ana");
......@@ -324,7 +327,7 @@ public class TestServicioUsuarios {
@DirtiesContext
void testObtenerAlgunosUsuarios() {
for (int i = 1; i <= 12; i++) {
Usuario usuario = new Usuario("user" + i + "@mail.com", "Usuario" + i, "clave" + i);
Usuario usuario = new Usuario("user" + i + "@mail.com", "Usuario" + i, "Password123!" + i);
servicioUsuarios.crearUsuario(usuario);
}
......
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