Commit 7d0a7880 by Rubén Ramírez

fix: [TestServicioBibliotecaPersonal]:Mejorados todos los tests para hacer todas las comprobaciones

parent e1465448
...@@ -3,7 +3,10 @@ package com.ujaen.tfg.mangaffinity.servicios; ...@@ -3,7 +3,10 @@ package com.ujaen.tfg.mangaffinity.servicios;
import com.ujaen.tfg.mangaffinity.MangAffinityApplication; import com.ujaen.tfg.mangaffinity.MangAffinityApplication;
import com.ujaen.tfg.mangaffinity.config.JpaTestConfig; import com.ujaen.tfg.mangaffinity.config.JpaTestConfig;
import com.ujaen.tfg.mangaffinity.entidades.*; import com.ujaen.tfg.mangaffinity.entidades.*;
import com.ujaen.tfg.mangaffinity.excepciones.RecursoEnBiblioteca;
import com.ujaen.tfg.mangaffinity.excepciones.RecursoNoExiste; import com.ujaen.tfg.mangaffinity.excepciones.RecursoNoExiste;
import com.ujaen.tfg.mangaffinity.excepciones.RecursoSinCategoria;
import com.ujaen.tfg.mangaffinity.excepciones.UsuarioSinBiblioteca;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
...@@ -14,6 +17,7 @@ import java.time.LocalDate; ...@@ -14,6 +17,7 @@ import java.time.LocalDate;
import java.util.List; import java.util.List;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertThrows;
@SpringBootTest(classes = {MangAffinityApplication.class, JpaTestConfig.class}) @SpringBootTest(classes = {MangAffinityApplication.class, JpaTestConfig.class})
...@@ -36,20 +40,40 @@ public class TestServicioBibliotecaPersonal { ...@@ -36,20 +40,40 @@ public class TestServicioBibliotecaPersonal {
// Creo un usuario // Creo un usuario
Usuario usuario = new Usuario("test@email.com", "usuarioTest", "password123"); Usuario usuario = new Usuario("test@email.com", "usuarioTest", "password123");
servicioUsuarios.crearUsuario(usuario); servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal(); BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal();
// Creo un recurso // Creo un recurso
Recurso recurso = new Recurso("Manga de prueba", "Descripción", LocalDate.now(), "Autor", ""); Recurso recurso = new Recurso("Manga de prueba", "Descripción", LocalDate.now(), "Autor", new byte[0]);
servicioRecursos.crearRecurso(recurso); servicioRecursos.crearRecurso(recurso);
Recurso recursoGuardado = servicioRecursos.buscarRecursoPorTitulo("Manga de prueba").getFirst(); Recurso recursoGuardado = servicioRecursos.buscarRecursoPorTitulo("Manga de prueba").getFirst();
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal, recursoGuardado, Categoria.AL_DIA); // Agrego el recurso a la biblioteca
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal.getId(), recursoGuardado.getId(), Categoria.AL_DIA);
// vERIFICO que se ha agregado // Verifico que el recurso fue agregado
List<BibliotecaPersonalRecurso> recursos = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.AL_DIA); List<BibliotecaPersonalRecurso> recursos = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.AL_DIA);
assertThat(recursos).isNotEmpty(); assertThat(recursos).isNotEmpty();
assertThat(recursos.getFirst().getRecurso().getTitulo()).isEqualTo("Manga de prueba"); assertThat(recursos.getFirst().getRecurso().getTitulo()).isEqualTo("Manga de prueba");
// Intento agregar el mismo recurso nuevamente
assertThatThrownBy(() ->
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal.getId(), recursoGuardado.getId(), Categoria.AL_DIA)
).isInstanceOf(RecursoEnBiblioteca.class);
// Intento agregar un recurso a una biblioteca que no existe
assertThatThrownBy(() ->
servicioBibliotecaPersonal.anadirRecursoBiblioteca(999L, recursoGuardado.getId(), Categoria.AL_DIA)
).isInstanceOf(UsuarioSinBiblioteca.class);
// Intento agregar un recurso inexistente
assertThatThrownBy(() ->
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal.getId(), 999L, Categoria.AL_DIA)
).isInstanceOf(RecursoNoExiste.class);
// Intento agregar un recurso con categoría nula
assertThatThrownBy(() ->
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal.getId(), recursoGuardado.getId(), null)
).isInstanceOf(RecursoSinCategoria.class);
} }
@Test @Test
...@@ -61,14 +85,14 @@ public class TestServicioBibliotecaPersonal { ...@@ -61,14 +85,14 @@ public class TestServicioBibliotecaPersonal {
BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal(); BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal();
// Creo unos cuantos recursos de prueba // Creo unos cuantos recursos de prueba
Recurso recurso1 = new Recurso("Manga Acción", "Sinopsis 1", LocalDate.now(), "Autor A", ""); Recurso recurso1 = new Recurso("Manga Acción", "Sinopsis 1", LocalDate.now(), "Autor A", new byte[0]);
Recurso recurso2 = new Recurso("Manga Romance", "Sinopsis 2", LocalDate.now(), "Autor B", ""); Recurso recurso2 = new Recurso("Manga Romance", "Sinopsis 2", LocalDate.now(), "Autor B", new byte[0]);
servicioRecursos.crearRecurso(recurso1); servicioRecursos.crearRecurso(recurso1);
servicioRecursos.crearRecurso(recurso2); servicioRecursos.crearRecurso(recurso2);
// Los añado recursos en diferentes categorías // Los añado recursos en diferentes categorías
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal, recurso1, Categoria.AL_DIA); servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal.getId(), recurso1.getId(), Categoria.AL_DIA);
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal, recurso2, Categoria.ABANDONADO); servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal.getId(), recurso2.getId(), Categoria.ABANDONADO);
// Pruebo el listar // Pruebo el listar
List<BibliotecaPersonalRecurso> recursosAlDia = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.AL_DIA); List<BibliotecaPersonalRecurso> recursosAlDia = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.AL_DIA);
...@@ -90,21 +114,29 @@ public class TestServicioBibliotecaPersonal { ...@@ -90,21 +114,29 @@ public class TestServicioBibliotecaPersonal {
BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal(); BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal();
// Creo un recurso // Creo un recurso
Recurso recurso = new Recurso("Manga Prueba", "Descripción", LocalDate.now(), "Autor", ""); Recurso recurso = new Recurso("Manga Prueba", "Descripción", LocalDate.now(), "Autor", new byte[0]);
servicioRecursos.crearRecurso(recurso); servicioRecursos.crearRecurso(recurso);
Recurso recursoGuardado = servicioRecursos.buscarRecursoPorTitulo("Manga Prueba").getFirst(); Recurso recursoGuardado = servicioRecursos.buscarRecursoPorTitulo("Manga Prueba").getFirst();
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal, recursoGuardado, Categoria.AL_DIA); // Lo añado a la biblioteca
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal.getId(), recursoGuardado.getId(), Categoria.AL_DIA);
// Verifico que esté añadido
List<BibliotecaPersonalRecurso> recursosAntes = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.AL_DIA); List<BibliotecaPersonalRecurso> recursosAntes = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.AL_DIA);
assertThat(recursosAntes).isNotEmpty(); assertThat(recursosAntes).isNotEmpty();
// Elimino el recurso de la biblioteca // Elimino el recurso de la biblioteca
servicioBibliotecaPersonal.eliminarRecurso(bibliotecaPersonal.getId(), recursoGuardado.getId()); servicioBibliotecaPersonal.eliminarRecursoDeBiblioteca(bibliotecaPersonal.getId(), recursoGuardado.getId());
// Verifico que ya no está
List<BibliotecaPersonalRecurso> recursosDespues = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.AL_DIA); List<BibliotecaPersonalRecurso> recursosDespues = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.AL_DIA);
assertThat(recursosDespues).isEmpty(); assertThat(recursosDespues).isEmpty();
}
// Intento eliminarlo otra vez (debería lanzar excepción)
assertThatThrownBy(() ->
servicioBibliotecaPersonal.eliminarRecursoDeBiblioteca(bibliotecaPersonal.getId(), recursoGuardado.getId())
).isInstanceOf(RecursoNoExiste.class);
}
@Test @Test
@DirtiesContext @DirtiesContext
...@@ -114,26 +146,60 @@ public class TestServicioBibliotecaPersonal { ...@@ -114,26 +146,60 @@ public class TestServicioBibliotecaPersonal {
servicioUsuarios.crearUsuario(usuario); servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal(); BibliotecaPersonal bibliotecaPersonal = usuario.getBibliotecaPersonal();
Recurso recurso = new Recurso("Manga Cambio", "Otra Descripción", LocalDate.now(), "AutorX", ""); Recurso recurso = new Recurso("Manga Cambio", "Otra Descripción", LocalDate.now(), "AutorX", new byte[0]);
servicioRecursos.crearRecurso(recurso); servicioRecursos.crearRecurso(recurso);
Recurso recursoGuardado = servicioRecursos.buscarRecursoPorTitulo("Manga Cambio").getFirst(); Recurso recursoGuardado = servicioRecursos.buscarRecursoPorTitulo("Manga Cambio").getFirst();
servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal, recursoGuardado, Categoria.PENDIENTE); servicioBibliotecaPersonal.anadirRecursoBiblioteca(bibliotecaPersonal.getId(), recursoGuardado.getId(), Categoria.PENDIENTE);
// Verifico que está en la categoría inicial // Verifico que está en la categoría inicial
List<BibliotecaPersonalRecurso> recursosPendientes = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.PENDIENTE); List<BibliotecaPersonalRecurso> recursosPendientes = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.PENDIENTE);
assertThat(recursosPendientes).isNotEmpty(); assertThat(recursosPendientes).isNotEmpty();
assertThat(recursosPendientes.getFirst().getCategoria()).isEqualTo(Categoria.PENDIENTE); assertThat(recursosPendientes.getFirst().getCategoria()).isEqualTo(Categoria.PENDIENTE);
// Modifico la categoría del recurso // Cambio de categoría
servicioBibliotecaPersonal.modificarCategoria(bibliotecaPersonal.getId(), recursoGuardado.getId(), Categoria.COMPLETADO); servicioBibliotecaPersonal.cambiarCategoriaRecurso(bibliotecaPersonal.getId(), recursoGuardado.getId(), Categoria.COMPLETADO);
List<BibliotecaPersonalRecurso> recursosCompletados = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.COMPLETADO);
assertThat(recursosCompletados).hasSize(1);
assertThat(recursosCompletados.getFirst().getCategoria()).isEqualTo(Categoria.COMPLETADO);
List<BibliotecaPersonalRecurso> recursosModificados = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.COMPLETADO);
assertThat(recursosModificados).isNotEmpty();
assertThat(recursosModificados.getFirst().getCategoria()).isEqualTo(Categoria.COMPLETADO);
// Verifico que ya no está en la categoría anterior
List<BibliotecaPersonalRecurso> recursosPendientesDespues = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.PENDIENTE); List<BibliotecaPersonalRecurso> recursosPendientesDespues = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.PENDIENTE);
assertThat(recursosPendientesDespues).isEmpty(); assertThat(recursosPendientesDespues).isEmpty();
// No cambia si es misma categoría
servicioBibliotecaPersonal.cambiarCategoriaRecurso(bibliotecaPersonal.getId(), recursoGuardado.getId(), Categoria.COMPLETADO);
List<BibliotecaPersonalRecurso> recursosIgual = servicioBibliotecaPersonal.listarPorCategoria(bibliotecaPersonal.getId(), Categoria.COMPLETADO);
assertThat(recursosIgual).hasSize(1);
// Recurso no existe en biblioteca
assertThatThrownBy(() ->
servicioBibliotecaPersonal.cambiarCategoriaRecurso(bibliotecaPersonal.getId(), 999L, Categoria.ABANDONADO)
).isInstanceOf(RecursoNoExiste.class);
}
@Test
@DirtiesContext
void testBuscarRecursoEnBiblioteca() {
// Creo un usuario y su biblioteca
Usuario usuario = new Usuario("buscar@email.com", "usuarioBuscar", "clave");
servicioUsuarios.crearUsuario(usuario);
BibliotecaPersonal biblioteca = usuario.getBibliotecaPersonal();
// Creo un recurso
Recurso recurso = new Recurso("Recurso Buscar", "Descripción", LocalDate.now(), "Autor", new byte[0]);
servicioRecursos.crearRecurso(recurso);
Recurso guardado = servicioRecursos.buscarRecursoPorTitulo("Recurso Buscar").getFirst();
// Lo añado a la biblioteca
servicioBibliotecaPersonal.anadirRecursoBiblioteca(biblioteca.getId(), guardado.getId(), Categoria.COMPLETADO);
// Busco recurso existente
var resultado = servicioBibliotecaPersonal.buscarRecursoEnBiblioteca(biblioteca.getId(), guardado.getId());
assertThat(resultado).isPresent();
assertThat(resultado.get().getRecurso().getId()).isEqualTo(guardado.getId());
// Busco recurso inexistente
var resultadoInexistente = servicioBibliotecaPersonal.buscarRecursoEnBiblioteca(biblioteca.getId(), 999L);
assertThat(resultadoInexistente).isEmpty();
} }
} }
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