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
37f0ea99
authored
May 02, 2025
by
Rubén Ramírez
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
feat: [TestUsuariosController]: Testeada la nueva función para actualizar los datos de la cuenta
parent
3a5d3edc
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
77 additions
and
0 deletions
src/test/java/com/ujaen/tfg/mangaffinity/rest/TestUsuariosController.java
src/test/java/com/ujaen/tfg/mangaffinity/rest/TestUsuariosController.java
View file @
37f0ea99
...
...
@@ -417,5 +417,82 @@ public class TestUsuariosController {
assertThat
(
contieneSugerido
).
isTrue
();
}
@Test
@DirtiesContext
void
testActualizarPerfilUsuario
()
{
// Registrar usuario
DTOUsuario
nuevo
=
new
DTOUsuario
(
null
,
"perfil@user.com"
,
"PerfilUser"
,
"clave123"
);
ResponseEntity
<
Void
>
registro
=
restTemplateUsuarios
.
postForEntity
(
"/"
,
nuevo
,
Void
.
class
);
assertThat
(
registro
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
CREATED
);
// Login para obtener token
ResponseEntity
<
DTOLoginRespuesta
>
login
=
restTemplateUsuarios
.
postForEntity
(
"/{email}"
,
new
HttpEntity
<>(
Map
.
of
(
"clave"
,
"clave123"
)),
DTOLoginRespuesta
.
class
,
nuevo
.
getEmail
()
);
assertThat
(
login
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
OK
);
String
token
=
login
.
getBody
().
getToken
();
// Obtener ID
Long
usuarioId
=
restTemplate
.
getForObject
(
"/usuarios/email/{email}"
,
Long
.
class
,
nuevo
.
getEmail
());
assertThat
(
usuarioId
).
isNotNull
();
// Preparar datos de actualización
String
descripcionNueva
=
"Perfil actualizado correctamente"
;
String
imagenBase64
=
Base64
.
getEncoder
().
encodeToString
(
"foto simulada"
.
getBytes
());
DTOUsuario
dto
=
new
DTOUsuario
(
usuarioId
,
null
,
null
,
null
);
dto
.
setDescripcion
(
descripcionNueva
);
dto
.
setFotoPerfil
(
imagenBase64
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
headers
.
setBearerAuth
(
token
);
HttpEntity
<
DTOUsuario
>
requestEntity
=
new
HttpEntity
<>(
dto
,
headers
);
// PUT
ResponseEntity
<
Void
>
respuesta
=
restTemplateUsuarios
.
exchange
(
"/{id}/perfil"
,
HttpMethod
.
PUT
,
requestEntity
,
Void
.
class
,
usuarioId
);
assertThat
(
respuesta
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
NO_CONTENT
);
}
@Test
@DirtiesContext
void
testObtenerUsuarioPorId
()
{
// Crear y registrar usuario
DTOUsuario
dto
=
new
DTOUsuario
(
null
,
"ver@user.com"
,
"VerUsuario"
,
"clave123"
);
restTemplateUsuarios
.
postForEntity
(
"/"
,
dto
,
Void
.
class
);
// Login
ResponseEntity
<
DTOLoginRespuesta
>
login
=
restTemplateUsuarios
.
postForEntity
(
"/{email}"
,
new
HttpEntity
<>(
Map
.
of
(
"clave"
,
"clave123"
)),
DTOLoginRespuesta
.
class
,
dto
.
getEmail
()
);
assertThat
(
login
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
OK
);
String
token
=
login
.
getBody
().
getToken
();
// Obtener ID
Long
usuarioId
=
restTemplate
.
getForObject
(
"/usuarios/email/{email}"
,
Long
.
class
,
dto
.
getEmail
());
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setBearerAuth
(
token
);
HttpEntity
<
Void
>
request
=
new
HttpEntity
<>(
headers
);
// GET
ResponseEntity
<
DTOUsuario
>
respuesta
=
restTemplateUsuarios
.
exchange
(
"/{id}"
,
HttpMethod
.
GET
,
request
,
DTOUsuario
.
class
,
usuarioId
);
assertThat
(
respuesta
.
getStatusCode
()).
isEqualTo
(
HttpStatus
.
OK
);
DTOUsuario
usuario
=
respuesta
.
getBody
();
assertThat
(
usuario
).
isNotNull
();
assertThat
(
usuario
.
getEmail
()).
isNull
();
// porque no se devuelve en el DTO
assertThat
(
usuario
.
getNombreUsuario
()).
isEqualTo
(
"VerUsuario"
);
}
}
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