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
60873755
authored
Jan 23, 2024
by
María Hidalgo
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Test correccion
parent
d607f091
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
30 additions
and
29 deletions
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Viaje.java
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
src/test/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpoolingTest.java
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Viaje.java
View file @
60873755
...
...
@@ -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
)
{
...
...
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
View file @
60873755
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
)
{
...
...
src/test/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpoolingTest.java
View file @
60873755
...
...
@@ -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
(
conductor
Login
.
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
(
viaje
Enc
);
// Comprobar que el pasajero está en la lista de solicitudes pendientes
assertTrue
(
solicitudesPendientes
.
contains
(
pasajero
));
assertTrue
(
solicitudesPendientes
.
contains
(
pasajero
Login
.
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
(
conductor
Login
.
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"
);
viaje
Enc
.
setEstado
(
EstadoViaje
.
PENDIENTE
);
sistemaCarpooling
.
enviarSolicitudViaje
(
viaje
Enc
,
pasajeroLogin
.
get
()
);
// Obtener solicitudes pendientes del viaje
List
<
Usuario
>
solicitudesPendientes
=
sistemaCarpooling
.
obtenerSolicitudesPendientes
(
viaje
);
List
<
Usuario
>
solicitudesPendientes
=
sistemaCarpooling
.
obtenerSolicitudesPendientes
(
viaje
Enc
);
// Comprobar que el pasajero está en la lista de solicitudes pendientes
assertTrue
(
solicitudesPendientes
.
contains
(
pasajero
));
sistemaCarpooling
.
aceptarPasajeroViaje
(
viaje
,
pasajero
,
conductor
);
assertTrue
(
solicitudesPendientes
.
contains
(
pasajero
Login
.
get
()
));
sistemaCarpooling
.
aceptarPasajeroViaje
(
viaje
Enc
,
pasajeroLogin
.
get
(),
conductorLogin
.
get
()
);
// Obtener pasajeros del viaje
List
<
Usuario
>
pasajerosViaje
=
sistemaCarpooling
.
obtenerPasajeros
(
viaje
);
List
<
Usuario
>
pasajerosViaje
=
sistemaCarpooling
.
obtenerPasajeros
(
viaje
Enc
);
// Comprobar que el pasajero coincide con el introducido
assertTrue
(
pasajerosViaje
.
contains
(
pasajero
));
assertTrue
(
pasajerosViaje
.
contains
(
pasajero
Login
.
get
()
));
assertTrue
(
viaje
.
usuariosConfirmados
.
contains
(
pasajero
));
assertEquals
(
EstadoViaje
.
PENDIENTE
,
viaje
.
getEstado
());
assertTrue
(
viaje
Enc
.
usuariosConfirmados
.
contains
(
pasajeroLogin
.
get
()
));
assertEquals
(
EstadoViaje
.
PENDIENTE
,
viaje
Enc
.
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