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
b8141af0
authored
Mar 28, 2025
by
Rubén Ramírez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix: [TestServicioUsuarios]: Mejorados todos los tests para hacer todas las comprobaciones
parent
9aedcac5
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
59 additions
and
10 deletions
src/test/java/com/ujaen/tfg/mangaffinity/servicios/TestServicioUsuarios.java
src/test/java/com/ujaen/tfg/mangaffinity/servicios/TestServicioUsuarios.java
View file @
b8141af0
...
...
@@ -4,6 +4,8 @@ import com.ujaen.tfg.mangaffinity.MangAffinityApplication;
import
com.ujaen.tfg.mangaffinity.config.JpaTestConfig
;
import
com.ujaen.tfg.mangaffinity.entidades.BibliotecaPersonal
;
import
com.ujaen.tfg.mangaffinity.entidades.Usuario
;
import
com.ujaen.tfg.mangaffinity.excepciones.NombreUsuarioYaCogido
;
import
com.ujaen.tfg.mangaffinity.excepciones.UsuarioNoExiste
;
import
com.ujaen.tfg.mangaffinity.excepciones.UsuarioYaRegistrado
;
import
com.ujaen.tfg.mangaffinity.rest.DTO.DTOLoginRespuesta
;
import
com.ujaen.tfg.mangaffinity.seguridad.JwtUtil
;
...
...
@@ -29,40 +31,81 @@ public class TestServicioUsuarios {
@Test
@DirtiesContext
void
testCrearSocio
()
{
//Registrar dos usuarios iguales
var
usuario1
=
new
Usuario
(
"pedro@gmail.com"
,
"Pedro"
,
"pedrito"
);
servicioUsuarios
.
crearUsuario
(
usuario1
);
assertThatThrownBy
(()
->
servicioUsuarios
.
crearUsuario
(
usuario1
)).
isInstanceOf
(
UsuarioYaRegistrado
.
class
);
void
testCrearUsuario
()
{
//Registro un usuario correctamente
var
usuario1
=
new
Usuario
(
"juan@gmail.com"
,
"Juan"
,
"juanelo"
);
DTOLoginRespuesta
respuesta1
=
servicioUsuarios
.
crearUsuario
(
usuario1
);
assertThat
(
respuesta1
).
isNotNull
();
assertThat
(
respuesta1
.
getEmail
()).
isEqualTo
(
"juan@gmail.com"
);
assertThat
(
respuesta1
.
getNombreUsuario
()).
isEqualTo
(
"Juan"
);
// Intento registrar un usuario con un email ya registrado
var
usuario2
=
new
Usuario
(
"juan@gmail.com"
,
"Carlos"
,
"carlitos"
);
assertThatThrownBy
(()
->
servicioUsuarios
.
crearUsuario
(
usuario2
))
.
isInstanceOf
(
UsuarioYaRegistrado
.
class
);
// Intento registrar un usuario con un nombre de usuario ya en uso
var
usuario3
=
new
Usuario
(
"maria@gmail.com"
,
"Juan"
,
"juanelo"
);
assertThatThrownBy
(()
->
servicioUsuarios
.
crearUsuario
(
usuario3
))
.
isInstanceOf
(
NombreUsuarioYaCogido
.
class
);
// Intento registrar un usuario con el email del administrador
var
usuarioAdmin
=
new
Usuario
(
"admin@example.com"
,
"Admin"
,
"adminpassword"
);
assertThatThrownBy
(()
->
servicioUsuarios
.
crearUsuario
(
usuarioAdmin
))
.
isInstanceOf
(
UsuarioYaRegistrado
.
class
);
}
@Test
@DirtiesContext
void
testAutenticarUsuario
()
{
//
Se crea
un usuario en el sistema
//
Creo
un usuario en el sistema
var
usuario1
=
new
Usuario
(
"pedra@gmail.com"
,
"Pedra"
,
"pedrita"
);
servicioUsuarios
.
crearUsuario
(
usuario1
);
Usuario
usuarioGuardado
=
servicioUsuarios
.
buscaUsuario
(
"pedra@gmail.com"
);
assertThat
(
usuarioGuardado
).
isNotNull
();
//
Caso 1:
Usuario con email incorrecto
// Usuario con email incorrecto
String
emailInexistente
=
"mal@gmail.com"
;
String
contraseniaValida
=
"pedrita"
;
assertThat
(
servicioUsuarios
.
autenticarUsuario
(
emailInexistente
,
contraseniaValida
)).
isNull
();
//
Caso 2: C
ontraseña incorrecta
// ontraseña incorrecta
String
emailExistente
=
"pedra@gmail.com"
;
String
contraseniaIncorrecta
=
"mal"
;
assertThat
(
servicioUsuarios
.
autenticarUsuario
(
emailExistente
,
contraseniaIncorrecta
)).
isNull
();
//
Caso 3:
Usuario con email y contraseña correctos
// Usuario con email y contraseña correctos
DTOLoginRespuesta
respuestaValida
=
servicioUsuarios
.
autenticarUsuario
(
"pedra@gmail.com"
,
"pedrita"
);
assertThat
(
respuestaValida
).
isNotNull
();
assertThat
(
respuestaValida
.
getToken
()).
isNotNull
();
// Compr
obamos
que el rol de usuario registrado esté incluido en el token
// Compr
uebo
que el rol de usuario registrado esté incluido en el token
Claims
claims
=
jwtUtil
.
decodeJWT
(
respuestaValida
.
getToken
());
assertThat
(
claims
.
get
(
"rol"
)).
isEqualTo
(
"USUARIO_REGISTRADO"
);
assertThat
(
claims
.
get
(
"email"
)).
isEqualTo
(
"pedra@gmail.com"
);
}
@Test
@DirtiesContext
void
testBuscaUsuario
()
{
// Creo un usuario normal
Usuario
usuario1
=
new
Usuario
(
"usuario@test.com"
,
"Usuario"
,
"password123"
);
servicioUsuarios
.
crearUsuario
(
usuario1
);
// Busco el usuario por email
Usuario
usuarioGuardado
=
servicioUsuarios
.
buscaUsuario
(
"usuario@test.com"
);
assertThat
(
usuarioGuardado
).
isNotNull
();
assertThat
(
usuarioGuardado
.
getEmail
()).
isEqualTo
(
"usuario@test.com"
);
//Busco al usuario administrador
Usuario
usuarioAdmin
=
servicioUsuarios
.
buscaUsuario
(
"admin@example.com"
);
assertThat
(
usuarioAdmin
).
isNotNull
();
assertThat
(
usuarioAdmin
.
getEmail
()).
isEqualTo
(
"admin@example.com"
);
// Busco un usuario que no existe
String
emailInexistente
=
"noexiste@test.com"
;
assertThatThrownBy
(()
->
servicioUsuarios
.
buscaUsuario
(
emailInexistente
))
.
isInstanceOf
(
UsuarioNoExiste
.
class
);
}
@Test
...
...
@@ -83,5 +126,10 @@ public class TestServicioUsuarios {
// Verifico que la biblioteca personal existe y pertenece al usuario
assertThat
(
biblioteca
).
isNotNull
();
assertThat
(
biblioteca
.
getUsuario
().
getId
()).
isEqualTo
(
usuarioGuardado
.
getId
());
// Intento obtener la biblioteca de un usuario no registrado
Long
usuarioNoExistenteId
=
999L
;
assertThatThrownBy
(()
->
servicioUsuarios
.
obtenerBibliotecaDeUsuario
(
usuarioNoExistenteId
))
.
isInstanceOf
(
UsuarioNoExiste
.
class
);
}
}
\ No newline at end of file
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