Commit 2f613095 by Rubén Ramírez

feat: [TestUsuariosController]: Testeada una función para buscar por nombre

parent 66ef61fe
......@@ -493,6 +493,50 @@ public class TestUsuariosController {
assertThat(usuario.getEmail()).isNull(); // porque no se devuelve en el DTO
assertThat(usuario.getNombreUsuario()).isEqualTo("VerUsuario");
}
@Test
@DirtiesContext
void testFiltrarUsuariosPorNombre() {
// Registrar usuarios
restTemplateUsuarios.postForEntity("/", new DTOUsuario(null, "ana1@test.com", "Ana", "clave"), Void.class);
restTemplateUsuarios.postForEntity("/", new DTOUsuario(null, "anabel@test.com", "Anabel", "clave"), Void.class);
restTemplateUsuarios.postForEntity("/", new DTOUsuario(null, "otro@test.com", "Pedro", "clave"), Void.class);
// Hacer login con uno de ellos
HttpEntity<Map<String, String>> loginRequest = new HttpEntity<>(Map.of("clave", "clave"));
ResponseEntity<DTOLoginRespuesta> loginResponse = restTemplateUsuarios.postForEntity(
"/{email}", loginRequest, DTOLoginRespuesta.class, "ana1@test.com"
);
assertThat(loginResponse.getStatusCode()).isEqualTo(HttpStatus.OK);
String token = loginResponse.getBody().getToken();
HttpHeaders headers = new HttpHeaders();
headers.setBearerAuth(token);
HttpEntity<Void> request = new HttpEntity<>(headers);
// --- Caso 1: Coincidencias ---
ResponseEntity<DTOUsuario[]> respuesta = restTemplateUsuarios.exchange(
"/?nombre=Ana", HttpMethod.GET, request, DTOUsuario[].class
);
assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.OK);
DTOUsuario[] usuarios = respuesta.getBody();
assertThat(usuarios).isNotNull();
assertThat(usuarios.length).isEqualTo(2);
List<String> nombres = Arrays.stream(usuarios).map(DTOUsuario::getNombreUsuario).toList();
assertThat(nombres).containsExactlyInAnyOrder("Ana", "Anabel");
// --- Caso 2: Sin coincidencias ---
ResponseEntity<Void> sinCoincidencias = restTemplateUsuarios.exchange(
"/?nombre=XYZ", HttpMethod.GET, request, Void.class
);
assertThat(sinCoincidencias.getStatusCode()).isEqualTo(HttpStatus.NO_CONTENT);
// --- Caso 3: Sin parámetro ---
ResponseEntity<Void> sinParametro = restTemplateUsuarios.exchange(
"/", HttpMethod.GET, request, Void.class
);
assertThat(sinParametro.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
}
}
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