Commit 37f0ea99 by Rubén Ramírez

feat: [TestUsuariosController]: Testeada la nueva función para actualizar los datos de la cuenta

parent 3a5d3edc
......@@ -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");
}
}
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