Commit b8141af0 by Rubén Ramírez

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

parent 9aedcac5
......@@ -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: Contraseñ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();
// Comprobamos que el rol de usuario registrado esté incluido en el token
// Compruebo 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
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