Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
María Hidalgo
/
carpooling-dae
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
57bb271c
authored
Jan 11, 2024
by
María Hidalgo
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
añadida funcion obtenerViajesPendientesConductor
parent
d2b9e2cd
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
232 additions
and
196 deletions
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Usuario.java
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Viaje.java
src/main/java/es/ujaen/dae/carpoolingdae/excepciones/ViajeRealizado.java
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
src/test/java/es/ujaen/dae/carpoolingdae/entidades/UsuarioTest.java
src/test/java/es/ujaen/dae/carpoolingdae/entidades/ViajeTest.java
src/test/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpoolingTest.java
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Usuario.java
View file @
57bb271c
...
...
@@ -4,7 +4,6 @@ import java.io.Serializable;
import
java.time.LocalDate
;
import
java.util.ArrayList
;
import
jakarta.validation.constraints.Email
;
import
jakarta.validation.constraints.Past
;
import
jakarta.validation.constraints.Pattern
;
...
...
@@ -16,7 +15,9 @@ import jakarta.validation.constraints.NotNull;
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.ViajeRealizado
;
import
es.ujaen.dae.carpoolingdae.utils.CodificadorMd5
;
import
es.ujaen.dae.carpoolingdae.utils.ExprReg
;
...
...
@@ -69,8 +70,8 @@ public class Usuario implements Serializable {
String
clave
;
// Viajes creados por el conductor
@OneToMany
(
fetch
=
FetchType
.
EAGER
,
cascade
=
CascadeType
.
ALL
)
//@JoinColumn(name = "usuario_dni")
@OneToMany
(
fetch
=
FetchType
.
EAGER
,
cascade
=
CascadeType
.
ALL
)
//
@JoinColumn(name = "usuario_dni")
List
<
Viaje
>
viajesComoConductor
;
public
Usuario
(
String
dni
,
String
nombre
,
String
apellidos
,
LocalDate
fecha_nac
,
String
telef
,
String
email
,
...
...
@@ -130,6 +131,10 @@ public class Usuario implements Serializable {
if
(!
viajesComoConductor
.
contains
(
viaje
))
{
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
viaje
.
confirmarPasajero
(
pasajero
,
conductor
);
...
...
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Viaje.java
View file @
57bb271c
...
...
@@ -8,6 +8,8 @@ import java.util.List;
import
es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible
;
import
jakarta.persistence.CascadeType
;
import
jakarta.persistence.Entity
;
import
jakarta.persistence.EnumType
;
import
jakarta.persistence.Enumerated
;
import
jakarta.persistence.GeneratedValue
;
import
jakarta.persistence.GenerationType
;
import
jakarta.persistence.Id
;
...
...
@@ -46,6 +48,15 @@ public class Viaje {
@NotNull
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
@ManyToMany
(
cascade
=
CascadeType
.
ALL
)
...
...
@@ -67,6 +78,7 @@ public class Viaje {
this
.
fechaHora
=
fechaHora
;
this
.
plazasDisponibles
=
plazasDisponibles
;
this
.
precioAsiento
=
precioAsiento
;
this
.
estado
=
EstadoViaje
.
PENDIENTE
;
usuariosSolicitantes
=
new
ArrayList
<>();
usuariosConfirmados
=
new
ArrayList
<>();
...
...
@@ -93,7 +105,7 @@ public class Viaje {
}
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
// unirse
usuariosSolicitantes
.
add
(
pasajero
);
...
...
@@ -104,7 +116,7 @@ public class Viaje {
public
void
confirmarPasajero
(
@NotNull
Usuario
pasajero
,
@NotNull
Usuario
conductor
)
{
// 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
usuariosSolicitantes
.
remove
(
pasajero
);
...
...
src/main/java/es/ujaen/dae/carpoolingdae/excepciones/ViajeRealizado.java
0 → 100644
View file @
57bb271c
package
es
.
ujaen
.
dae
.
carpoolingdae
.
excepciones
;
public
class
ViajeRealizado
extends
RuntimeException
{
public
ViajeRealizado
()
{
}
}
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
View file @
57bb271c
...
...
@@ -7,7 +7,7 @@ import jakarta.validation.constraints.NotNull;
import
java.time.LocalDateTime
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -16,6 +16,7 @@ import org.springframework.validation.annotation.Validated;
import
es.ujaen.dae.carpoolingdae.entidades.Usuario
;
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.UsuarioYaRegistrado
;
import
es.ujaen.dae.carpoolingdae.repositorios.RepositorioUsuarios
;
...
...
@@ -98,7 +99,18 @@ public class SistemaCarpooling {
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
...
...
src/test/java/es/ujaen/dae/carpoolingdae/entidades/UsuarioTest.java
View file @
57bb271c
package
es
.
ujaen
.
dae
.
carpoolingdae
.
entidades
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertTrue
;
import
java.time.LocalDate
;
...
...
@@ -8,6 +9,7 @@ import java.time.LocalDateTime;
import
org.junit.jupiter.api.Test
;
import
es.ujaen.dae.carpoolingdae.entidades.Viaje.EstadoViaje
;
import
jakarta.validation.ConstraintViolation
;
import
jakarta.validation.Validation
;
import
jakarta.validation.Validator
;
...
...
@@ -76,6 +78,10 @@ public class UsuarioTest {
2
,
50.0
);
usuario
.
agregarViajeComoConductor
(
viaje
);
viaje
.
setEstado
(
EstadoViaje
.
PENDIENTE
);
assertTrue
(
usuario
.
viajesComoConductor
.
contains
(
viaje
));
assertEquals
(
EstadoViaje
.
PENDIENTE
,
viaje
.
getEstado
());
assertTrue
(
usuario
.
viajesComoConductor
.
contains
(
viaje
));
}
...
...
src/test/java/es/ujaen/dae/carpoolingdae/entidades/ViajeTest.java
View file @
57bb271c
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
.
assertThrows
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertTrue
;
...
...
@@ -14,6 +15,7 @@ import org.junit.jupiter.api.BeforeEach;
import
org.junit.jupiter.api.Test
;
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.servicios.SistemaCarpooling
;
import
jakarta.validation.ConstraintViolation
;
...
...
@@ -124,12 +126,14 @@ public class ViajeTest {
"clave"
);
viaje
.
setPlazasDisponibles
(
0
);
viaje
.
usuariosSolicitantes
.
add
(
pasajero
);
viaje
.
setEstado
(
EstadoViaje
.
PENDIENTE
);
viaje
.
confirmarPasajero
(
pasajero
,
conductor
);
// Verificación
assertFalse
(
viaje
.
getPlazasDisponibles
()
>
0
);
assertFalse
(
viaje
.
usuariosConfirmados
.
contains
(
pasajero
));
assertFalse
(
viaje
.
usuariosSolicitantes
.
isEmpty
());
assertEquals
(
EstadoViaje
.
PENDIENTE
,
viaje
.
getEstado
());
}
...
...
src/test/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpoolingTest.java
View file @
57bb271c
package
es
.
ujaen
.
dae
.
carpoolingdae
.
servicios
;
import
es.ujaen.dae.carpoolingdae.entidades.Usuario
;
import
es.ujaen.dae.carpoolingdae.entidades.Viaje
;
import
es.ujaen.dae.carpoolingdae.entidades.Viaje.EstadoViaje
;
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
;
...
...
@@ -14,8 +17,6 @@ import java.util.List;
import
jakarta.validation.ConstraintViolationException
;
import
org.assertj.core.api.Assertions
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -24,195 +25,184 @@ import org.springframework.test.annotation.DirtiesContext;
import
org.springframework.test.annotation.DirtiesContext.MethodMode
;
import
org.springframework.test.context.ActiveProfiles
;
//@Disabled
@SpringBootTest
(
classes
=
es
.
ujaen
.
dae
.
carpoolingdae
.
app
.
CarpoolingDaeApplication
.
class
)
@ActiveProfiles
(
profiles
=
{
"test"
})
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
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
);
sistemaCarpooling
.
enviarSolicitudViaje
(
viaje
,
pasajero
);
sistemaCarpooling
.
aceptarPasajeroViaje
(
viaje
,
pasajero
,
conductor
);
assertTrue
(
viaje
.
usuariosConfirmados
.
contains
(
pasajero
));
}
}
assertTrue
(
viaje
.
usuariosConfirmados
.
contains
(
pasajero
));
assertEquals
(
EstadoViaje
.
PENDIENTE
,
viaje
.
getEstado
());
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment