Commit bb7fa244 by Rubén Ramírez

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

parent 06821446
...@@ -647,34 +647,54 @@ public class TestServicioRecursos { ...@@ -647,34 +647,54 @@ 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();
// Crear primera reseña (sin fecha)
Resena resena1 = new Resena(usuario1, recurso, 4, "Entretenido");
servicioRecursos.anadirResena(resena1);
// Validar que la fecha se ha establecido automáticamente
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);
// Creo una reseña para el recurso y el usuario // Crear segunda reseña
Resena resena = new Resena(usuario, recurso, 5, "Muy buen manga"); Resena resena2 = new Resena(usuario2, recurso, 2, "Meh");
servicioRecursos.anadirResena(resena2);
// Verifico que el recurso inicialmente no tiene reseñas // Validar reseñas en orden descendente por fecha
assertThat(recurso.getResenas()).isEmpty(); List<Resena> resenas = servicioRecursos.obtenerResenasDeRecurso(recursoId);
assertThat(resenas).hasSize(2);
assertThat(resenas.get(0).getFechaPublicacion()).isAfterOrEqualTo(resenas.get(1).getFechaPublicacion());
// Añado la reseña al recurso // Validar datos de las reseñas
servicioRecursos.anadirResena(resena); assertThat(resenas.stream().map(Resena::getTexto))
recurso = servicioRecursos.buscarRecursoPorId(recurso.getId()); .containsExactlyInAnyOrder("Entretenido", "Meh");
// Verifico que la reseña se haya añadido correctamente // Validar media de estrellas
assertThat(recurso.getResenas()).hasSize(1); assertThat(servicioRecursos.buscarRecursoPorId(recursoId).getMediaEstrellas()).isEqualTo(3.0);
assertThat(recurso.getResenas().get(0).getTexto()).isEqualTo("Muy buen manga");
assertThat(recurso.getResenas().get(0).getEstrellas()).isEqualTo(5); // Verificar que la relación bidireccional es correcta
assertThat(recurso.getResenas().get(0).getUsuario().getEmail()).isEqualTo("usuario@test.com"); for (Resena resena : resenas) {
assertThat(recurso.getResenas().get(0).getFechaPublicacion()).isEqualTo(LocalDate.now()); assertThat(resena.getRecurso().getId()).isEqualTo(recursoId);
Recurso recursoActualizado = servicioRecursos.buscarRecursoPorId(recurso.getId()); assertThat(resena.getUsuario()).isNotNull();
assertThat(recursoActualizado.getResenas()).hasSize(1); assertThat(resena.getEstrellas()).isBetween(1, 5); // Validación de rango si fuera aplicable
assertThat(recursoActualizado.getResenas().get(0).getTexto()).isEqualTo("Muy buen manga");
} }
}
@Test @Test
@DirtiesContext @DirtiesContext
......
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