Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
BackEnd-V2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Joel Andres Molina Velez
BackEnd-V2
Commits
27d6769e
Commit
27d6769e
authored
Jul 24, 2023
by
Joel Andres Molina Velez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Se corrige el test de ServiceUzyTUsuarioTests
parent
c56b552e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
306 additions
and
100 deletions
+306
-100
UzyTUsuarioMapper.java
...ovilidadWS/Mapper/Components_Class/UzyTUsuarioMapper.java
+3
-3
ServiceUzyTUsuario.java
...d/MovilidadWS/Service/UzyTUsuario/ServiceUzyTUsuario.java
+78
-28
ServiceUzyTUsuarioTests.java
...ovilidad/MovilidadWS/Service/ServiceUzyTUsuarioTests.java
+225
-69
No files found.
src/main/java/ec/edu/espe/movilidad/MovilidadWS/Mapper/Components_Class/UzyTUsuarioMapper.java
View file @
27d6769e
...
...
@@ -12,16 +12,16 @@ import java.util.stream.Collectors;
@Component
public
class
UzyTUsuarioMapper
{
@Autowired
private
ModelMapper
m
odelM
apper
;
private
ModelMapper
mapper
;
public
DtoUzyTUsuario
entityToDto
(
ModelUzyTUsuario
entity
)
{
return
m
odelM
apper
.
map
(
entity
,
DtoUzyTUsuario
.
class
);
return
mapper
.
map
(
entity
,
DtoUzyTUsuario
.
class
);
}
public
ModelUzyTUsuario
dtoToEntity
(
DtoUzyTUsuario
dto
)
{
return
m
odelM
apper
.
map
(
dto
,
ModelUzyTUsuario
.
class
);
return
mapper
.
map
(
dto
,
ModelUzyTUsuario
.
class
);
}
public
List
<
DtoUzyTUsuario
>
entitiesToDtos
(
List
<
ModelUzyTUsuario
>
entities
)
{
return
entities
.
stream
()
...
...
src/main/java/ec/edu/espe/movilidad/MovilidadWS/Service/UzyTUsuario/ServiceUzyTUsuario.java
View file @
27d6769e
...
...
@@ -118,36 +118,85 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario {
@Override
public
DtoUzyTUsuario
editar
(
Long
id
,
DtoUzyTUsuario
dtoUzyTUsuario
)
{
try
{
if
(
id
==
null
||
id
<=
0
)
{
if
(
id
<=
0
)
{
throw
new
IllegalArgumentException
(
"El ID del usuario debe ser válido y mayor que cero."
);
}
ModelUzyTUsuario
entity
=
daoUzyTUsuario
.
findById
(
id
).
orElseThrow
(()
->
new
ResourceNotFoundException
(
"Usuario no encontrado con ID: "
+
id
));
//Operador ternario -> variable = condicion ? valorSiTrue : valorSiFalse;
entity
.
setUzytusuario_cc
(
dtoUzyTUsuario
.
getUzytusuario_cc
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_cc
()
:
entity
.
getUzytusuario_cc
());
entity
.
setUzytusuario_clave
(
dtoUzyTUsuario
.
getUzytusuario_clave
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_clave
()
:
entity
.
getUzytusuario_clave
());
entity
.
setUzytusuario_nombres
(
dtoUzyTUsuario
.
getUzytusuario_nombres
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_nombres
()
:
entity
.
getUzytusuario_nombres
());
entity
.
setUzytusuario_apellidos
(
dtoUzyTUsuario
.
getUzytusuario_apellidos
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_apellidos
()
:
entity
.
getUzytusuario_apellidos
());
entity
.
setUzytusuario_email
(
dtoUzyTUsuario
.
getUzytusuario_email
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_email
()
:
entity
.
getUzytusuario_email
());
entity
.
setFechaRegistro
(
dtoUzyTUsuario
.
getUzytusuario_fecharegistro
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_fecharegistro
()
:
entity
.
getFechaRegistro
());
entity
.
setUzytusuario_estado
(
dtoUzyTUsuario
.
getUzytusuario_estado
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_estado
()
:
entity
.
getUzytusuario_estado
());
entity
.
setUzytusuario_mail_incompletos
(
dtoUzyTUsuario
.
getUzytusuario_mail_incompletos
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_mail_incompletos
()
:
entity
.
getUzytusuario_mail_incompletos
());
entity
.
setUzytusuario_tipo_doc
(
dtoUzyTUsuario
.
getUzytusuario_tipo_doc
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_tipo_doc
()
:
entity
.
getUzytusuario_tipo_doc
());
entity
.
setUzytusuario_cod_senescyt
(
dtoUzyTUsuario
.
getUzytusuario_cod_senescyt
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_cod_senescyt
()
:
entity
.
getUzytusuario_cod_senescyt
());
entity
.
setUzytusuario_fecha_act_micuenta
(
dtoUzyTUsuario
.
getUzytusuario_fecha_act_micuenta
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_fecha_act_micuenta
()
:
entity
.
getUzytusuario_fecha_act_micuenta
());
entity
.
setUzytusuario_hexadecimalid
(
dtoUzyTUsuario
.
getUzytusuario_hexadecimalid
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_hexadecimalid
()
:
entity
.
getUzytusuario_hexadecimalid
());
entity
.
setUzytusuario_tratamiento
(
dtoUzyTUsuario
.
getUzytusuario_tratamiento
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_tratamiento
()
:
entity
.
getUzytusuario_tratamiento
());
entity
.
setUzytusuario_modificacion
(
dtoUzyTUsuario
.
getUzytusuario_modificacion
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_modificacion
()
:
entity
.
getUzytusuario_modificacion
());
entity
.
setUzytusuario_tipo_user
(
dtoUzyTUsuario
.
getUzytusuario_tipo_user
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_tipo_user
()
:
entity
.
getUzytusuario_tipo_user
());
entity
.
setUzytusuario_email_institucional
(
dtoUzyTUsuario
.
getUzytusuario_email_institucional
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_email_institucional
()
:
entity
.
getUzytusuario_email_institucional
());
entity
.
setUzytusuario_telefono_fijo
(
dtoUzyTUsuario
.
getUzytusuario_telefono_fijo
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_telefono_fijo
()
:
entity
.
getUzytusuario_telefono_fijo
());
entity
.
setUzytusuario_telefono_celular
(
dtoUzyTUsuario
.
getUzytusuario_telefono_celular
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_telefono_celular
()
:
entity
.
getUzytusuario_telefono_celular
());
entity
.
setSpriden_id
(
dtoUzyTUsuario
.
getSpriden_id
()
!=
null
?
dtoUzyTUsuario
.
getSpriden_id
()
:
entity
.
getSpriden_id
());
entity
.
setSpriden_pidm
(
dtoUzyTUsuario
.
getSpriden_pidm
()
!=
null
?
dtoUzyTUsuario
.
getSpriden_pidm
()
:
entity
.
getSpriden_pidm
());
entity
.
setUzytusuario_clave_tmp
(
dtoUzyTUsuario
.
getUzytusuario_clave_tmp
()
!=
null
?
dtoUzyTUsuario
.
getUzytusuario_clave_tmp
()
:
entity
.
getUzytusuario_clave_tmp
());
entity
.
setSpbpers_name_prefix
(
dtoUzyTUsuario
.
getSpbpers_name_prefix
()
!=
null
?
dtoUzyTUsuario
.
getSpbpers_name_prefix
()
:
entity
.
getSpbpers_name_prefix
());
entity
.
setSpbpers_sex
(
dtoUzyTUsuario
.
getSpbpers_sex
()
!=
null
?
dtoUzyTUsuario
.
getSpbpers_sex
()
:
entity
.
getSpbpers_sex
());
ModelUzyTUsuario
updatedEntity
=
daoUzyTUsuario
.
save
(
entity
);
return
mapper
.
entityToDto
(
updatedEntity
);
if
(!
daoUzyTUsuario
.
existsById
(
id
))
{
throw
new
ResourceNotFoundException
(
"El usuario con ID "
+
id
+
" no fue encontrado."
);
}
ModelUzyTUsuario
entity
=
daoUzyTUsuario
.
findById
(
id
)
.
orElseThrow
(()
->
new
ResourceNotFoundException
(
"Usuario no encontrado con ID: "
+
id
));
if
(
dtoUzyTUsuario
.
getUzytusuario_nombres
()
!=
null
)
{
entity
.
setUzytusuario_nombres
(
dtoUzyTUsuario
.
getUzytusuario_nombres
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_apellidos
()
!=
null
)
{
entity
.
setUzytusuario_apellidos
(
dtoUzyTUsuario
.
getUzytusuario_apellidos
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_email
()
!=
null
)
{
entity
.
setUzytusuario_email
(
dtoUzyTUsuario
.
getUzytusuario_email
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_fecharegistro
()
!=
null
)
{
entity
.
setFechaRegistro
(
dtoUzyTUsuario
.
getUzytusuario_fecharegistro
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_estado
()
!=
null
)
{
entity
.
setUzytusuario_estado
(
dtoUzyTUsuario
.
getUzytusuario_estado
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_mail_incompletos
()
!=
null
)
{
entity
.
setUzytusuario_mail_incompletos
(
dtoUzyTUsuario
.
getUzytusuario_mail_incompletos
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_tipo_doc
()
!=
null
)
{
entity
.
setUzytusuario_tipo_doc
(
dtoUzyTUsuario
.
getUzytusuario_tipo_doc
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_cod_senescyt
()
!=
null
)
{
entity
.
setUzytusuario_cod_senescyt
(
dtoUzyTUsuario
.
getUzytusuario_cod_senescyt
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_fecha_act_micuenta
()
!=
null
)
{
entity
.
setUzytusuario_fecha_act_micuenta
(
dtoUzyTUsuario
.
getUzytusuario_fecha_act_micuenta
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_hexadecimalid
()
!=
null
)
{
entity
.
setUzytusuario_hexadecimalid
(
dtoUzyTUsuario
.
getUzytusuario_hexadecimalid
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_tratamiento
()
!=
null
)
{
entity
.
setUzytusuario_tratamiento
(
dtoUzyTUsuario
.
getUzytusuario_tratamiento
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_modificacion
()
!=
null
)
{
entity
.
setUzytusuario_modificacion
(
dtoUzyTUsuario
.
getUzytusuario_modificacion
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_tipo_user
()
!=
null
)
{
entity
.
setUzytusuario_tipo_user
(
dtoUzyTUsuario
.
getUzytusuario_tipo_user
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_email_institucional
()
!=
null
)
{
entity
.
setUzytusuario_email_institucional
(
dtoUzyTUsuario
.
getUzytusuario_email_institucional
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_telefono_fijo
()
!=
null
)
{
entity
.
setUzytusuario_telefono_fijo
(
dtoUzyTUsuario
.
getUzytusuario_telefono_fijo
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_telefono_celular
()
!=
null
)
{
entity
.
setUzytusuario_telefono_celular
(
dtoUzyTUsuario
.
getUzytusuario_telefono_celular
());
}
if
(
dtoUzyTUsuario
.
getSpriden_id
()
!=
null
)
{
entity
.
setSpriden_id
(
dtoUzyTUsuario
.
getSpriden_id
());
}
if
(
dtoUzyTUsuario
.
getSpriden_pidm
()
!=
null
)
{
entity
.
setSpriden_pidm
(
dtoUzyTUsuario
.
getSpriden_pidm
());
}
if
(
dtoUzyTUsuario
.
getUzytusuario_clave_tmp
()
!=
null
)
{
entity
.
setUzytusuario_clave_tmp
(
dtoUzyTUsuario
.
getUzytusuario_clave_tmp
());
}
if
(
dtoUzyTUsuario
.
getSpbpers_name_prefix
()
!=
null
)
{
entity
.
setSpbpers_name_prefix
(
dtoUzyTUsuario
.
getSpbpers_name_prefix
());
}
if
(
dtoUzyTUsuario
.
getSpbpers_sex
()
!=
null
)
{
entity
.
setSpbpers_sex
(
dtoUzyTUsuario
.
getSpbpers_sex
());
}
// Guardar los cambios y obtener el usuario actualizado
ModelUzyTUsuario
usuarioActualizado
=
daoUzyTUsuario
.
save
(
entity
);
// Convertir el usuario actualizado a DtoUzyTUsuario y devolverlo
return
mapper
.
entityToDto
(
usuarioActualizado
);
}
catch
(
ResourceNotFoundException
|
IllegalArgumentException
ex
)
{
throw
ex
;
}
catch
(
Exception
ex
)
{
...
...
@@ -199,4 +248,5 @@ public class ServiceUzyTUsuario implements IServiceUzyTUsuario {
throw
new
RuntimeException
(
"Error al asignar perfil al usuario: "
+
ex
.
getMessage
());
}
}
}
src/test/java/ec/edu/espe/movilidad/MovilidadWS/Service/ServiceUzyTUsuarioTests.java
View file @
27d6769e
package
ec
.
edu
.
espe
.
movilidad
.
MovilidadWS
.
Service
;
import
ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTPerfil
;
import
ec.edu.espe.movilidad.MovilidadWS.Dao.DaoUzyTUsuario
;
import
ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTPerfil
;
import
ec.edu.espe.movilidad.MovilidadWS.Dto.DtoUzyTUsuario
;
import
ec.edu.espe.movilidad.MovilidadWS.Exceptions.ResourceNotFoundException
;
import
ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTPerfilMapper
;
import
ec.edu.espe.movilidad.MovilidadWS.Mapper.Components_Class.UzyTUsuarioMapper
;
import
ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTPerfil
;
import
ec.edu.espe.movilidad.MovilidadWS.Model.ModelUzyTUsuario
;
import
ec.edu.espe.movilidad.MovilidadWS.Service.UzyTUsuario.ServiceUzyTUsuario
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.DisplayName
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.extension.ExtendWith
;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.junit.jupiter.MockitoExtension
;
import
java.util.*
;
import
static
org
.
hibernate
.
validator
.
internal
.
util
.
Contracts
.
assertNotNull
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
import
static
org
.
mockito
.
Mockito
.*;
@ExtendWith
(
MockitoExtension
.
class
)
class
ServiceUzyTUsuarioTests
{
@Mock
private
DaoUzyTUsuario
daoUzyTUsuario
;
...
...
@@ -37,9 +37,13 @@ class ServiceUzyTUsuarioTests {
@Mock
private
UzyTPerfilMapper
mapperPerfil
;
@InjectMocks
private
ServiceUzyTUsuario
serviceUzyTUsuario
;
@BeforeEach
void
setUp
()
{
serviceUzyTUsuario
=
new
ServiceUzyTUsuario
(
daoUzyTUsuario
,
daoUzyTPerfil
,
mapper
,
mapperPerfil
);
}
@DisplayName
(
"Test para listar a los usuarios por el ID"
)
@Test
void
testListarPorID
()
{
...
...
@@ -52,26 +56,65 @@ class ServiceUzyTUsuarioTests {
when
(
mapper
.
entityToDto
(
usuario
)).
thenReturn
(
dtoUsuario
);
DtoUzyTUsuario
result
=
serviceUzyTUsuario
.
ListarPorID
(
id
);
assertEquals
(
id
,
result
.
getUzytusuario_id
());
}
@DisplayName
(
"Test para listar a los registros del usuario"
)
@DisplayName
(
"Test para listar a los usuarios por el ID (Caso de error: ID negativo o nulo)"
)
@Test
void
testListarPorID_CasoError_IDNegativoONulo
()
{
assertThrows
(
IllegalArgumentException
.
class
,
()
->
serviceUzyTUsuario
.
ListarPorID
(
0L
));
assertThrows
(
IllegalArgumentException
.
class
,
()
->
serviceUzyTUsuario
.
ListarPorID
(-
1L
));
}
@DisplayName
(
"Test para listar a los usuarios por el ID (Caso de error: usuario no encontrado)"
)
@Test
void
testListarPorID_CasoError_UsuarioNoEncontrado
()
{
Long
id
=
1L
;
when
(
daoUzyTUsuario
.
findById
(
id
)).
thenReturn
(
Optional
.
empty
());
assertThrows
(
ResourceNotFoundException
.
class
,
()
->
serviceUzyTUsuario
.
ListarPorID
(
id
));
}
@DisplayName
(
"Test para listar todos los usuarios existentes (Caso exitoso)"
)
@Test
void
testListarRegistros
()
{
List
<
ModelUzyTUsuario
>
usuarios
=
Collections
.
singletonList
(
new
ModelUzyTUsuario
());
void
testListarRegistros
_CasoExitoso
()
{
List
<
ModelUzyTUsuario
>
usuarios
=
Arrays
.
asList
(
new
ModelUzyTUsuario
(),
new
ModelUzyTUsuario
());
DtoUzyTUsuario
dtoUsuario
=
new
DtoUzyTUsuario
();
when
(
daoUzyTUsuario
.
findAll
()).
thenReturn
(
usuarios
);
when
(
mapper
.
entitiesToDtos
(
usuarios
)).
thenReturn
(
Collections
.
singletonList
(
dtoUsuario
));
when
(
mapper
.
entitiesToDtos
(
usuarios
)).
thenReturn
(
Arrays
.
asList
(
dtoUsuario
,
dtoUsuario
));
List
<
DtoUzyTUsuario
>
result
=
serviceUzyTUsuario
.
ListarRegistros
();
assertEquals
(
1
,
result
.
size
());
assertEquals
(
2
,
result
.
size
());
assertEquals
(
dtoUsuario
,
result
.
get
(
0
));
assertEquals
(
dtoUsuario
,
result
.
get
(
1
));
}
@DisplayName
(
"Test para listar usuarios registrados - Sin resultados"
)
@Test
void
testListarRegistros_SinResultados
()
{
List
<
ModelUzyTUsuario
>
usuarios
=
Collections
.
emptyList
();
when
(
daoUzyTUsuario
.
findAll
()).
thenReturn
(
usuarios
);
List
<
DtoUzyTUsuario
>
result
=
serviceUzyTUsuario
.
ListarRegistros
();
assertTrue
(
result
.
isEmpty
());
}
@DisplayName
(
"Test para listar usuarios registrados - Excepción en el servicio"
)
@Test
void
testListarRegistros_ExcepcionEnServicio
()
{
when
(
daoUzyTUsuario
.
findAll
()).
thenThrow
(
new
RuntimeException
(
"Error en el servicio"
));
assertThrows
(
RuntimeException
.
class
,
()
->
serviceUzyTUsuario
.
ListarRegistros
());
}
@DisplayName
(
"Test para buscar un usuario"
)
@DisplayName
(
"Test para buscar usuarios por nombre (Caso exitoso)"
)
@Test
void
testFindByUsuario
()
{
void
testFindByUsuario
_CasoExitoso
()
{
String
usuario
=
"example"
;
ModelUzyTUsuario
modelUzyTUsuario
=
new
ModelUzyTUsuario
();
DtoUzyTUsuario
dtoUzyTUsuario
=
new
DtoUzyTUsuario
();
...
...
@@ -84,22 +127,27 @@ class ServiceUzyTUsuarioTests {
assertEquals
(
1
,
result
.
size
());
assertEquals
(
dtoUzyTUsuario
,
result
.
get
(
0
));
}
@DisplayName
(
"Test para buscar cuando son parametos incorrectos"
)
@DisplayName
(
"Test para buscar usuarios por nombre (Caso de error: nombre de usuario nulo o vacío)"
)
@Test
void
testFindByUsuario_ResultadosVacios
()
{
String
usuario
=
null
;
// Simular que no se proporcionaron parámetros válidos
void
testFindByUsuario_CasoError_NombreNuloOVacio
()
{
assertThrows
(
IllegalArgumentException
.
class
,
()
->
serviceUzyTUsuario
.
findByUsuario
(
null
));
assertThrows
(
IllegalArgumentException
.
class
,
()
->
serviceUzyTUsuario
.
findByUsuario
(
""
));
}
// Ejecutar el método a probar
List
<
DtoUzyTUsuario
>
result
=
serviceUzyTUsuario
.
findByUsuario
(
usuario
);
@DisplayName
(
"Test para buscar usuarios por nombre (Caso de error: usuarios no encontrados)"
)
@Test
void
testFindByUsuario_CasoError_UsuariosNoEncontrados
()
{
String
usuario
=
"example"
;
// Verificar que el resultado es una lista vacía
assertNotNull
(
result
);
assertT
rue
(
result
.
isEmpty
(
));
when
(
daoUzyTUsuario
.
findByUsuario
(
usuario
)).
thenReturn
(
Collections
.
emptyList
());
assertT
hrows
(
ResourceNotFoundException
.
class
,
()
->
serviceUzyTUsuario
.
findByUsuario
(
usuario
));
}
@DisplayName
(
"Test para
buscar guardar un usuario
"
)
@DisplayName
(
"Test para
guardar un nuevo usuario correctamente (Caso exitoso)
"
)
@Test
void
testGuardar
()
throws
Exception
{
void
testGuardar
_CasoExitoso
()
throws
Exception
{
// Datos del usuario a simular
DtoUzyTUsuario
dtoUzyTUsuario
=
new
DtoUzyTUsuario
();
dtoUzyTUsuario
.
setUzytusuario_nombres
(
"NombreUsuario"
);
...
...
@@ -125,78 +173,185 @@ class ServiceUzyTUsuarioTests {
assertEquals
(
dtoUzyTUsuario
,
result
);
}
@DisplayName
(
"Test para guardar un nuevo usuario - Apellido nulo (Caso de error)"
)
@Test
void
testGuardar_ApellidoNulo
()
{
// Datos del usuario a simular con apellido nulo
DtoUzyTUsuario
dtoUzyTUsuario
=
new
DtoUzyTUsuario
();
dtoUzyTUsuario
.
setUzytusuario_nombres
(
"NombreUsuario"
);
dtoUzyTUsuario
.
setUzytusuario_apellidos
(
null
);
dtoUzyTUsuario
.
setUzytusuario_email
(
"usuario@example.com"
);
// Ejecutar el método a probar y verificar que se lance la excepción
assertThrows
(
IllegalArgumentException
.
class
,
()
->
serviceUzyTUsuario
.
guardar
(
dtoUzyTUsuario
));
}
@DisplayName
(
"Test para
editar un usuario inexistente
"
)
@DisplayName
(
"Test para
guardar un nuevo usuario - Excepción en el servicio (Caso de error)
"
)
@Test
void
testEditar_IdNoExistente
()
{
// Configuración de prueba
Long
id
=
1L
;
void
testGuardar_ExcepcionEnServicio
()
{
// Datos del usuario a simular
DtoUzyTUsuario
dtoUzyTUsuario
=
new
DtoUzyTUsuario
();
dtoUzyTUsuario
.
setUzytusuario_nombres
(
"NuevoNombre"
);
dtoUzyTUsuario
.
setUzytusuario_nombres
(
"NombreUsuario"
);
dtoUzyTUsuario
.
setUzytusuario_apellidos
(
"ApellidosUsuario"
);
dtoUzyTUsuario
.
setUzytusuario_email
(
"usuario@example.com"
);
// Simular el comportamiento del método findById con un Optional vacío
when
(
daoUzyTUsuario
.
findById
(
id
)).
thenReturn
(
Optional
.
empty
());
// Convertir el objeto DtoUzyTUsuario a ModelUzyTUsuario
ModelUzyTUsuario
modelUzyTUsuario
=
new
ModelUzyTUsuario
();
modelUzyTUsuario
.
setUzytusuario_nombres
(
dtoUzyTUsuario
.
getUzytusuario_nombres
());
modelUzyTUsuario
.
setUzytusuario_apellidos
(
dtoUzyTUsuario
.
getUzytusuario_apellidos
());
modelUzyTUsuario
.
setUzytusuario_email
(
dtoUzyTUsuario
.
getUzytusuario_email
());
// Configurar el comportamiento esperado del mapper y el daoUzyTUsuario
when
(
mapper
.
dtoToEntity
(
dtoUzyTUsuario
)).
thenReturn
(
modelUzyTUsuario
);
when
(
daoUzyTUsuario
.
save
(
modelUzyTUsuario
)).
thenThrow
(
new
RuntimeException
(
"Error en el servicio"
));
// Ejecutar el método a probar y verificar que se lance la excepción
assertThrows
(
ResourceNotFoundException
.
class
,
()
->
serviceUzyTUsuario
.
editar
(
id
,
dtoUzyTUsuario
));
assertThrows
(
Exception
.
class
,
()
->
serviceUzyTUsuario
.
guardar
(
dtoUzyTUsuario
));
}
@DisplayName
(
"Test para
asignar un perfil a un usuario
"
)
@DisplayName
(
"Test para
editar un usuario inexistente (Caso de error)
"
)
@Test
void
testAsignarPerfilAUsuario
()
{
Long
usuarioId
=
1L
;
Long
perfilId
=
1L
;
ModelUzyTUsuario
usuario
=
new
ModelUzyTUsuario
();
ModelUzyTPerfil
perfil
=
new
ModelUzyTPerfil
();
when
(
daoUzyTUsuario
.
findById
(
usuarioId
)).
thenReturn
(
Optional
.
of
(
usuario
));
when
(
daoUzyTPerfil
.
findById
(
perfilId
)).
thenReturn
(
Optional
.
of
(
perfil
));
when
(
daoUzyTUsuario
.
save
(
usuario
)).
thenReturn
(
usuario
);
void
testEditar_UsuarioNoExiste
()
{
// Datos del usuario a simular
Long
id
=
1L
;
DtoUzyTUsuario
dtoUzyTUsuario
=
new
DtoUzyTUsuario
();
dtoUzyTUsuario
.
setUzytusuario_nombres
(
"NuevoNombre"
);
serviceUzyTUsuario
.
asignarPerfilAUsuario
(
usuarioId
,
perfilId
);
// Ejecutar el método a probar y verificar que se lance la excepción
assertThrows
(
ResourceNotFoundException
.
class
,
()
->
serviceUzyTUsuario
.
editar
(
id
,
dtoUzyTUsuario
));
}
assertTrue
(
usuario
.
getUzytperfils
().
contains
(
perfil
));
// Prueba de error cuando no se encuentra el usuario por su ID
when
(
daoUzyTUsuario
.
findById
(
usuarioId
)).
thenReturn
(
Optional
.
empty
());
@DisplayName
(
"Test para editar un usuario - ID negativo (Caso de error)"
)
@Test
void
testEditar_IdNegativo
()
{
// Datos del usuario a simular con ID negativo
Long
id
=
-
1L
;
DtoUzyTUsuario
dtoUzyTUsuario
=
new
DtoUzyTUsuario
();
dtoUzyTUsuario
.
setUzytusuario_nombres
(
"NuevoNombre"
);
try
{
serviceUzyTUsuario
.
asignarPerfilAUsuario
(
usuarioId
,
perfilId
);
fail
(
"Debería haber lanzado una ResourceNotFoundException"
);
}
catch
(
ResourceNotFoundException
ex
)
{
assertEquals
(
"No se encontró el usuario con ID: "
+
usuarioId
,
ex
.
getMessage
());
}
// Ejecutar el método a probar y verificar que se lance la excepción
assertThrows
(
IllegalArgumentException
.
class
,
()
->
serviceUzyTUsuario
.
editar
(
id
,
dtoUzyTUsuario
));
}
@DisplayName
(
"Test buscar los perfiles de un usuario"
)
@DisplayName
(
"Test para actualizar un empleado"
)
@Test
void
test
FindPerfilesByUsuarioId
()
{
//
Prueba exitosa de encontrar perfiles por ID de usuario
Long
usuarioI
d
=
1L
;
ModelUzyTPerfil
modelUzyTPerfil
=
new
ModelUzyTPerfil
();
modelUzyTPerfil
.
setUzytperfil_id
(
1L
);
Set
<
ModelUzyTPerfil
>
perfiles
=
new
HashSet
<>(
);
perfiles
.
add
(
modelUzyTPerfil
);
void
test
ActualizarEmpleado
()
{
//
Datos del usuario a simular
Long
i
d
=
1L
;
DtoUzyTUsuario
dtoUzyTUsuario
=
new
DtoUzyTUsuario
();
dtoUzyTUsuario
.
setUzytusuario_id
(
id
);
dtoUzyTUsuario
.
setUzytusuario_nombres
(
"NuevoNombre"
);
dtoUzyTUsuario
.
setUzytusuario_apellidos
(
"ape"
);
when
(
daoUzyTUsuario
.
findPerfilesByUsuarioId
(
usuarioId
)).
thenReturn
(
perfiles
);
when
(
mapperPerfil
.
entitiesToDtosSet
(
perfiles
)).
thenReturn
(
Collections
.
singleton
(
new
DtoUzyTPerfil
()));
// Obtener el usuario existente a través del ID
ModelUzyTUsuario
usuarioExistente
=
new
ModelUzyTUsuario
();
usuarioExistente
.
setUzytusuario_id
(
id
);
usuarioExistente
.
setUzytusuario_nombres
(
"f"
);
usuarioExistente
.
setUzytusuario_apellidos
(
"s"
);
Set
<
DtoUzyTPerfil
>
result
=
serviceUzyTUsuario
.
findPerfilesByUsuarioId
(
usuarioId
);
// Configurar el comportamiento esperado del método findById del daoUzyTUsuario
when
(
daoUzyTUsuario
.
findById
(
id
)).
thenReturn
(
Optional
.
of
(
usuarioExistente
));
// Configurar el comportamiento esperado del método existsById del daoUzyTUsuario
when
(
daoUzyTUsuario
.
existsById
(
id
)).
thenReturn
(
true
);
// Configurar el comportamiento esperado del método save del daoUzyTUsuario
when
(
daoUzyTUsuario
.
save
(
any
())).
thenReturn
(
usuarioExistente
);
// Configurar el comportamiento esperado del método entityToDto del mapper
when
(
mapper
.
entityToDto
(
any
())).
thenReturn
(
dtoUzyTUsuario
);
// Ejecutar el método a probar
DtoUzyTUsuario
result
=
serviceUzyTUsuario
.
editar
(
id
,
dtoUzyTUsuario
);
// Verificar el resultado
assertNotNull
(
result
);
assertEquals
(
1
,
result
.
size
());
assertEquals
(
dtoUzyTUsuario
.
getUzytusuario_id
(),
result
.
getUzytusuario_id
());
assertEquals
(
dtoUzyTUsuario
.
getUzytusuario_nombres
(),
result
.
getUzytusuario_nombres
());
assertEquals
(
dtoUzyTUsuario
.
getUzytusuario_apellidos
(),
result
.
getUzytusuario_apellidos
());
// Verificar que el método findById del daoUzyTUsuario fue llamado con el ID correcto
verify
(
daoUzyTUsuario
).
findById
(
id
);
// Verificar que el método existsById del daoUzyTUsuario fue llamado con el ID correcto
verify
(
daoUzyTUsuario
).
existsById
(
id
);
// Verificar que el método save del daoUzyTUsuario fue llamado con el usuario actualizado
verify
(
daoUzyTUsuario
).
save
(
any
());
// Verificar que el método entityToDto del mapper fue llamado con el usuario actualizado
verify
(
mapper
).
entityToDto
(
usuarioExistente
);
}
@DisplayName
(
"Test buscar eliminar un usuario"
)
@Test
void
testEliminar
()
{
//
Prueba exitosa de eliminar un usuario
void
testEliminar
_CasoExitoso
()
{
//
Datos del usuario a simular
Long
id
=
1L
;
ModelUzyTUsuario
modelUzyTUsuario
=
new
ModelUzyTUsuario
();
ModelUzyTUsuario
usuarioExistente
=
new
ModelUzyTUsuario
();
usuarioExistente
.
setUzytusuario_id
(
id
);
when
(
daoUzyTUsuario
.
findById
(
id
)).
thenReturn
(
Optional
.
of
(
modelUzyTUsuario
));
// Configurar el comportamiento del daoUzyTUsuario para findById y delete
when
(
daoUzyTUsuario
.
findById
(
id
)).
thenReturn
(
Optional
.
of
(
usuarioExistente
));
doNothing
().
when
(
daoUzyTUsuario
).
delete
(
usuarioExistente
);
// Ejecutar el método a probar
boolean
result
=
serviceUzyTUsuario
.
eliminar
(
id
);
// Verificar que el usuario fue eliminado
assertTrue
(
result
);
// Verificar que el método findById fue llamado
verify
(
daoUzyTUsuario
,
times
(
1
)).
findById
(
id
);
// Verificar que el método delete fue llamado
verify
(
daoUzyTUsuario
,
times
(
1
)).
delete
(
usuarioExistente
);
}
@Test
void
testEliminar_IDNuloOMenorOIgualACero
()
{
// Datos del usuario a simular
Long
id
=
null
;
// Ejecutar el método a probar y verificar que se lance la excepción
assertThrows
(
IllegalArgumentException
.
class
,
()
->
serviceUzyTUsuario
.
eliminar
(
id
));
}
@Test
void
testEliminar_UsuarioNoExiste
()
{
// Datos del usuario a simular
Long
id
=
1L
;
// Configurar el comportamiento del daoUzyTUsuario para findById
when
(
daoUzyTUsuario
.
findById
(
id
)).
thenReturn
(
Optional
.
empty
());
// Ejecutar el método a probar y verificar que se lanza una ResourceNotFoundException
assertThrows
(
ResourceNotFoundException
.
class
,
()
->
serviceUzyTUsuario
.
eliminar
(
id
));
// Verificar que el método findById fue llamado
verify
(
daoUzyTUsuario
,
times
(
1
)).
findById
(
id
);
}
@DisplayName
(
"Test para asignar un perfil a un usuario - Usuario o Perfil no existen (Caso de error)"
)
@Test
void
testAsignarPerfilAUsuario_UsuarioOPerfilNoExiste
()
{
// Datos de usuario y perfil a simular (IDs inválidos)
Long
usuarioId
=
1L
;
Long
perfilId
=
1L
;
// Configurar el comportamiento del daoUzyTUsuario y daoUzyTPerfil para findById (usar lenient)
lenient
().
when
(
daoUzyTUsuario
.
findById
(
usuarioId
)).
thenReturn
(
Optional
.
empty
());
lenient
().
when
(
daoUzyTPerfil
.
findById
(
perfilId
)).
thenReturn
(
Optional
.
empty
());
// Ejecutar el método a probar y verificar que se lance la excepción
assertThrows
(
ResourceNotFoundException
.
class
,
()
->
serviceUzyTUsuario
.
asignarPerfilAUsuario
(
usuarioId
,
perfilId
));
}
@DisplayName
(
"Test para asignar un perfil a un usuario - ID negativo (Caso de error)"
)
@Test
void
testAsignarPerfilAUsuario_IdNegativo
()
{
// Datos de usuario y perfil a simular (IDs negativos)
Long
usuarioId
=
-
1L
;
Long
perfilId
=
-
1L
;
// Ejecutar el método a probar y verificar que se lance la excepción
assertThrows
(
IllegalArgumentException
.
class
,
()
->
serviceUzyTUsuario
.
asignarPerfilAUsuario
(
usuarioId
,
perfilId
));
}
}
}
\ 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