Commit 60873755 by María Hidalgo

Test correccion

parent d607f091
......@@ -15,7 +15,7 @@ import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToMany;
import jakarta.transaction.Transactional;
import jakarta.validation.constraints.Past;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -103,7 +103,7 @@ public class Viaje {
public void setPlazasDisponibles(int plazasDisponibles) {
this.plazasDisponibles = plazasDisponibles;
}
@Transactional
public void enviarSolicitudParaSerPasajero(@NotNull Viaje viaje, @NotNull Usuario pasajero) {
if (estado == EstadoViaje.PENDIENTE && !usuariosSolicitantes.contains(pasajero) && getPlazasDisponibles
() > 0) { // Sino quedan plazas no puede solicitar
......@@ -114,6 +114,7 @@ public class Viaje {
}
}
@Transactional
public void confirmarPasajero(@NotNull Usuario pasajero, @NotNull Usuario conductor) {
// Verificar si el pasajero está en la lista de solicitantes
if (estado == EstadoViaje.PENDIENTE && usuariosSolicitantes.contains(pasajero) && plazasDisponibles > 0) {
......
package es.ujaen.dae.carpoolingdae.servicios;
import jakarta.transaction.Transactional;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
......@@ -121,13 +122,14 @@ public class SistemaCarpooling {
* @param viaje al que se envía la solicitud
*/
//@Transactional
@Transactional
public void enviarSolicitudViaje(@NotNull Viaje viaje, @NotNull Usuario pasajero) {
// Llamar a la función en viaje para enviar la solicitud
viaje.enviarSolicitudParaSerPasajero(viaje, pasajero);
repositorioViajes.actualizarViajes(viaje);
}
public void aceptarPasajeroViaje(@NotNull Viaje viaje, @NotNull Usuario pasajero,
@NotNull Usuario conductor) {
......
......@@ -13,8 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import jakarta.transaction.Transactional;
import java.util.Optional;
import jakarta.validation.ConstraintViolationException;
import org.assertj.core.api.Assertions;
......@@ -105,10 +104,10 @@ public class SistemaCarpoolingTest {
clave);
sistemaCarpooling.altaUsuario(usuario);
sistemaCarpooling.loginUsuario(usuario.getDni(), "mariahm");
// Agregar el viaje al sistema
sistemaCarpooling.agregarViaje(usuario, viaje);
Optional<Usuario> usuarioLogin = sistemaCarpooling.loginUsuario(usuario.getDni(), "mariahm");
//if (usuarioLogin.isPresent()) {
sistemaCarpooling.agregarViaje(usuarioLogin.get(), viaje);
//ver si ha sido añadido
String origenBusqueda = "Origen";
......@@ -127,7 +126,6 @@ public class SistemaCarpoolingTest {
}
@Transactional
@Test
@DirtiesContext(methodMode = MethodMode.AFTER_METHOD)
public void testEnviarSolicitudViaje() {
......@@ -153,7 +151,7 @@ public class SistemaCarpoolingTest {
sistemaCarpooling.altaUsuario(conductor);
sistemaCarpooling.altaUsuario(pasajero);
sistemaCarpooling.loginUsuario(conductor.getDni(), "clave");
Optional <Usuario> conductorLogin = sistemaCarpooling.loginUsuario(conductor.getDni(), "clave");
// Crear un objeto Viaje válido
Viaje viaje = new Viaje(
// ID del viaje
......@@ -165,7 +163,7 @@ public class SistemaCarpoolingTest {
// Agregar el viaje al sistema
sistemaCarpooling.agregarViaje(conductor, viaje);
sistemaCarpooling.agregarViaje(conductorLogin.get(), viaje);
viaje.setEstado(EstadoViaje.PENDIENTE);
// el viaje paraver si ha sido añadido
......@@ -182,22 +180,22 @@ public class SistemaCarpoolingTest {
Assertions.assertThat(viajeEnc.getPlazasDisponibles()).isEqualTo(viaje.getPlazasDisponibles());
Assertions.assertThat(viajeEnc.getPrecioAsiento()).isEqualTo(viaje.getPrecioAsiento());
sistemaCarpooling.loginUsuario(pasajero.getDni(), "clave");
Optional <Usuario> pasajeroLogin = sistemaCarpooling.loginUsuario(pasajero.getDni(), "clave");
sistemaCarpooling.enviarSolicitudViaje(viajeEnc, pasajero);
// Obtener solicitudes pendientes del viaje
List<Usuario> solicitudesPendientes = sistemaCarpooling.obtenerSolicitudesPendientes(viaje);
List<Usuario> solicitudesPendientes = sistemaCarpooling.obtenerSolicitudesPendientes(viajeEnc);
// Comprobar que el pasajero está en la lista de solicitudes pendientes
assertTrue(solicitudesPendientes.contains(pasajero));
assertTrue(solicitudesPendientes.contains(pasajeroLogin.get()));
assertEquals(EstadoViaje.PENDIENTE, viaje.getEstado());
}
//@Transactional
@Test
public void testAceptarPasajeroViaje() {
// Crear un usuario conductor
// Crear un usuario conductor sistemaCarpooling.enviarSolicitudViaje(viajeEnc, pasajeroLogin.get());
Usuario conductor = new Usuario(
"12345678A",
"Conductor",
......@@ -221,7 +219,7 @@ public class SistemaCarpoolingTest {
sistemaCarpooling.altaUsuario(pasajero);
// Login antes de agregar el viaje
sistemaCarpooling.loginUsuario(conductor.getDni(), "clave");
Optional <Usuario> conductorLogin = sistemaCarpooling.loginUsuario(conductor.getDni(), "clave");
// Crear un viaje
Viaje viaje = new Viaje(
......@@ -232,7 +230,7 @@ public class SistemaCarpoolingTest {
2,
50.0);
sistemaCarpooling.agregarViaje(conductor, viaje);
sistemaCarpooling.agregarViaje(conductorLogin.get(), viaje);
// el viaje paraver si ha sido añadido
String origenBusqueda = "Origen";
String destinoBusqueda = "Destino";
......@@ -247,24 +245,24 @@ public class SistemaCarpoolingTest {
Assertions.assertThat(viajeEnc.getPlazasDisponibles()).isEqualTo(viaje.getPlazasDisponibles());
Assertions.assertThat(viajeEnc.getPrecioAsiento()).isEqualTo(viaje.getPrecioAsiento());
// Login antes de enviar solicitud
sistemaCarpooling.loginUsuario(pasajero.getDni(), "clave");
viaje.setEstado(EstadoViaje.PENDIENTE);
sistemaCarpooling.enviarSolicitudViaje(viaje, pasajero);
Optional <Usuario> pasajeroLogin = sistemaCarpooling.loginUsuario(pasajero.getDni(), "clave");
viajeEnc.setEstado(EstadoViaje.PENDIENTE);
sistemaCarpooling.enviarSolicitudViaje(viajeEnc, pasajeroLogin.get());
// Obtener solicitudes pendientes del viaje
List<Usuario> solicitudesPendientes = sistemaCarpooling.obtenerSolicitudesPendientes(viaje);
List<Usuario> solicitudesPendientes = sistemaCarpooling.obtenerSolicitudesPendientes(viajeEnc);
// Comprobar que el pasajero está en la lista de solicitudes pendientes
assertTrue(solicitudesPendientes.contains(pasajero));
sistemaCarpooling.aceptarPasajeroViaje(viaje, pasajero, conductor);
assertTrue(solicitudesPendientes.contains(pasajeroLogin.get()));
sistemaCarpooling.aceptarPasajeroViaje(viajeEnc, pasajeroLogin.get(), conductorLogin.get());
// Obtener pasajeros del viaje
List<Usuario> pasajerosViaje = sistemaCarpooling.obtenerPasajeros(viaje);
List<Usuario> pasajerosViaje = sistemaCarpooling.obtenerPasajeros(viajeEnc);
// Comprobar que el pasajero coincide con el introducido
assertTrue(pasajerosViaje.contains(pasajero));
assertTrue(pasajerosViaje.contains(pasajeroLogin.get()));
assertTrue(viaje.usuariosConfirmados.contains(pasajero));
assertEquals(EstadoViaje.PENDIENTE, viaje.getEstado());
assertTrue(viajeEnc.usuariosConfirmados.contains(pasajeroLogin.get()));
assertEquals(EstadoViaje.PENDIENTE, viajeEnc.getEstado());
}
}
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