Commit bb7fa244 by Rubén Ramírez

feat: [TestServicioRecursos]: Actualizado el test de añadir reseñas

parent 06821446
...@@ -647,35 +647,55 @@ public class TestServicioRecursos { ...@@ -647,35 +647,55 @@ public class TestServicioRecursos {
@DirtiesContext @DirtiesContext
@Transactional @Transactional
void testAnadirResena() { void testAnadirResena() {
// Creo un usuario de prueba // Crear usuario
Usuario usuario = new Usuario("usuario@test.com", "Usuario Test", "contraseña123"); Usuario usuario1 = new Usuario("usuario1@test.com", "Usuario Uno", "clave123");
servicioUsuarios.crearUsuario(usuario); servicioUsuarios.crearUsuario(usuario1);
// Creo un recurso de prueba Usuario usuario2 = new Usuario("usuario2@test.com", "Usuario Dos", "clave456");
Recurso recurso = new Recurso("Manga Test", "Descripción de prueba", LocalDate.now(), "Autor X", new byte[0]); servicioUsuarios.crearUsuario(usuario2);
// Crear recurso
Recurso recurso = new Recurso("Manga Reseñas", "Reseñas test", LocalDate.now(), "Autor X", new byte[0]);
servicioRecursos.crearRecurso(recurso); servicioRecursos.crearRecurso(recurso);
Long recursoId = recurso.getId();
// Creo una reseña para el recurso y el usuario // Crear primera reseña (sin fecha)
Resena resena = new Resena(usuario, recurso, 5, "Muy buen manga"); Resena resena1 = new Resena(usuario1, recurso, 4, "Entretenido");
servicioRecursos.anadirResena(resena1);
// Verifico que el recurso inicialmente no tiene reseñas // Validar que la fecha se ha establecido automáticamente
assertThat(recurso.getResenas()).isEmpty(); Recurso recursoActualizado = servicioRecursos.buscarRecursoPorId(recursoId);
assertThat(recursoActualizado.getResenas()).hasSize(1);
Resena r1 = recursoActualizado.getResenas().getFirst();
assertThat(r1.getFechaPublicacion()).isEqualTo(LocalDate.now());
assertThat(r1.getEstrellas()).isEqualTo(4);
assertThat(recursoActualizado.getMediaEstrellas()).isEqualTo(4.0);
// Añado la reseña al recurso // Crear segunda reseña
servicioRecursos.anadirResena(resena); Resena resena2 = new Resena(usuario2, recurso, 2, "Meh");
recurso = servicioRecursos.buscarRecursoPorId(recurso.getId()); servicioRecursos.anadirResena(resena2);
// Verifico que la reseña se haya añadido correctamente // Validar reseñas en orden descendente por fecha
assertThat(recurso.getResenas()).hasSize(1); List<Resena> resenas = servicioRecursos.obtenerResenasDeRecurso(recursoId);
assertThat(recurso.getResenas().get(0).getTexto()).isEqualTo("Muy buen manga"); assertThat(resenas).hasSize(2);
assertThat(recurso.getResenas().get(0).getEstrellas()).isEqualTo(5); assertThat(resenas.get(0).getFechaPublicacion()).isAfterOrEqualTo(resenas.get(1).getFechaPublicacion());
assertThat(recurso.getResenas().get(0).getUsuario().getEmail()).isEqualTo("usuario@test.com");
assertThat(recurso.getResenas().get(0).getFechaPublicacion()).isEqualTo(LocalDate.now()); // Validar datos de las reseñas
Recurso recursoActualizado = servicioRecursos.buscarRecursoPorId(recurso.getId()); assertThat(resenas.stream().map(Resena::getTexto))
assertThat(recursoActualizado.getResenas()).hasSize(1); .containsExactlyInAnyOrder("Entretenido", "Meh");
assertThat(recursoActualizado.getResenas().get(0).getTexto()).isEqualTo("Muy buen manga");
// Validar media de estrellas
assertThat(servicioRecursos.buscarRecursoPorId(recursoId).getMediaEstrellas()).isEqualTo(3.0);
// Verificar que la relación bidireccional es correcta
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
}
} }
@Test @Test
@DirtiesContext @DirtiesContext
@Transactional @Transactional
......
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