Commit 1166bb2f by Rubén Ramírez

feat: [TestServicioRecursos]: Testeada la función para el ranking

parent dcc7df63
......@@ -587,7 +587,6 @@ public class TestServicioRecursos {
Recurso recursoActualizado = servicioRecursos.buscarRecursoPorId(recurso.getId());
assertThat(recursoActualizado.getContadorAccesos()).isEqualTo(1);
servicioRecursos.incrementarContadorAccesos(recurso.getId());
// Verifico que el contador de accesos haya incrementado correctamente
Recurso recursoConIncremento = servicioRecursos.buscarRecursoPorId(recurso.getId());
......@@ -598,5 +597,51 @@ public class TestServicioRecursos {
assertThrows(RecursoNoExiste.class, () -> servicioRecursos.incrementarContadorAccesos(idInexistente));
}
@Test
@DirtiesContext
void testObtenerTopRecursosUltimaSemana() {
// Creo recursos con diferentes valores en el contadorAccesosSemanal
Recurso recurso1 = new Recurso("Manga A", "Descripción A", LocalDate.now(), "Autor 1", new byte[0]);
recurso1.setContadorAccesosSemanal(5); // 5 accesos
servicioRecursos.crearRecurso(recurso1);
Recurso recurso2 = new Recurso("Manga B", "Descripción B", LocalDate.now(), "Autor 2", new byte[0]);
recurso2.setContadorAccesosSemanal(3); // 3 accesos
servicioRecursos.crearRecurso(recurso2);
Recurso recurso3 = new Recurso("Manga C", "Descripción C", LocalDate.now(), "Autor 3", new byte[0]);
recurso3.setContadorAccesosSemanal(8); // 8 accesos
servicioRecursos.crearRecurso(recurso3);
Recurso recurso4 = new Recurso("Manga D", "Descripción D", LocalDate.now(), "Autor 4", new byte[0]);
recurso4.setContadorAccesosSemanal(12); // 12 accesos
servicioRecursos.crearRecurso(recurso4);
Recurso recurso5 = new Recurso("Manga E", "Descripción E", LocalDate.now(), "Autor 5", new byte[0]);
recurso5.setContadorAccesosSemanal(10); // 10 accesos
servicioRecursos.crearRecurso(recurso5);
// Creamos un recurso con un acceso menos que el mínimo (debería quedar fuera del ranking)
Recurso recurso6 = new Recurso("Manga F", "Descripción F", LocalDate.now(), "Autor 6", new byte[0]);
recurso6.setContadorAccesosSemanal(2); // 2 accesos
servicioRecursos.crearRecurso(recurso6);
// Llamamos al método para obtener el ranking de los 5 más visitados de la última semana
List<Recurso> topRecursos = servicioRecursos.obtenerTopRecursosUltimaSemana();
// Verificamos que se devuelvan solo 5 recursos
assertThat(topRecursos).hasSize(5);
// Verificamos que los recursos estén ordenados correctamente por visitas (de mayor a menor)
assertThat(topRecursos.get(0).getContadorAccesosSemanal()).isGreaterThanOrEqualTo(topRecursos.get(1).getContadorAccesosSemanal());
assertThat(topRecursos.get(1).getContadorAccesosSemanal()).isGreaterThanOrEqualTo(topRecursos.get(2).getContadorAccesosSemanal());
assertThat(topRecursos.get(2).getContadorAccesosSemanal()).isGreaterThanOrEqualTo(topRecursos.get(3).getContadorAccesosSemanal());
assertThat(topRecursos.get(3).getContadorAccesosSemanal()).isGreaterThanOrEqualTo(topRecursos.get(4).getContadorAccesosSemanal());
// Verificamos que el recurso con el menor número de visitas (recurso6) no está incluido
assertThat(topRecursos).doesNotContain(recurso6);
}
}
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