nuevos test implementados, fallo en crearSolicitud

parent 818150be
......@@ -204,29 +204,9 @@ public class ControladorREST {
}
}
@PostMapping("/solicitudes")
public ResponseEntity<Solicitud> crearSolicitud(@RequestBody Map<String, Object> datosSolicitud) throws ParseException {
String nombre = (String) datosSolicitud.get("nombre");
String apellidos = (String) datosSolicitud.get("apellidos");
String fechaString = (String) datosSolicitud.get("fecha");
SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date fecha = formato.parse(fechaString);
String fechaString2 = (String) datosSolicitud.get("fecha2");
Date fecha2 = formato.parse(fechaString2);
String dni = (String) datosSolicitud.get("dni");
int telefono = (int) datosSolicitud.get("telefono");
String email = (String) datosSolicitud.get("email");
String claveAceso = (String) datosSolicitud.get("claveAcceso");
String rol1 = (String) datosSolicitud.get("rol");
Usuario.Rol rol = Usuario.Rol.valueOf(rol1);
Usuario usuario = new Usuario(nombre, apellidos, fecha, dni, telefono, email, claveAceso, rol);
Reserva reserva = new Reserva(usuario, (String) datosSolicitud.get("origen"), (String) datosSolicitud.get("destino"), (int) datosSolicitud.get("numAsientos"), (int) datosSolicitud.get("precio"), fecha2);
Solicitud s = new Solicitud(reserva, usuario);
s.setId(19827439L);
public ResponseEntity<Solicitud> crearSolicitud(@RequestBody Solicitud datosSolicitud){
try {
servicioCarPooling.crearSolicitud(s);
servicioCarPooling.crearSolicitud(datosSolicitud);
return ResponseEntity.status(HttpStatus.CREATED).build();
} catch (SolicitudYaExistente e) {
return ResponseEntity.status(HttpStatus.CONFLICT).build();
......
......@@ -145,7 +145,10 @@ public class ServicioCarPooling {
@Transactional
public Solicitud crearSolicitud(@NotBlank Solicitud s) {
repositorioSolicitud.guardar(s);
Optional<Solicitud> test = repositorioSolicitud.buscar(s.getId());
if (test.isPresent()) {
throw new ViajeYaRegistrado();
}
return s;
}
......
......@@ -252,6 +252,7 @@ public class ControladorRESTTEST {
"/reservas/crearReserva/" + dni, reserva, Reserva.class
);
Assertions.assertThat(respuestaR.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@Test
......@@ -282,69 +283,105 @@ public class ControladorRESTTEST {
@Test
public void testEliminarReserva() {
// Datos de prueba
int idReserva = 1;
Date fecha = new Date(2000, 12, 1);
DTOUsuario usuario = new DTOUsuario("Fernando", "Alonso Diaz",fecha, "78162640S", 670988953, "hola@gmail.com", "1234", Usuario.Rol.CONDUCTOR);
ResponseEntity<DTOUsuario> respuesta = restTemplate.postForEntity
(
"/usuarios", usuario, DTOUsuario.class
);
Usuario conductor = new Usuario("Conductor", "ApellidoConductor",fecha, "78162640S", 123456789, "conductor@example.com", "clave", Usuario.Rol.CONDUCTOR);
ArrayList<String> pasajeros = new ArrayList<>();
pasajeros.add("Ana");
pasajeros.add("Perico");
String dni = "78162640S";
Viaje viaje = new Viaje("Origen", "Destino", new Date(), 3, 20, 5);
DTOReserva reserva = new DTOReserva(1,conductor,pasajeros,0,2,true, viaje);
ResponseEntity<Reserva> respuestaR = restTemplate.postForEntity(
"/reservas/crearReserva/" + dni, reserva, Reserva.class
);
ResponseEntity<Reserva> respuesta3 = restTemplate.getForEntity("/reservas/"+ 1, Reserva.class, 1);
Assertions.assertThat(respuesta3.getStatusCode()).isEqualTo(HttpStatus.OK);
restTemplate.delete("/viajes/eliminarReserva/{id}", idReserva);
ResponseEntity<Reserva> respuestaDespuesDeEliminar = restTemplate.getForEntity("/reservas/", Reserva.class, idReserva);
restTemplate.delete("/viajes/eliminarReserva/{id}", 1);
ResponseEntity<Reserva> respuestaDespuesDeEliminar = restTemplate.getForEntity("/reservas/", Reserva.class, 1);
Assertions.assertThat(respuestaDespuesDeEliminar.getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
}
@Test
public void testActualizarReserva() {
int idReserva = 847132468;
// Realizar la solicitud POST para actualizar el cliente existente
ResponseEntity<DTOReserva> respuesta = restTemplate.postForEntity
Date fecha = new Date(2000, 12, 1);
DTOUsuario usuario = new DTOUsuario("Fernando", "Alonso Diaz",fecha, "78162640S", 670988953, "hola@gmail.com", "1234", Usuario.Rol.CONDUCTOR);
ResponseEntity<DTOUsuario> respuesta = restTemplate.postForEntity
(
"/viajes/actualizarReserva/", idReserva, DTOReserva.class
"/usuarios", usuario, DTOUsuario.class
);
// Verificar que la respuesta sea mala, ya que no existe ese usuario en la bbdd
Assertions.assertThat(respuesta.getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
Usuario conductor = new Usuario("Conductor", "ApellidoConductor",fecha, "78162640S", 123456789, "conductor@example.com", "clave", Usuario.Rol.CONDUCTOR);
ArrayList<String> pasajeros = new ArrayList<>();
pasajeros.add("Ana");
pasajeros.add("Perico");
String dni = "78162640S";
Viaje viaje = new Viaje("Origen", "Destino", new Date(), 3, 20, 5);
DTOReserva reserva = new DTOReserva(1,conductor,pasajeros,0,2,true, viaje);
ResponseEntity<Reserva> respuestaR = restTemplate.postForEntity(
"/reservas/crearReserva/" + dni, reserva, Reserva.class
);
String nuevoOrigen = "nuevoOrigen";
String nuevoDestino = "nuevoDestino";
Map<String, Object> requestBody = new HashMap<>();
requestBody.put("nuevoOrigen", nuevoOrigen);
requestBody.put("nuevoDestino", nuevoDestino);
// Enviar la solicitud con datos en el cuerpo como JSON
ResponseEntity<DTOReserva> respuestaA = restTemplate.exchange(
"/reservas/actualizarReserva/{id}", HttpMethod.PUT, new HttpEntity<>(requestBody), DTOReserva.class, 1
);
// Verificar que la respuesta sea OK, ya que se supone que el usuario existe en la base de datos
Assertions.assertThat(respuestaA.getStatusCode()).isEqualTo(HttpStatus.OK);
}
@Test
public void crearSolicitud() {
Date fecha = new Date(2000, 12, 1);
DTOUsuario usuario = new DTOUsuario("Fernando", "Alonso Diaz",fecha, "78162640S", 670988953, "hola@gmail.com", "1234", Usuario.Rol.CONDUCTOR);
ResponseEntity<DTOUsuario> respuesta = restTemplate.postForEntity
(
"/usuarios", usuario, DTOUsuario.class
);
// Especifica el formato deseado para la fecha
SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Usuario conductor = new Usuario("Conductor", "ApellidoConductor",fecha, "78162640S", 123456789, "conductor@example.com", "clave", Usuario.Rol.CONDUCTOR);
ArrayList<String> pasajeros = new ArrayList<>();
pasajeros.add("Ana");
pasajeros.add("Perico");
String dni = "78162640S";
Viaje viaje = new Viaje("Origen", "Destino", new Date(), 3, 20, 5);
// Convierte la fecha a String
String fechaComoString = formato.format(fecha);
DTOReserva reserva = new DTOReserva(1,conductor,pasajeros,0,2,true, viaje);
restTemplate.postForEntity(
"/reservas/crearReserva/" + dni, reserva, Reserva.class
);
Date fecha2 = new Date(2025, 12, 1);
// Convierte la fecha a String
String fe2 = formato.format(fecha);
Usuario u = new Usuario("Conductor", "ApellidoConductor", fecha, "78162640S", 123456789, "conductor@example.com", "clave", Usuario.Rol.CONDUCTOR);
Reserva r = new Reserva(u, "Origen", "Destino", 3, 20, fecha2);
Long id = 1L;
Usuario.Rol rol = u.getRol();
String convertirRol = rol.name();
Map<String, Object> requestBody = new HashMap<>();
requestBody.put("nombre", u.getNombre());
requestBody.put("apellidos", u.getApellidos());
requestBody.put("fecha", fechaComoString);
requestBody.put("dni", u.getDNI());
requestBody.put("telefono", u.getTelefono());
requestBody.put("email", u.getEmail());
requestBody.put("claveAcceso", u.getClaveAcceso());
requestBody.put("rol", convertirRol);
requestBody.put("origen", r.getViaje().getOrigen());
requestBody.put("destino", r.getViaje().getDestino());
requestBody.put("numAsientos", r.getNumPasajeros());
requestBody.put("precio", r.getViaje().getPrecioAsiento());
requestBody.put("fecha2", fe2);
ResponseEntity<Solicitud> respuestaR = restTemplate.exchange(
"/solicitudes", HttpMethod.POST, new HttpEntity<>(requestBody), Solicitud.class
int entero = 123456;
long numero = (long) entero;
DTOSolicitud s = new DTOSolicitud(numero,r,u);
ResponseEntity<Solicitud> respuestaR = restTemplate.postForEntity(
"/solicitudes", s, Solicitud.class
);
Assertions.assertThat(respuestaR.getStatusCode()).isEqualTo(HttpStatus.CREATED);
}
@Test
......
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