Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Rubén Ramírez
/
MangAffinity
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
111fdbb8
authored
Feb 24, 2025
by
Rubén Ramírez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
feat: [TestServicioBibliotecaPersonal]: Hechas las funciones y test de los nuevos métodos
parent
f1e05c7f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
149 additions
and
1 deletions
src/main/java/com/ujaen/tfg/mangaffinity/repositorios/RepositorioUsuario.java
src/main/java/com/ujaen/tfg/mangaffinity/servicios/ServicioUsuarios.java
src/test/java/com/ujaen/tfg/mangaffinity/servicios/TestServicioBibliotecaPersonal.java
src/main/java/com/ujaen/tfg/mangaffinity/repositorios/RepositorioUsuario.java
View file @
111fdbb8
...
...
@@ -53,4 +53,9 @@ public class RepositorioUsuario {
.
stream
()
.
findFirst
();
}
public
Usuario
findById
(
Long
usuarioId
)
{
return
em
.
find
(
Usuario
.
class
,
usuarioId
);
}
}
src/main/java/com/ujaen/tfg/mangaffinity/servicios/ServicioUsuarios.java
View file @
111fdbb8
package
com
.
ujaen
.
tfg
.
mangaffinity
.
servicios
;
import
com.ujaen.tfg.mangaffinity.entidades.BibliotecaPersonal
;
import
com.ujaen.tfg.mangaffinity.entidades.Usuario
;
import
com.ujaen.tfg.mangaffinity.excepciones.UsuarioNoExiste
;
import
com.ujaen.tfg.mangaffinity.excepciones.UsuarioYaRegistrado
;
...
...
@@ -61,7 +62,7 @@ public class ServicioUsuarios {
if
(
usuario
.
getEmail
().
equalsIgnoreCase
(
admin
.
getEmail
()))
{
throw
new
UsuarioYaRegistrado
();
// Evita que se cree otro admin accidentalmente
}
usuario
.
setBibliotecaPersonal
(
new
BibliotecaPersonal
(
usuario
));
repositorioUsuario
.
guardar
(
usuario
);
}
...
...
@@ -113,4 +114,8 @@ public class ServicioUsuarios {
throw
new
UsuarioNoExiste
();
}
public
BibliotecaPersonal
obtenerBibliotecaDeUsuario
(
Long
usuarioId
)
{
Usuario
usuario
=
repositorioUsuario
.
findById
(
usuarioId
);
return
usuario
!=
null
?
usuario
.
getBibliotecaPersonal
()
:
null
;
}
}
src/test/java/com/ujaen/tfg/mangaffinity/servicios/TestServicioBibliotecaPersonal.java
0 → 100644
View file @
111fdbb8
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.*
;
import
com.ujaen.tfg.mangaffinity.excepciones.RecursoNoExiste
;
import
org.junit.jupiter.api.Test
;
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
.
junit
.
jupiter
.
api
.
Assertions
.
assertThrows
;
@SpringBootTest
(
classes
=
{
MangAffinityApplication
.
class
,
JpaTestConfig
.
class
})
@ActiveProfiles
(
"test"
)
@DirtiesContext
(
classMode
=
DirtiesContext
.
ClassMode
.
AFTER_EACH_TEST_METHOD
)
public
class
TestServicioBibliotecaPersonal
{
@Autowired
private
ServicioBibliotecaPersonal
servicioBibliotecaPersonal
;
@Autowired
private
ServicioUsuarios
servicioUsuarios
;
@Autowired
private
ServicioRecursos
servicioRecursos
;
@Test
@DirtiesContext
void
testAnadirRecursoBiblioteca
()
{
// Creo un usuario
Usuario
usuario
=
new
Usuario
(
"test@email.com"
,
"usuarioTest"
,
"password123"
);
servicioUsuarios
.
crearUsuario
(
usuario
);
BibliotecaPersonal
bibliotecaPersonal
=
usuario
.
getBibliotecaPersonal
();
// Creo un recurso
Recurso
recurso
=
new
Recurso
(
"Manga de prueba"
,
"Descripción"
,
LocalDate
.
now
(),
"Autor"
);
servicioRecursos
.
crearRecurso
(
recurso
);
Recurso
recursoGuardado
=
servicioRecursos
.
buscarRecursoPorTitulo
(
"Manga de prueba"
).
getFirst
();
servicioBibliotecaPersonal
.
anadirRecursoBiblioteca
(
bibliotecaPersonal
,
recursoGuardado
,
Categoria
.
AL_DIA
);
// vERIFICO que se ha agregado
List
<
BibliotecaPersonalRecurso
>
recursos
=
servicioBibliotecaPersonal
.
listarPorCategoria
(
bibliotecaPersonal
.
getId
(),
Categoria
.
AL_DIA
);
assertThat
(
recursos
).
isNotEmpty
();
assertThat
(
recursos
.
getFirst
().
getRecurso
().
getTitulo
()).
isEqualTo
(
"Manga de prueba"
);
}
@Test
@DirtiesContext
void
testListarRecursosPorCategoria
()
{
// Creo un usuario con su biblioteca personal
Usuario
usuario
=
new
Usuario
(
"otro@email.com"
,
"usuarioOtro"
,
"claveSegura"
);
servicioUsuarios
.
crearUsuario
(
usuario
);
BibliotecaPersonal
bibliotecaPersonal
=
usuario
.
getBibliotecaPersonal
();
// Creo unos cuantos recursos de prueba
Recurso
recurso1
=
new
Recurso
(
"Manga Acción"
,
"Sinopsis 1"
,
LocalDate
.
now
(),
"Autor A"
);
Recurso
recurso2
=
new
Recurso
(
"Manga Romance"
,
"Sinopsis 2"
,
LocalDate
.
now
(),
"Autor B"
);
servicioRecursos
.
crearRecurso
(
recurso1
);
servicioRecursos
.
crearRecurso
(
recurso2
);
// Los añado recursos en diferentes categorías
servicioBibliotecaPersonal
.
anadirRecursoBiblioteca
(
bibliotecaPersonal
,
recurso1
,
Categoria
.
AL_DIA
);
servicioBibliotecaPersonal
.
anadirRecursoBiblioteca
(
bibliotecaPersonal
,
recurso2
,
Categoria
.
ABANDONADO
);
// Pruebo el listar
List
<
BibliotecaPersonalRecurso
>
recursosAlDia
=
servicioBibliotecaPersonal
.
listarPorCategoria
(
bibliotecaPersonal
.
getId
(),
Categoria
.
AL_DIA
);
assertThat
(
recursosAlDia
).
hasSize
(
1
);
assertThat
(
recursosAlDia
.
getFirst
().
getRecurso
().
getTitulo
()).
isEqualTo
(
"Manga Acción"
);
List
<
BibliotecaPersonalRecurso
>
recursosAbandonados
=
servicioBibliotecaPersonal
.
listarPorCategoria
(
bibliotecaPersonal
.
getId
(),
Categoria
.
ABANDONADO
);
assertThat
(
recursosAbandonados
).
hasSize
(
1
);
assertThat
(
recursosAbandonados
.
getFirst
().
getRecurso
().
getTitulo
()).
isEqualTo
(
"Manga Romance"
);
List
<
BibliotecaPersonalRecurso
>
recursosSinLeer
=
servicioBibliotecaPersonal
.
listarPorCategoria
(
bibliotecaPersonal
.
getId
(),
Categoria
.
PENDIENTE
);
assertThat
(
recursosSinLeer
).
isEmpty
();
}
@Test
@DirtiesContext
void
testEliminarRecursoDeBiblioteca
()
{
// Creo un usuario y su biblioteca
Usuario
usuario
=
new
Usuario
(
"usuario@email.com"
,
"usuarioTest"
,
"password123"
);
servicioUsuarios
.
crearUsuario
(
usuario
);
BibliotecaPersonal
bibliotecaPersonal
=
usuario
.
getBibliotecaPersonal
();
// Creo un recurso
Recurso
recurso
=
new
Recurso
(
"Manga Prueba"
,
"Descripción"
,
LocalDate
.
now
(),
"Autor"
);
servicioRecursos
.
crearRecurso
(
recurso
);
Recurso
recursoGuardado
=
servicioRecursos
.
buscarRecursoPorTitulo
(
"Manga Prueba"
).
getFirst
();
servicioBibliotecaPersonal
.
anadirRecursoBiblioteca
(
bibliotecaPersonal
,
recursoGuardado
,
Categoria
.
AL_DIA
);
List
<
BibliotecaPersonalRecurso
>
recursosAntes
=
servicioBibliotecaPersonal
.
listarPorCategoria
(
bibliotecaPersonal
.
getId
(),
Categoria
.
AL_DIA
);
assertThat
(
recursosAntes
).
isNotEmpty
();
// Elimino el recurso de la biblioteca
servicioBibliotecaPersonal
.
eliminarRecurso
(
bibliotecaPersonal
.
getId
(),
recursoGuardado
.
getId
());
List
<
BibliotecaPersonalRecurso
>
recursosDespues
=
servicioBibliotecaPersonal
.
listarPorCategoria
(
bibliotecaPersonal
.
getId
(),
Categoria
.
AL_DIA
);
assertThat
(
recursosDespues
).
isEmpty
();
}
@Test
@DirtiesContext
void
testModificarCategoriaDeRecurso
()
{
// Creo usuario y biblioteca
Usuario
usuario
=
new
Usuario
(
"usuario2@email.com"
,
"usuarioMod"
,
"securepass"
);
servicioUsuarios
.
crearUsuario
(
usuario
);
BibliotecaPersonal
bibliotecaPersonal
=
usuario
.
getBibliotecaPersonal
();
Recurso
recurso
=
new
Recurso
(
"Manga Cambio"
,
"Otra Descripción"
,
LocalDate
.
now
(),
"AutorX"
);
servicioRecursos
.
crearRecurso
(
recurso
);
Recurso
recursoGuardado
=
servicioRecursos
.
buscarRecursoPorTitulo
(
"Manga Cambio"
).
getFirst
();
servicioBibliotecaPersonal
.
anadirRecursoBiblioteca
(
bibliotecaPersonal
,
recursoGuardado
,
Categoria
.
PENDIENTE
);
// Verifico que está en la categoría inicial
List
<
BibliotecaPersonalRecurso
>
recursosPendientes
=
servicioBibliotecaPersonal
.
listarPorCategoria
(
bibliotecaPersonal
.
getId
(),
Categoria
.
PENDIENTE
);
assertThat
(
recursosPendientes
).
isNotEmpty
();
assertThat
(
recursosPendientes
.
getFirst
().
getCategoria
()).
isEqualTo
(
Categoria
.
PENDIENTE
);
// Modifico la categoría del recurso
servicioBibliotecaPersonal
.
modificarCategoria
(
bibliotecaPersonal
.
getId
(),
recursoGuardado
.
getId
(),
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
);
assertThat
(
recursosPendientesDespues
).
isEmpty
();
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment