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
042aa73e
authored
Oct 30, 2023
by
María Hidalgo
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Tests y persistencia
parent
78446e75
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
257 additions
and
140 deletions
nbproject/project.properties
src/main/java/es/ujaen/dae/carpoolingdae/app/CarpoolingDaeApplication.java → src/main/java/es/ujaen/dae/carpoolingdae/CarpoolingDaeApplication.java
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/repositorios/RepositorioUsuarios.java
src/main/java/es/ujaen/dae/carpoolingdae/resources/application-test.yml
src/main/java/es/ujaen/dae/carpoolingdae/resources/application.yml
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
src/main/resources/application-test.yml
src/main/resources/application.yml
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
nbproject/project.properties
View file @
042aa73e
debug
=
true
src/main/java/es/ujaen/dae/carpoolingdae/
app/
CarpoolingDaeApplication.java
→
src/main/java/es/ujaen/dae/carpoolingdae/CarpoolingDaeApplication.java
View file @
042aa73e
package
es
.
ujaen
.
dae
.
carpoolingdae
.
app
;
package
es
.
ujaen
.
dae
.
carpoolingdae
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
...
...
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Usuario.java
View file @
042aa73e
...
@@ -18,6 +18,8 @@ import es.ujaen.dae.carpoolingdae.excepciones.NoAceptaConductor;
...
@@ -18,6 +18,8 @@ import es.ujaen.dae.carpoolingdae.excepciones.NoAceptaConductor;
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
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.Entity
;
import
javax.persistence.FetchType
;
import
javax.persistence.FetchType
;
...
@@ -25,14 +27,14 @@ import javax.persistence.Id;
...
@@ -25,14 +27,14 @@ import javax.persistence.Id;
import
javax.persistence.JoinColumn
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.ManyToOne
;
import
javax.persistence.ManyToOne
;
/**
/**
* Usuario a la app de carpooling
* Usuario a la app de carpooling
*
*
* @author maria
* @author maria
*/
*/
@Data
@NoArgsConstructor
@Entity
@Entity
public
class
Usuario
implements
Serializable
{
public
class
Usuario
implements
Serializable
{
...
@@ -87,22 +89,6 @@ public class Usuario implements Serializable {
...
@@ -87,22 +89,6 @@ public class Usuario implements Serializable {
return
dni
;
return
dni
;
}
}
public
String
getNombre
()
{
return
nombre
;
}
public
String
getApellidos
()
{
return
apellidos
;
}
public
LocalDate
getFecha_nac
()
{
return
fecha_nac
;
}
public
String
getTelef
()
{
return
telef
;
}
public
String
getEmail
()
{
public
String
getEmail
()
{
return
email
;
return
email
;
}
}
...
...
src/main/java/es/ujaen/dae/carpoolingdae/entidades/Viaje.java
View file @
042aa73e
...
@@ -17,7 +17,11 @@ import javax.validation.constraints.NotBlank;
...
@@ -17,7 +17,11 @@ import javax.validation.constraints.NotBlank;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Past
;
import
javax.validation.constraints.Past
;
import
es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible
;
import
es.ujaen.dae.carpoolingdae.excepciones.PlazaNoDisponible
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@NoArgsConstructor
@Entity
@Entity
public
class
Viaje
{
public
class
Viaje
{
...
@@ -66,10 +70,6 @@ public class Viaje {
...
@@ -66,10 +70,6 @@ public class Viaje {
}
}
public
int
getId
()
{
return
id
;
}
public
String
getDestino
()
{
public
String
getDestino
()
{
return
destino
;
return
destino
;
}
}
...
@@ -86,12 +86,9 @@ public class Viaje {
...
@@ -86,12 +86,9 @@ public class Viaje {
return
plazasDisponibles
;
return
plazasDisponibles
;
}
}
public
Double
getPrecio
()
{
return
precioAsiento
;
}
public
void
enviarSolicitudParaSerPasajero
(
@NotNull
@Valid
Viaje
viaje
,
@NotNull
@Valid
Usuario
pasajero
)
{
public
void
enviarSolicitudParaSerPasajero
(
@NotNull
@Valid
Viaje
viaje
,
@NotNull
@Valid
Usuario
pasajero
)
{
if
(!
usuariosSolicitantes
.
contains
(
pasajero
)
&&
getPlazas
()
>
0
)
{
// Sino quedan plazas no puede solicitar unirse
if
(!
usuariosSolicitantes
.
contains
(
pasajero
)
&&
getPlazas
()
>
0
)
{
// Sino quedan plazas no puede solicitar
// unirse
usuariosSolicitantes
.
add
(
pasajero
);
usuariosSolicitantes
.
add
(
pasajero
);
}
else
{
}
else
{
throw
new
PlazaNoDisponible
();
throw
new
PlazaNoDisponible
();
...
@@ -105,7 +102,8 @@ public class Viaje {
...
@@ -105,7 +102,8 @@ public class Viaje {
usuariosSolicitantes
.
remove
(
pasajero
);
usuariosSolicitantes
.
remove
(
pasajero
);
usuariosConfirmados
.
add
(
pasajero
);
usuariosConfirmados
.
add
(
pasajero
);
// Al añadir al pasajero a la lista de confirmados reduzco el número de plazas disponibles
// Al añadir al pasajero a la lista de confirmados reduzco el número de plazas
// disponibles
if
(
plazasDisponibles
>
0
)
{
if
(
plazasDisponibles
>
0
)
{
plazasDisponibles
--;
plazasDisponibles
--;
}
}
...
...
src/main/java/es/ujaen/dae/carpoolingdae/repositorios/RepositorioUsuarios.java
View file @
042aa73e
...
@@ -26,4 +26,8 @@ public class RepositorioUsuarios {
...
@@ -26,4 +26,8 @@ public class RepositorioUsuarios {
em
.
persist
(
usuario
);
em
.
persist
(
usuario
);
}
}
public
void
actualizarUsuario
(
Usuario
usuario
){
em
.
merge
(
usuario
);
}
}
}
src/main/java/es/ujaen/dae/carpoolingdae/resources/application-test.yml
deleted
100644 → 0
View file @
78446e75
## Fichero de configuración para UjaCoin durante testing
# spring.datasource.url: jdbc:mysql://localhost:33060/ujacoin_test
spring.datasource.url
:
jdbc:h2:mem:ujacoin_test;MODE=MYSQL;DATABASE_TO_LOWER=TRUE;DB_CLOSE_DELAY=-1
spring.jpa.properties.javax.persistence.schema-generation.database.action
:
drop-and-create
src/main/java/es/ujaen/dae/carpoolingdae/resources/application.yml
deleted
100644 → 0
View file @
78446e75
## Fichero de configuración para UjaCoin
spring.datasource.url
:
jdbc:mysql://localhost:33060/ujacoin
spring.datasource.username
:
ujacoin
spring.datasource.password
:
secret
spring.jpa.properties.javax.persistence.schema-generation.database.action
:
none
spring.data.jpa.repositories.bootstrap-mode
:
default
src/main/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpooling.java
View file @
042aa73e
...
@@ -75,6 +75,7 @@ public class SistemaCarpooling {
...
@@ -75,6 +75,7 @@ public class SistemaCarpooling {
// Agregar el viaje al repositorio de viajes
// Agregar el viaje al repositorio de viajes
repositorioViajes
.
guardarViaje
(
viaje
);
repositorioViajes
.
guardarViaje
(
viaje
);
repositorioUsuarios
.
actualizarUsuario
(
conductor
);
}
}
/**
/**
...
...
src/main/resources/application-test.yml
0 → 100644
View file @
042aa73e
## Fichero de configuración para carpooling durante testing
# spring.datasource.url: jdbc:mysql://localhost:33060/carpooling_test
spring.datasource.url
:
jdbc:h2:mem:carpooling_test;MODE=MYSQL;DATABASE_TO_LOWER=TRUE;DB_CLOSE_DELAY=-1
spring.jpa.properties.javax.persistence.schema-generation.database.action
:
drop-and-create
src/main/resources/application.yml
0 → 100644
View file @
042aa73e
## Fichero de configuraci�n para carpooling
spring.datasource.url
:
jdbc:mysql://localhost:33060/carpooling
spring.datasource.username
:
carpooling
spring.datasource.password
:
secret
spring.jpa.properties.javax.persistence.schema-generation.database.action
:
drop-and-create
spring.data.jpa.repositories.bootstrap-mode
:
default
src/test/java/es/ujaen/dae/carpoolingdae/entidades/UsuarioTest.java
View file @
042aa73e
package
es
.
ujaen
.
dae
.
carpoolingdae
.
entidades
;
package
es
.
ujaen
.
dae
.
carpoolingdae
.
entidades
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertTrue
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
javax.validation.ConstraintViolation
;
import
javax.validation.ConstraintViolation
;
import
javax.validation.Validation
;
import
javax.validation.Validation
;
import
javax.validation.Validator
;
import
javax.validation.Validator
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.Test
;
import
org.assertj.core.api.Assertions
;
import
org.assertj.core.api.Assertions
;
...
@@ -15,11 +20,12 @@ public class UsuarioTest {
...
@@ -15,11 +20,12 @@ public class UsuarioTest {
public
UsuarioTest
()
{
public
UsuarioTest
()
{
}
}
@Test
private
Usuario
usuario
;
void
testValidacionUsuario
()
{
String
clave
=
"mariahm"
;
Usuario
usuario
=
new
Usuario
(
@BeforeEach
void
setUp
()
{
String
clave
=
"mariahm"
;
usuario
=
new
Usuario
(
"22334455H"
,
"22334455H"
,
"María"
,
"María"
,
"Hidalgo Morcillo"
,
"Hidalgo Morcillo"
,
...
@@ -27,7 +33,11 @@ public class UsuarioTest {
...
@@ -27,7 +33,11 @@ public class UsuarioTest {
"189273810"
,
"189273810"
,
"mhm@red.ujaen.es"
,
"mhm@red.ujaen.es"
,
clave
);
clave
);
}
@Test
void
testValidacionUsuario
()
{
Validator
validator
=
Validation
.
buildDefaultValidatorFactory
().
getValidator
();
Validator
validator
=
Validation
.
buildDefaultValidatorFactory
().
getValidator
();
Set
<
ConstraintViolation
<
Usuario
>>
violations
=
validator
.
validate
(
usuario
);
Set
<
ConstraintViolation
<
Usuario
>>
violations
=
validator
.
validate
(
usuario
);
...
@@ -36,19 +46,48 @@ public class UsuarioTest {
...
@@ -36,19 +46,48 @@ public class UsuarioTest {
@Test
@Test
void
testComprobacionClave
()
{
void
testComprobacionClave
()
{
String
clave
=
"mariahm"
;
Assertions
.
assertThat
(
usuario
.
claveValida
(
"mariahm"
)).
isTrue
();
}
Usuario
usuario
=
new
Usuario
(
@Test
"22334455H"
,
public
void
testAgregarViajeComoConductor
()
{
"María"
,
Viaje
viaje
=
new
Viaje
(
12345
,
"Hidalgo Morcillo"
,
"Origen"
,
LocalDate
.
of
(
1990
,
11
,
1
),
"Destino"
,
"189273810"
,
LocalDateTime
.
of
(
2023
,
9
,
30
,
8
,
0
),
"mhm@red.ujaen.es"
,
2
,
clave
);
50.0
);
usuario
.
agregarViajeComoConductor
(
viaje
);
assertTrue
(
usuario
.
viajesComoConductor
.
contains
(
viaje
));
}
Assertions
.
assertThat
(
usuario
.
claveValida
(
clave
)).
isTrue
();
@Test
public
void
testAceptarPasajero
()
{
Usuario
pasajero
=
new
Usuario
(
"87654321B"
,
"Pasajero"
,
"Apellido"
,
LocalDate
.
of
(
1995
,
5
,
5
),
"987654321"
,
"pasajero@example.com"
,
"clave"
);
Usuario
conductor
=
new
Usuario
(
"12345678A"
,
"Conductor"
,
"Apellido"
,
LocalDate
.
of
(
1990
,
1
,
1
),
"123456789"
,
"conductor@example.com"
,
"clave"
);
Viaje
viaje
=
new
Viaje
(
12345
,
"Origen"
,
"Destino"
,
LocalDateTime
.
of
(
2023
,
9
,
30
,
8
,
0
),
2
,
50.0
);
usuario
.
agregarViajeComoConductor
(
viaje
);
viaje
.
confirmarPasajero
(
pasajero
,
conductor
);
assertTrue
(
viaje
.
usuariosConfirmados
.
contains
(
pasajero
));
}
}
}
}
src/test/java/es/ujaen/dae/carpoolingdae/entidades/ViajeTest.java
View file @
042aa73e
package
es
.
ujaen
.
dae
.
carpoolingdae
.
entidades
;
package
es
.
ujaen
.
dae
.
carpoolingdae
.
entidades
;
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
.
assertTrue
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertTrue
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.Set
;
import
javax.validation.ConstraintViolation
;
import
javax.validation.Validation
;
import
javax.validation.Validator
;
import
org.assertj.core.api.Assertions
;
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
org.springframework.test.annotation.DirtiesContext
;
import
org.springframework.test.annotation.DirtiesContext.MethodMode
;
import
es.ujaen.dae.carpoolingdae.excepciones.
NoAceptaConductor
;
import
es.ujaen.dae.carpoolingdae.excepciones.
PlazaNoDisponible
;
import
es.ujaen.dae.carpoolingdae.servicios.SistemaCarpooling
;
import
es.ujaen.dae.carpoolingdae.servicios.SistemaCarpooling
;
public
class
ViajeTest
{
public
class
ViajeTest
{
@Autowired
@Autowired
SistemaCarpooling
sistemaCarpooling
;
SistemaCarpooling
sistemaCarpooling
;
public
ViajeTest
()
{
public
ViajeTest
()
{
}
}
private
Viaje
viaje
;
@BeforeEach
void
setUp
()
{
// Direccion direccion = new Direccion("España", "Jaen", "SanJuan", 19);
viaje
=
new
Viaje
(
12345
,
"Origen"
,
"Destino"
,
LocalDateTime
.
of
(
2023
,
9
,
30
,
8
,
0
),
2
,
50.0
);
}
@Test
void
testValidacionViaje
()
{
Validator
validator
=
Validation
.
buildDefaultValidatorFactory
().
getValidator
();
Set
<
ConstraintViolation
<
Viaje
>>
violations
=
validator
.
validate
(
viaje
);
Assertions
.
assertThat
(
violations
).
isEmpty
();
}
@Test
public
void
testEnviarSolicitudParaSerPasajero
()
{
Usuario
pasajero
=
new
Usuario
(
"87654321B"
,
"Pasajero"
,
"Apellido"
,
LocalDate
.
of
(
1995
,
5
,
5
),
"987654321"
,
"pasajero@example.com"
,
"clave"
);
viaje
.
enviarSolicitudParaSerPasajero
(
viaje
,
pasajero
);
assertTrue
(
viaje
.
usuariosSolicitantes
.
contains
(
pasajero
));
}
@Test
public
void
testEnviarSolicitudParaSerPasajeroNoDisponible
()
{
Usuario
pasajero
=
new
Usuario
(
"87654321B"
,
"Pasajero"
,
"Apellido"
,
LocalDate
.
of
(
1995
,
5
,
5
),
"987654321"
,
"pasajero@example.com"
,
"clave"
);
viaje
.
setPlazasDisponibles
(
0
);
assertThrows
(
PlazaNoDisponible
.
class
,
()
->
viaje
.
enviarSolicitudParaSerPasajero
(
viaje
,
pasajero
));
}
@Test
@Test
@DirtiesContext
(
methodMode
=
MethodMode
.
AFTER_METHOD
)
public
void
testConfirmarPasajero
()
{
public
void
testAceptarPasajero
()
{
Usuario
pasajero
=
new
Usuario
(
// Crear un usuario conductor
"87654321B"
,
"Pasajero"
,
"Apellido"
,
LocalDate
.
of
(
1995
,
5
,
5
),
"987654321"
,
"pasajero@example.com"
,
"clave"
);
Usuario
conductor
=
new
Usuario
(
Usuario
conductor
=
new
Usuario
(
"12345678A"
,
"12345678A"
,
"Conductor"
,
"Conductor"
,
...
@@ -33,8 +96,14 @@ public class ViajeTest {
...
@@ -33,8 +96,14 @@ public class ViajeTest {
"123456789"
,
"123456789"
,
"conductor@example.com"
,
"conductor@example.com"
,
"clave"
);
"clave"
);
viaje
.
getUsuariosSolicitantes
().
add
(
pasajero
);
viaje
.
confirmarPasajero
(
pasajero
,
conductor
);
assertTrue
(
viaje
.
usuariosConfirmados
.
contains
(
pasajero
));
assertFalse
(
viaje
.
usuariosSolicitantes
.
contains
(
pasajero
));
}
// Crear un usuario pasajero
@Test
public
void
testConfirmarPasajeroNoSolicitante
()
{
Usuario
pasajero
=
new
Usuario
(
Usuario
pasajero
=
new
Usuario
(
"87654321B"
,
"87654321B"
,
"Pasajero"
,
"Pasajero"
,
...
@@ -43,37 +112,38 @@ public class ViajeTest {
...
@@ -43,37 +112,38 @@ public class ViajeTest {
"987654321"
,
"987654321"
,
"pasajero@example.com"
,
"pasajero@example.com"
,
"clave"
);
"clave"
);
Usuario
conductor
=
new
Usuario
(
"12345678A"
,
"Conductor"
,
"Apellido"
,
LocalDate
.
of
(
1990
,
1
,
1
),
"123456789"
,
"conductor@example.com"
,
"clave"
);
assertThrows
(
PlazaNoDisponible
.
class
,
()
->
viaje
.
confirmarPasajero
(
pasajero
,
conductor
));
}
// Crear un viaje
@Test
Viaje
viaje
=
new
Viaje
(
public
void
testConfirmarPasajeroNoAvailableSeats
()
{
12345
,
Usuario
pasajero
=
new
Usuario
(
"Origen"
,
"87654321B"
,
"Destino"
,
"Pasajero"
,
LocalDateTime
.
of
(
2023
,
9
,
30
,
8
,
0
),
"Apellido"
,
2
,
LocalDate
.
of
(
1995
,
5
,
5
),
50.0
);
"987654321"
,
"pasajero@example.com"
,
"clave"
);
// Agregar el viaje al sistema
sistemaCarpooling
.
agregarViaje
(
conductor
,
viaje
);
// Enviar solicitud de viaje
sistemaCarpooling
.
enviarSolicitudViaje
(
viaje
,
pasajero
);
// Aceptar al pasajero en el viaje llamando a la función en Viaje
try
{
viaje
.
confirmarPasajero
(
pasajero
,
conductor
);
}
catch
(
NoAceptaConductor
e
)
{
// Manejar la excepción si el conductor no es el correcto (opcional)
e
.
printStackTrace
();
}
// Verificar que el pasajero está en la lista de usuarios confirmados en el viaje
Usuario
conductor
=
new
Usuario
(
assertTrue
(
viaje
.
usuariosConfirmados
.
contains
(
pasajero
));
"12345678A"
,
// Verificar que el pasajero ya no está en la lista de solicitantes del viaje
"Conductor"
,
assertFalse
(
viaje
.
usuariosSolicitantes
.
contains
(
pasajero
));
"Apellido"
,
LocalDate
.
of
(
1990
,
1
,
1
),
"123456789"
,
"conductor@example.com"
,
"clave"
);
viaje
.
setPlazasDisponibles
(
0
);
viaje
.
getUsuariosSolicitantes
().
add
(
pasajero
);
assertThrows
(
PlazaNoDisponible
.
class
,
()
->
viaje
.
confirmarPasajero
(
pasajero
,
conductor
));
}
}
}
}
src/test/java/es/ujaen/dae/carpoolingdae/servicios/SistemaCarpoolingTest.java
View file @
042aa73e
package
es
.
ujaen
.
dae
.
carpoolingdae
.
servicios
;
package
es
.
ujaen
.
dae
.
carpoolingdae
.
servicios
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertTrue
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.List
;
...
@@ -9,23 +11,22 @@ import java.util.Optional;
...
@@ -9,23 +11,22 @@ import java.util.Optional;
import
org.assertj.core.api.Assertions
;
import
org.assertj.core.api.Assertions
;
import
java.util.Set
;
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
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.annotation.DirtiesContext
;
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
;
import
javax.validation.ConstraintViolation
;
import
javax.validation.
Valida
tion
;
import
javax.validation.
ConstraintViolationExcep
tion
;
import
javax.validation.Validator
;
import
es.ujaen.dae.carpoolingdae.entidades.Usuario
;
import
es.ujaen.dae.carpoolingdae.entidades.Usuario
;
//import es.ujaen.dae.carpoolingdae.utils.CodificadorMd5;
//import es.ujaen.dae.carpoolingdae.utils.CodificadorMd5;
import
es.ujaen.dae.carpoolingdae.entidades.Viaje
;
import
es.ujaen.dae.carpoolingdae.entidades.Viaje
;
//@Disabled
//@Disabled
@SpringBootTest
(
classes
=
es
.
ujaen
.
dae
.
carpoolingdae
.
app
.
CarpoolingDaeApplication
.
class
)
@SpringBootTest
(
classes
=
es
.
ujaen
.
dae
.
carpoolingdae
.
CarpoolingDaeApplication
.
class
)
@ActiveProfiles
(
profiles
=
{
"test"
})
@ActiveProfiles
(
profiles
=
{
"test"
})
public
class
SistemaCarpoolingTest
{
public
class
SistemaCarpoolingTest
{
...
@@ -40,10 +41,11 @@ public class SistemaCarpoolingTest {
...
@@ -40,10 +41,11 @@ public class SistemaCarpoolingTest {
}
}
@Test
@Test
void
testValidacionUsuario
()
{
@DirtiesContext
(
methodMode
=
MethodMode
.
AFTER_METHOD
)
public
void
testAltaUsuarioInvalido
()
{
String
clave
=
"mariahm"
;
String
clave
=
"mariahm"
;
Usuario
usuario
=
new
Usuario
(
Usuario
usuario
=
new
Usuario
(
"22334455H"
,
"22334455H"
,
"María"
,
"María"
,
"Hidalgo Morcillo"
,
"Hidalgo Morcillo"
,
...
@@ -51,27 +53,10 @@ public class SistemaCarpoolingTest {
...
@@ -51,27 +53,10 @@ public class SistemaCarpoolingTest {
"189273810"
,
"189273810"
,
"mhm@red.ujaen.es"
,
"mhm@red.ujaen.es"
,
clave
);
clave
);
Validator
validator
=
Validation
.
buildDefaultValidatorFactory
().
getValidator
();
Set
<
ConstraintViolation
<
Usuario
>>
violations
=
validator
.
validate
(
usuario
);
Assertions
.
assertThat
(
violations
).
isEmpty
();
}
@Test
void
testComprobacionClave
()
{
Assertions
.
assertThatThrownBy
(()
->
sistemaCarpooling
.
altaUsuario
(
usuario
))
String
clave
=
"mariahm"
;
.
isInstanceOf
(
ConstraintViolationException
.
class
);
Usuario
usuario
=
new
Usuario
(
"22334455H"
,
"María"
,
"Hidalgo Morcillo"
,
LocalDate
.
of
(
1990
,
11
,
1
),
"189273810"
,
"mhm@red.ujaen.es"
,
clave
);
Assertions
.
assertThat
(
usuario
.
claveValida
(
clave
)).
isTrue
();
}
}
@Test
@Test
@DirtiesContext
(
methodMode
=
MethodMode
.
AFTER_METHOD
)
@DirtiesContext
(
methodMode
=
MethodMode
.
AFTER_METHOD
)
...
@@ -197,17 +182,53 @@ public class SistemaCarpoolingTest {
...
@@ -197,17 +182,53 @@ public class SistemaCarpoolingTest {
LocalDateTime
.
of
(
2023
,
9
,
30
,
8
,
0
),
LocalDateTime
.
of
(
2023
,
9
,
30
,
8
,
0
),
2
,
2
,
50.0
);
50.0
);
// Agregar el viaje al sistema
sistemaCarpooling
.
altaUsuario
(
conductor
);
sistemaCarpooling
.
agregarViaje
(
conductor
,
viaje
);
sistemaCarpooling
.
altaUsuario
(
pasajero
);
sistemaCarpooling
.
agregarViaje
(
conductor
,
viaje
);
// Enviar solicitud de viaje
sistemaCarpooling
.
enviarSolicitudViaje
(
viaje
,
pasajero
);
sistemaCarpooling
.
enviarSolicitudViaje
(
viaje
,
pasajero
);
assertTrue
(
viaje
.
getUsuariosSolicitantes
().
contains
(
pasajero
));
}
}
@Test
public
void
testAceptarPasajeroViaje
()
{
// Crear un usuario conductor
Usuario
conductor
=
new
Usuario
(
"12345678A"
,
"Conductor"
,
"Apellido"
,
LocalDate
.
of
(
1990
,
1
,
1
),
"123456789"
,
"conductor@example.com"
,
"clave"
);
}
// Crear un usuario pasajero
Usuario
pasajero
=
new
Usuario
(
"87654321B"
,
"Pasajero"
,
"Apellido"
,
LocalDate
.
of
(
1995
,
5
,
5
),
"987654321"
,
"pasajero@example.com"
,
"clave"
);
// Crear un viaje
Viaje
viaje
=
new
Viaje
(
12345
,
"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
.
getUsuariosConfirmados
().
contains
(
pasajero
));
}
}
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