Commit 57bb271c by María Hidalgo

añadida funcion obtenerViajesPendientesConductor

parent d2b9e2cd
...@@ -4,7 +4,6 @@ import java.io.Serializable; ...@@ -4,7 +4,6 @@ import java.io.Serializable;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import jakarta.validation.constraints.Email; import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Past; import jakarta.validation.constraints.Past;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
...@@ -16,7 +15,9 @@ import jakarta.validation.constraints.NotNull; ...@@ -16,7 +15,9 @@ import jakarta.validation.constraints.NotNull;
import java.util.List; import java.util.List;
import es.ujaen.dae.carpoolingdae.entidades.Viaje.EstadoViaje;
import es.ujaen.dae.carpoolingdae.excepciones.NoAceptaConductor; import es.ujaen.dae.carpoolingdae.excepciones.NoAceptaConductor;
import es.ujaen.dae.carpoolingdae.excepciones.ViajeRealizado;
import es.ujaen.dae.carpoolingdae.utils.CodificadorMd5; import es.ujaen.dae.carpoolingdae.utils.CodificadorMd5;
import es.ujaen.dae.carpoolingdae.utils.ExprReg; import es.ujaen.dae.carpoolingdae.utils.ExprReg;
...@@ -69,8 +70,8 @@ public class Usuario implements Serializable { ...@@ -69,8 +70,8 @@ public class Usuario implements Serializable {
String clave; String clave;
// Viajes creados por el conductor // Viajes creados por el conductor
@OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL) @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
//@JoinColumn(name = "usuario_dni") // @JoinColumn(name = "usuario_dni")
List<Viaje> viajesComoConductor; List<Viaje> viajesComoConductor;
public Usuario(String dni, String nombre, String apellidos, LocalDate fecha_nac, String telef, String email, public Usuario(String dni, String nombre, String apellidos, LocalDate fecha_nac, String telef, String email,
...@@ -130,6 +131,10 @@ public class Usuario implements Serializable { ...@@ -130,6 +131,10 @@ public class Usuario implements Serializable {
if (!viajesComoConductor.contains(viaje)) { if (!viajesComoConductor.contains(viaje)) {
throw new NoAceptaConductor(); throw new NoAceptaConductor();
} }
// Verifica si el viaje está en estado pendiente
if (viaje.getEstado() != EstadoViaje.PENDIENTE) {
throw new ViajeRealizado();
}
// Llamar a la función en Viaje para confirmar al pasajero // Llamar a la función en Viaje para confirmar al pasajero
viaje.confirmarPasajero(pasajero, conductor); viaje.confirmarPasajero(pasajero, conductor);
......
...@@ -8,6 +8,8 @@ import java.util.List; ...@@ -8,6 +8,8 @@ import java.util.List;
import es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible; import es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible;
import jakarta.persistence.CascadeType; import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue; import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType; import jakarta.persistence.GenerationType;
import jakarta.persistence.Id; import jakarta.persistence.Id;
...@@ -46,6 +48,15 @@ public class Viaje { ...@@ -46,6 +48,15 @@ public class Viaje {
@NotNull @NotNull
Double precioAsiento; Double precioAsiento;
public enum EstadoViaje {
PENDIENTE,
REALIZADO,
CANCELADO
}
// Añado el atributo de estado usando el enum
@Enumerated(EnumType.STRING)
EstadoViaje estado;
// Lista de usuarios que son confirmados en un viaje // Lista de usuarios que son confirmados en un viaje
@ManyToMany(cascade = CascadeType.ALL) @ManyToMany(cascade = CascadeType.ALL)
...@@ -67,6 +78,7 @@ public class Viaje { ...@@ -67,6 +78,7 @@ public class Viaje {
this.fechaHora = fechaHora; this.fechaHora = fechaHora;
this.plazasDisponibles = plazasDisponibles; this.plazasDisponibles = plazasDisponibles;
this.precioAsiento = precioAsiento; this.precioAsiento = precioAsiento;
this.estado = EstadoViaje.PENDIENTE;
usuariosSolicitantes = new ArrayList<>(); usuariosSolicitantes = new ArrayList<>();
usuariosConfirmados = new ArrayList<>(); usuariosConfirmados = new ArrayList<>();
...@@ -93,7 +105,7 @@ public class Viaje { ...@@ -93,7 +105,7 @@ public class Viaje {
} }
public void enviarSolicitudParaSerPasajero(@NotNull Viaje viaje, @NotNull Usuario pasajero) { public void enviarSolicitudParaSerPasajero(@NotNull Viaje viaje, @NotNull Usuario pasajero) {
if (!usuariosSolicitantes.contains(pasajero) && getPlazasDisponibles if (estado == EstadoViaje.PENDIENTE && !usuariosSolicitantes.contains(pasajero) && getPlazasDisponibles
() > 0) { // Sino quedan plazas no puede solicitar () > 0) { // Sino quedan plazas no puede solicitar
// unirse // unirse
usuariosSolicitantes.add(pasajero); usuariosSolicitantes.add(pasajero);
...@@ -104,7 +116,7 @@ public class Viaje { ...@@ -104,7 +116,7 @@ public class Viaje {
public void confirmarPasajero(@NotNull Usuario pasajero, @NotNull Usuario conductor) { public void confirmarPasajero(@NotNull Usuario pasajero, @NotNull Usuario conductor) {
// Verificar si el pasajero está en la lista de solicitantes // Verificar si el pasajero está en la lista de solicitantes
if (usuariosSolicitantes.contains(pasajero) && plazasDisponibles > 0) { if (estado == EstadoViaje.PENDIENTE && usuariosSolicitantes.contains(pasajero) && plazasDisponibles > 0) {
// Mover al pasajero de la lista de solicitantes a la lista de confirmados // Mover al pasajero de la lista de solicitantes a la lista de confirmados
usuariosSolicitantes.remove(pasajero); usuariosSolicitantes.remove(pasajero);
......
package es.ujaen.dae.carpoolingdae.excepciones;
public class ViajeRealizado extends RuntimeException {
public ViajeRealizado() {
}
}
...@@ -7,7 +7,7 @@ import jakarta.validation.constraints.NotNull; ...@@ -7,7 +7,7 @@ import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -16,6 +16,7 @@ import org.springframework.validation.annotation.Validated; ...@@ -16,6 +16,7 @@ import org.springframework.validation.annotation.Validated;
import es.ujaen.dae.carpoolingdae.entidades.Usuario; import es.ujaen.dae.carpoolingdae.entidades.Usuario;
import es.ujaen.dae.carpoolingdae.entidades.Viaje; import es.ujaen.dae.carpoolingdae.entidades.Viaje;
import es.ujaen.dae.carpoolingdae.entidades.Viaje.EstadoViaje;
import es.ujaen.dae.carpoolingdae.excepciones.UsuarioNoRegistrado; import es.ujaen.dae.carpoolingdae.excepciones.UsuarioNoRegistrado;
import es.ujaen.dae.carpoolingdae.excepciones.UsuarioYaRegistrado; import es.ujaen.dae.carpoolingdae.excepciones.UsuarioYaRegistrado;
import es.ujaen.dae.carpoolingdae.repositorios.RepositorioUsuarios; import es.ujaen.dae.carpoolingdae.repositorios.RepositorioUsuarios;
...@@ -98,7 +99,18 @@ public class SistemaCarpooling { ...@@ -98,7 +99,18 @@ public class SistemaCarpooling {
return listaViajes; return listaViajes;
} }
/**
* Obtener viajes pendientes de un conductor
*
* @param conductor el usuario conductor
* @return lista de viajes pendientes del conductor
*/
public List<Viaje> obtenerViajesPendientesConductor(@NotNull Usuario conductor) {
// Filtrar los viajes del conductor que aún no han sido realizados
return conductor.getViajesComoConductor().stream()
.filter(viaje -> viaje.getEstado() == EstadoViaje.PENDIENTE)
.collect(Collectors.toList());
}
/** /**
* Enviar solicitud para ser pasajero de un viaje * Enviar solicitud para ser pasajero de un viaje
......
package es.ujaen.dae.carpoolingdae.entidades; package es.ujaen.dae.carpoolingdae.entidades;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
import java.time.LocalDate; import java.time.LocalDate;
...@@ -8,6 +9,7 @@ import java.time.LocalDateTime; ...@@ -8,6 +9,7 @@ import java.time.LocalDateTime;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import es.ujaen.dae.carpoolingdae.entidades.Viaje.EstadoViaje;
import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation; import jakarta.validation.Validation;
import jakarta.validation.Validator; import jakarta.validation.Validator;
...@@ -76,6 +78,10 @@ public class UsuarioTest { ...@@ -76,6 +78,10 @@ public class UsuarioTest {
2, 2,
50.0); 50.0);
usuario.agregarViajeComoConductor(viaje); usuario.agregarViajeComoConductor(viaje);
viaje.setEstado(EstadoViaje.PENDIENTE);
assertTrue(usuario.viajesComoConductor.contains(viaje));
assertEquals(EstadoViaje.PENDIENTE, viaje.getEstado());
assertTrue(usuario.viajesComoConductor.contains(viaje)); assertTrue(usuario.viajesComoConductor.contains(viaje));
} }
......
package es.ujaen.dae.carpoolingdae.entidades; package es.ujaen.dae.carpoolingdae.entidades;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
...@@ -14,6 +15,7 @@ import org.junit.jupiter.api.BeforeEach; ...@@ -14,6 +15,7 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import es.ujaen.dae.carpoolingdae.entidades.Viaje.EstadoViaje;
import es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible; import es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible;
import es.ujaen.dae.carpoolingdae.servicios.SistemaCarpooling; import es.ujaen.dae.carpoolingdae.servicios.SistemaCarpooling;
import jakarta.validation.ConstraintViolation; import jakarta.validation.ConstraintViolation;
...@@ -124,12 +126,14 @@ public class ViajeTest { ...@@ -124,12 +126,14 @@ public class ViajeTest {
"clave"); "clave");
viaje.setPlazasDisponibles(0); viaje.setPlazasDisponibles(0);
viaje.usuariosSolicitantes.add(pasajero); viaje.usuariosSolicitantes.add(pasajero);
viaje.setEstado(EstadoViaje.PENDIENTE);
viaje.confirmarPasajero(pasajero, conductor); viaje.confirmarPasajero(pasajero, conductor);
// Verificación // Verificación
assertFalse( viaje.getPlazasDisponibles() > 0); assertFalse( viaje.getPlazasDisponibles() > 0);
assertFalse( viaje.usuariosConfirmados.contains(pasajero)); assertFalse( viaje.usuariosConfirmados.contains(pasajero));
assertFalse( viaje.usuariosSolicitantes.isEmpty()); assertFalse( viaje.usuariosSolicitantes.isEmpty());
assertEquals(EstadoViaje.PENDIENTE, viaje.getEstado());
} }
......
package es.ujaen.dae.carpoolingdae.servicios; package es.ujaen.dae.carpoolingdae.servicios;
import es.ujaen.dae.carpoolingdae.entidades.Usuario; import es.ujaen.dae.carpoolingdae.entidades.Usuario;
import es.ujaen.dae.carpoolingdae.entidades.Viaje; import es.ujaen.dae.carpoolingdae.entidades.Viaje;
import es.ujaen.dae.carpoolingdae.entidades.Viaje.EstadoViaje;
import es.ujaen.dae.carpoolingdae.excepciones.UsuarioNoRegistrado; import es.ujaen.dae.carpoolingdae.excepciones.UsuarioNoRegistrado;
//import jakarta.validation.ConstraintViolationException; import static org.junit.jupiter.api.Assertions.assertEquals;
//import jakarta.validation.ConstraintViolationException;
import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.assertTrue;
...@@ -14,8 +17,6 @@ import java.util.List; ...@@ -14,8 +17,6 @@ import java.util.List;
import jakarta.validation.ConstraintViolationException; import jakarta.validation.ConstraintViolationException;
import org.assertj.core.api.Assertions; import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -24,195 +25,184 @@ import org.springframework.test.annotation.DirtiesContext; ...@@ -24,195 +25,184 @@ import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.annotation.DirtiesContext.MethodMode; import org.springframework.test.annotation.DirtiesContext.MethodMode;
import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ActiveProfiles;
//@Disabled //@Disabled
@SpringBootTest(classes = es.ujaen.dae.carpoolingdae.app.CarpoolingDaeApplication.class) @SpringBootTest(classes = es.ujaen.dae.carpoolingdae.app.CarpoolingDaeApplication.class)
@ActiveProfiles(profiles = { "test" }) @ActiveProfiles(profiles = { "test" })
public class SistemaCarpoolingTest { public class SistemaCarpoolingTest {
@Autowired
SistemaCarpooling sistemaCarpooling;
// Accedemos al sistema
@Test
public void testAccesoSistemaCarpooling() {
Assertions.assertThat(sistemaCarpooling).isNotNull();
}
@Test
@DirtiesContext(methodMode = MethodMode.AFTER_METHOD)
public void testAltaUsuarioInvalido() {
Usuario usuario = new Usuario(
"22334455H",
"María",
"Hidalgo Morcillo",
LocalDate.of(1990, 11, 1),
"+34600123456",
"mred.ujaen.es",
"clave");
Assertions.assertThatThrownBy(() -> sistemaCarpooling.altaUsuario(usuario))
.isInstanceOf(ConstraintViolationException.class);
}
@Test
@DirtiesContext(methodMode = MethodMode.AFTER_METHOD)
public void testAltaYLoginUsuario() {
String clave = "mariahm";
Usuario usuario = new Usuario(
"22334455H",
"María",
"Hidalgo Morcillo",
LocalDate.of(1990, 11, 1),
"+34600123456",
"mhm@red.ujaen.es",
clave);
Usuario usuario1 = sistemaCarpooling.altaUsuario(usuario);
Usuario usuarioLogin = sistemaCarpooling.loginUsuario(usuario.getDni(), "mariahm")
.orElseThrow(() -> new UsuarioNoRegistrado());
Assertions.assertThat(usuarioLogin).isNotNull();
Assertions.assertThat(usuarioLogin.getDni()).isEqualTo(usuario1.getDni());
Assertions.assertThat(usuarioLogin.getEmail()).isEqualTo(usuario1.getEmail());
}
@Test
@DirtiesContext(methodMode = MethodMode.AFTER_METHOD)
public void testAgregarViaje() {
// Crear un objeto Viaje válido
Viaje viaje = new Viaje(
// ID del viaje
"Destino",
"Origen",
LocalDateTime.of(2023, 9, 30, 8, 0),
2,
50.0);
String clave = "mariahm";
Usuario usuario = new Usuario(
"22334455H",
"María",
"Hidalgo Morcillo",
LocalDate.of(1990, 11, 1),
"+34600123456",
"mhm@red.ujaen.es",
clave);
// Agregar el viaje al sistema
sistemaCarpooling.agregarViaje(usuario, viaje);
// el viaje paraver si ha sido añadido
String origenBusqueda = "Origen";
String destinoBusqueda = "Destino";
LocalDateTime fechaBusqueda = LocalDateTime.of(2023, 9, 30, 8, 0);
List<Viaje> viajesEncontrados = sistemaCarpooling.buscarViajes(origenBusqueda, destinoBusqueda,
fechaBusqueda);
Viaje viajeEnc = viajesEncontrados.get(0);
Assertions.assertThat(viajeEnc.getDestino()).isEqualTo(viaje.getDestino());
Assertions.assertThat(viajeEnc.getOrigen()).isEqualTo(viaje.getOrigen());
Assertions.assertThat(viajeEnc.getfechaHora()).isEqualTo(viaje.getfechaHora());
Assertions.assertThat(viajeEnc.getPlazasDisponibles()).isEqualTo(viaje.getPlazasDisponibles());
Assertions.assertThat(viajeEnc.getPrecioAsiento()).isEqualTo(viaje.getPrecioAsiento());
// Verificar que se encuentren los viajes esperados
// Assertions.assertThat(viajesEncontrados).contains(viaje);
}
@Test
@DirtiesContext(methodMode = MethodMode.AFTER_METHOD)
public void testEnviarSolicitudViaje() {
// Crear un usuario conductor
Usuario conductor = new Usuario(
"12345678A",
"Conductor",
"Apellido",
LocalDate.of(1990, 1, 1),
"+34600999999",
"conductor@example.com",
"clave");
// Crear un usuario pasajero
Usuario pasajero = new Usuario(
"87654321B",
"Pasajero",
"Apellido",
LocalDate.of(1995, 5, 5),
"+34600999889",
"pasajero@example.com",
"clave");
// Crear un viaje
Viaje viaje = new Viaje(
"Origen",
"Destino",
LocalDateTime.of(2023, 9, 30, 8, 0),
2,
50.0);
sistemaCarpooling.altaUsuario(conductor);
sistemaCarpooling.altaUsuario(pasajero);
sistemaCarpooling.agregarViaje(conductor, viaje);
sistemaCarpooling.enviarSolicitudViaje(viaje, pasajero);
assertTrue(viaje.usuariosSolicitantes.contains(pasajero));
}
@Test
public void testAceptarPasajeroViaje() {
// Crear un usuario conductor
Usuario conductor = new Usuario(
"12345678A",
"Conductor",
"Apellido",
LocalDate.of(1990, 1, 1),
"+34600999999",
"conductor@example.com",
"clave");
// Crear un usuario pasajero
Usuario pasajero = new Usuario(
"87654321B",
"Pasajero",
"Apellido",
LocalDate.of(1995, 5, 5),
"+34600999889",
"pasajero@example.com",
"clave");
// Crear un viaje
Viaje viaje = new Viaje(
"Origen",
"Destino",
LocalDateTime.of(2023, 9, 30, 8, 0),
2,
50.0);
sistemaCarpooling.altaUsuario(conductor);
sistemaCarpooling.altaUsuario(pasajero);
sistemaCarpooling.agregarViaje(conductor, viaje);
viaje.setEstado(EstadoViaje.PENDIENTE);
sistemaCarpooling.enviarSolicitudViaje(viaje, pasajero);
sistemaCarpooling.aceptarPasajeroViaje(viaje, pasajero, conductor);
@Autowired assertTrue(viaje.usuariosConfirmados.contains(pasajero));
SistemaCarpooling sistemaCarpooling; assertEquals(EstadoViaje.PENDIENTE, viaje.getEstado());
}
}
// Accedemos al sistema
@Test
public void testAccesoSistemaCarpooling() {
Assertions.assertThat(sistemaCarpooling).isNotNull();
}
@Test
@DirtiesContext(methodMode = MethodMode.AFTER_METHOD)
public void testAltaUsuarioInvalido() {
Usuario usuario = new Usuario(
"22334455H",
"María",
"Hidalgo Morcillo",
LocalDate.of(1990, 11, 1),
"+34600123456",
"mred.ujaen.es",
"clave");
Assertions.assertThatThrownBy(() -> sistemaCarpooling.altaUsuario(usuario))
.isInstanceOf(ConstraintViolationException.class);
}
@Test
@DirtiesContext(methodMode = MethodMode.AFTER_METHOD)
public void testAltaYLoginUsuario() {
String clave = "mariahm";
Usuario usuario = new Usuario(
"22334455H",
"María",
"Hidalgo Morcillo",
LocalDate.of(1990, 11, 1),
"+34600123456",
"mhm@red.ujaen.es",
clave);
Usuario usuario1 = sistemaCarpooling.altaUsuario(usuario);
Usuario usuarioLogin = sistemaCarpooling.loginUsuario(usuario.getDni(), "mariahm")
.orElseThrow(() -> new UsuarioNoRegistrado());
Assertions.assertThat(usuarioLogin).isNotNull();
Assertions.assertThat(usuarioLogin.getDni()).isEqualTo(usuario1.getDni());
Assertions.assertThat(usuarioLogin.getEmail()).isEqualTo(usuario1.getEmail());
}
@Test
@DirtiesContext(methodMode = MethodMode.AFTER_METHOD)
public void testAgregarViaje() {
// Crear un objeto Viaje válido
Viaje viaje = new Viaje(
// ID del viaje
"Destino",
"Origen",
LocalDateTime.of(2023, 9, 30, 8, 0),
2,
50.0);
String clave = "mariahm";
Usuario usuario = new Usuario(
"22334455H",
"María",
"Hidalgo Morcillo",
LocalDate.of(1990, 11, 1),
"+34600123456",
"mhm@red.ujaen.es",
clave);
// Agregar el viaje al sistema
sistemaCarpooling.agregarViaje(usuario, viaje);
// el viaje paraver si ha sido añadido
String origenBusqueda = "Origen";
String destinoBusqueda = "Destino";
LocalDateTime fechaBusqueda = LocalDateTime.of(2023, 9, 30, 8, 0);
List<Viaje> viajesEncontrados = sistemaCarpooling.buscarViajes(origenBusqueda, destinoBusqueda, fechaBusqueda);
Viaje viajeEnc=viajesEncontrados.get(0);
Assertions.assertThat(viajeEnc.getDestino()).isEqualTo(viaje.getDestino());
Assertions.assertThat(viajeEnc.getOrigen()).isEqualTo(viaje.getOrigen());
Assertions.assertThat(viajeEnc.getfechaHora()).isEqualTo(viaje.getfechaHora());
Assertions.assertThat(viajeEnc.getPlazasDisponibles()).isEqualTo(viaje.getPlazasDisponibles());
Assertions.assertThat(viajeEnc.getPrecioAsiento()).isEqualTo(viaje.getPrecioAsiento());
// Verificar que se encuentren los viajes esperados
// Assertions.assertThat(viajesEncontrados).contains(viaje);
}
@Test
@DirtiesContext(methodMode = MethodMode.AFTER_METHOD)
public void testEnviarSolicitudViaje() {
// Crear un usuario conductor
Usuario conductor = new Usuario(
"12345678A",
"Conductor",
"Apellido",
LocalDate.of(1990, 1, 1),
"+34600999999",
"conductor@example.com",
"clave");
// Crear un usuario pasajero
Usuario pasajero = new Usuario(
"87654321B",
"Pasajero",
"Apellido",
LocalDate.of(1995, 5, 5),
"+34600999889",
"pasajero@example.com",
"clave");
// Crear un viaje
Viaje viaje = new Viaje(
"Origen",
"Destino",
LocalDateTime.of(2023, 9, 30, 8, 0),
2,
50.0);
sistemaCarpooling.altaUsuario(conductor);
sistemaCarpooling.altaUsuario(pasajero);
sistemaCarpooling.agregarViaje(conductor, viaje);
sistemaCarpooling.enviarSolicitudViaje(viaje, pasajero);
assertTrue(viaje.usuariosSolicitantes.contains(pasajero));
}
@Test
public void testAceptarPasajeroViaje() {
// Crear un usuario conductor
Usuario conductor = new Usuario(
"12345678A",
"Conductor",
"Apellido",
LocalDate.of(1990, 1, 1),
"+34600999999",
"conductor@example.com",
"clave");
// Crear un usuario pasajero
Usuario pasajero = new Usuario(
"87654321B",
"Pasajero",
"Apellido",
LocalDate.of(1995, 5, 5),
"+34600999889",
"pasajero@example.com",
"clave");
// Crear un viaje
Viaje viaje = new Viaje(
"Origen",
"Destino",
LocalDateTime.of(2023, 9, 30, 8, 0),
2,
50.0);
sistemaCarpooling.altaUsuario(conductor);
sistemaCarpooling.altaUsuario(pasajero);
sistemaCarpooling.agregarViaje(conductor, viaje);
sistemaCarpooling.enviarSolicitudViaje(viaje, pasajero);
sistemaCarpooling.aceptarPasajeroViaje(viaje, pasajero, conductor);
assertTrue(viaje.usuariosConfirmados.contains(pasajero));
}
}
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