Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Alvaro Ordóñez Romero
/
DAE-aha00026-aor00039
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
98af7fa1
authored
Nov 22, 2023
by
Alvaro Ordóñez Romero
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Modificaciones necesarias
parent
07ff0693
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
350 additions
and
140 deletions
src/main/java/com/carpooling/carpoolingaoraha/CarPoolingAorAhaApplication.java
src/main/java/com/carpooling/carpoolingaoraha/entidades/Solicitud.java
src/main/java/com/carpooling/carpoolingaoraha/entidades/Usuario.java
src/main/java/com/carpooling/carpoolingaoraha/repositorios/SolicitudRepository.java
src/main/java/com/carpooling/carpoolingaoraha/repositorios/UsuarioRepository.java
src/main/java/com/carpooling/carpoolingaoraha/repositorios/ViajeRepository.java
src/main/java/com/carpooling/carpoolingaoraha/services/ServicioCarPooling.java
src/main/java/com/carpooling/carpoolingaoraha/utils/CachedBCryptPasswordEncoder.java
src/main/resources/application.properties
src/test/java/com/carpooling/carpoolingaoraha/repositorios/ReservaRepositoryTest.java
src/test/java/com/carpooling/carpoolingaoraha/repositorios/UsuarioRepositoryTest.java
src/test/java/com/carpooling/carpoolingaoraha/repositorios/ViajeRepositoryTest.java
src/test/java/com/carpooling/carpoolingaoraha/services/ServicioCarPoolingTest.java
src/main/java/com/carpooling/carpoolingaoraha/CarPoolingAorAhaApplication.java
View file @
98af7fa1
...
...
@@ -15,7 +15,7 @@ import java.text.SimpleDateFormat;
public
class
CarPoolingAorAhaApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
CarPoolingAorAhaApplication
.
class
,
args
);
SistemaCarPooling
sis
=
new
SistemaCarPooling
();
/*
SistemaCarPooling sis = new SistemaCarPooling();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date yourDate = null;
try {
...
...
@@ -25,7 +25,7 @@ public class CarPoolingAorAhaApplication {
}
Usuario usuario = new Usuario("Alvaro", "Alonso", yourDate, "78162640S", 670988953, "aor00039@red.ujaen.es", "hola", Usuario.Rol.PASAJERO, sis);
ServicioCarPooling servicioCarPooling = new ServicioCarPooling();
servicioCarPooling
.
insertarUsuario
(
usuario
);
servicioCarPooling.insertarUsuario(usuario);
*/
}
...
...
src/main/java/com/carpooling/carpoolingaoraha/entidades/Solicitud.java
View file @
98af7fa1
...
...
@@ -17,6 +17,8 @@ import static com.carpooling.carpoolingaoraha.entidades.Usuario.*;
@Entity
@Table
(
name
=
"solicitudes"
)
public
class
Solicitud
{
@Transient
private
static
int
incrementaReserva
=
0
;
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
IDENTITY
)
...
...
@@ -35,6 +37,7 @@ public class Solicitud {
}
// Constructores, getters y setters
public
Solicitud
(
Reserva
reserva
,
Usuario
pasajero
)
{
this
.
id
=
(
long
)
incrementaReserva
++;
this
.
reserva
=
reserva
;
this
.
pasajero
=
pasajero
;
}
...
...
src/main/java/com/carpooling/carpoolingaoraha/entidades/Usuario.java
View file @
98af7fa1
...
...
@@ -65,7 +65,7 @@ public class Usuario {
private
ArrayList
<
Integer
>
viajesOfertados
;
@Max
(
5
)
double
puntuacionMedia
;
private
double
puntuacionMedia
;
@OneToMany
(
mappedBy
=
"pasajero"
,
cascade
=
CascadeType
.
ALL
)
private
List
<
Solicitud
>
solicitudesPendientes
;
...
...
@@ -185,6 +185,8 @@ public class Usuario {
this
.
rol
=
Rol
.
AMBOS
;
}
public
boolean
ofrecerViaje
(
String
origen
,
String
destino
,
Date
fechaSalida
,
int
nAsientos
,
int
precioAsiento
){
if
(
this
.
rol
==
Rol
.
CONDUCTOR
||
this
.
rol
==
Rol
.
AMBOS
)
{
//Crea una reserva
...
...
src/main/java/com/carpooling/carpoolingaoraha/repositorios/SolicitudRepository.java
0 → 100644
View file @
98af7fa1
package
com
.
carpooling
.
carpoolingaoraha
.
repositorios
;
import
com.carpooling.carpoolingaoraha.entidades.Solicitud
;
import
jakarta.persistence.EntityManager
;
import
jakarta.persistence.PersistenceContext
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Optional
;
@Repository
@Transactional
(
propagation
=
Propagation
.
REQUIRED
)
public
class
SolicitudRepository
{
@PersistenceContext
EntityManager
em
;
@Cacheable
(
"solicitudes"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
)
public
Optional
<
Solicitud
>
buscar
(
Long
id
){
return
Optional
.
ofNullable
(
em
.
find
(
Solicitud
.
class
,
id
));
}
@CacheEvict
(
value
=
"solicitudes"
,
key
=
"#solicitud.id"
)
public
void
guardar
(
Solicitud
S
){
em
.
persist
(
S
);
}
@CacheEvict
(
value
=
"solicitudes"
,
key
=
"#solicitud.id"
)
public
void
actualizar
(
Solicitud
u
){
em
.
merge
(
u
);
}
}
\ No newline at end of file
src/main/java/com/carpooling/carpoolingaoraha/repositorios/UsuarioRepository.java
View file @
98af7fa1
...
...
@@ -31,6 +31,12 @@ public class UsuarioRepository {
return
Optional
.
ofNullable
(
em
.
find
(
Usuario
.
class
,
DNI
));
}
@Cacheable
(
"usuarios"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
)
public
Optional
<
Usuario
>
buscarEmail
(
String
email
){
return
Optional
.
ofNullable
(
em
.
find
(
Usuario
.
class
,
email
));
}
@CacheEvict
(
value
=
"usuarios"
,
key
=
"#usuario.DNI"
)
public
void
guardar
(
Usuario
usuario
){
em
.
persist
(
usuario
);
...
...
src/main/java/com/carpooling/carpoolingaoraha/repositorios/ViajeRepository.java
View file @
98af7fa1
...
...
@@ -21,7 +21,7 @@ public class ViajeRepository{
@Cacheable
(
"viajes"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
)
public
Optional
<
Viaje
>
buscar
(
String
idReserva
){
public
Optional
<
Viaje
>
buscar
(
int
idReserva
){
return
Optional
.
ofNullable
(
em
.
find
(
Viaje
.
class
,
idReserva
));
}
...
...
@@ -30,7 +30,7 @@ public class ViajeRepository{
em
.
persist
(
viaje
);
}
@CacheEvict
(
value
=
"viajes"
,
key
=
"#viaje.
DNI
"
)
@CacheEvict
(
value
=
"viajes"
,
key
=
"#viaje.
idViaje
"
)
public
void
actualizar
(
Viaje
u
){
em
.
merge
(
u
);
}
...
...
src/main/java/com/carpooling/carpoolingaoraha/services/ServicioCarPooling.java
View file @
98af7fa1
package
com
.
carpooling
.
carpoolingaoraha
.
services
;
import
com.carpooling.carpoolingaoraha.entidades.Reserva
;
import
com.carpooling.carpoolingaoraha.entidades.Solicitud
;
import
com.carpooling.carpoolingaoraha.entidades.Usuario
;
import
com.carpooling.carpoolingaoraha.excepciones.ReservaNoRegistrada
;
import
com.carpooling.carpoolingaoraha.excepciones.UsuarioNoRegistrado
;
import
com.carpooling.carpoolingaoraha.excepciones.UsuarioYaRegistrado
;
import
com.carpooling.carpoolingaoraha.entidades.Viaje
;
import
com.carpooling.carpoolingaoraha.excepciones.*
;
import
com.carpooling.carpoolingaoraha.repositorios.ReservaRepository
;
import
com.carpooling.carpoolingaoraha.repositorios.UsuarioRepository
;
import
com.carpooling.carpoolingaoraha.repositorios.ViajeRepository
;
...
...
@@ -51,14 +51,71 @@ public class ServicioCarPooling {
return
usuario
;
}
public
void
insertarUsuario
(
@NotNull
@Valid
Usuario
u
){
repositorioUsuario
.
guardar
(
u
);
public
Usuario
modificarDatosUsuario
(
@NotNull
@Valid
Usuario
usuarioModificado
)
{
// Buscar el usuario existente por su DNI
Optional
<
Usuario
>
usuarioExistente
=
repositorioUsuario
.
buscar
(
usuarioModificado
.
getDNI
());
if
(
usuarioExistente
.
isPresent
())
{
Usuario
usuarioActual
=
usuarioExistente
.
get
();
// Modificar los campos deseados
usuarioActual
.
setNombre
(
usuarioModificado
.
getNombre
());
usuarioActual
.
setApellidos
(
usuarioModificado
.
getApellidos
());
usuarioActual
.
setTelefono
(
usuarioModificado
.
getTelefono
());
usuarioActual
.
setEmail
(
usuarioModificado
.
getEmail
());
usuarioActual
.
setDNI
(
usuarioModificado
.
getDNI
());
// Añade más campos según sea necesario
// Guardar el usuario actualizado
repositorioUsuario
.
actualizar
(
usuarioActual
);
return
usuarioActual
;
}
else
{
// Si no se encuentra el usuario, podrías lanzar una excepción o manejarlo de otra manera según tus necesidades.
throw
new
UsuarioNoRegistrado
();
}
}
public
Viaje
modificarDatosViaje
(
@NotNull
@Valid
Viaje
viajeModificado
)
{
// Buscar el viaje existente por su ID
Optional
<
Viaje
>
viajeExistente
=
repositorioViajes
.
buscar
(
viajeModificado
.
getIdViaje
());
if
(
viajeExistente
.
isPresent
())
{
Viaje
viajeActual
=
viajeExistente
.
get
();
// Modificar los campos deseados
viajeActual
.
setOrigen
(
viajeModificado
.
getOrigen
());
viajeActual
.
setDestino
(
viajeModificado
.
getDestino
());
viajeActual
.
setFechaSalida
(
viajeModificado
.
getFechaSalida
());
viajeActual
.
setnAsientos
(
viajeModificado
.
getnAsientos
());
viajeActual
.
setPrecioAsiento
(
viajeModificado
.
getPrecioAsiento
());
// Añade más campos según sea necesario
// Guardar el viaje actualizado
repositorioViajes
.
actualizar
(
viajeActual
);
return
viajeActual
;
}
else
{
// Si no se encuentra el viaje, podrías lanzar una excepción o manejarlo de otra manera según tus necesidades.
throw
new
ViajeNoRegistrado
();
}
}
public
Viaje
altaViaje
(
@NotNull
@Valid
Viaje
v
)
{
Optional
<
Viaje
>
test
=
repositorioViajes
.
buscar
(
v
.
getIdViaje
());
if
(
test
.
isPresent
())
{
throw
new
ViajeYaRegistrado
();
}
repositorioViajes
.
guardar
(
v
);
return
v
;
}
@Transactional
public
Optional
<
Usuario
>
loginUsuario
(
@NotBlank
String
dni
,
@NotBlank
String
clave
)
{
Optional
<
Usuario
>
usuarioLogin
=
repositorioUsuario
.
buscar
(
dni
)
.
filter
((
usuario
)
->
usuario
.
claveValida
(
clave
));
public
Optional
<
Usuario
>
loginUsuario
(
@NotNull
@Valid
Usuario
usuariop
)
{
Optional
<
Usuario
>
usuarioLogin
=
repositorioUsuario
.
buscar
(
usuariop
.
getDNI
()).
filter
((
usuario
)
->
usuario
.
claveValida
(
usuariop
.
getClaveAcceso
()));
// Asegurarnos de que se devuelve el cliente con los datos precargados
//usuarioLogin.ifPresent(u -> u.verCuentas().size());
...
...
src/main/java/com/carpooling/carpoolingaoraha/utils/CachedBCryptPasswordEncoder.java
0 → 100644
View file @
98af7fa1
package
com
.
carpooling
.
carpoolingaoraha
.
utils
;
import
org.aspectj.weaver.bcel.BcelAnnotation
;
import
org.springframework.cache.Cache
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
public
class
CachedBCryptPasswordEncoder
extends
BCryptPasswordEncoder
{
Cache
cache
;
public
CachedBCryptPasswordEncoder
(
Cache
cache
)
{
super
();
this
.
cache
=
cache
;
}
public
CachedBCryptPasswordEncoder
(
Cache
cache
,
int
strength
)
{
super
(
strength
);
this
.
cache
=
cache
;
}
@Override
public
boolean
matches
(
CharSequence
rawPassword
,
String
encodedPassword
)
{
CharSequence
cachedMatch
=
cache
.
get
(
encodedPassword
,
CharSequence
.
class
);
if
(
cachedMatch
!=
null
&&
cachedMatch
.
equals
(
rawPassword
))
{
return
true
;
}
boolean
result
=
super
.
matches
(
rawPassword
,
encodedPassword
);
if
(
result
==
true
)
{
cache
.
put
(
encodedPassword
,
rawPassword
);
}
return
result
;
}
}
src/main/resources/application.properties
View file @
98af7fa1
...
...
@@ -3,3 +3,4 @@ spring.datasource.username=root
spring.datasource.password
=
root
spring.jpa.hibernate.ddl-auto
=
update
spring.profiles.active
=
test
spring.jpa.properties.javax.persistence.schema-generation.database.action
:
drop-and-create
src/test/java/com/carpooling/carpoolingaoraha/repositorios/ReservaRepositoryTest.java
deleted
100644 → 0
View file @
07ff0693
package
com
.
carpooling
.
carpoolingaoraha
.
repositorios
;
import
com.carpooling.carpoolingaoraha.entidades.Reserva
;
import
com.carpooling.carpoolingaoraha.entidades.Usuario
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase
;
import
org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Propagation
;
import
java.util.Optional
;
@RunWith
(
SpringRunner
.
class
)
@DataJpaTest
@AutoConfigureTestDatabase
(
replace
=
AutoConfigureTestDatabase
.
Replace
.
NONE
)
public
class
ReservaRepositoryTest
{
@Autowired
(
required
=
true
)
private
ReservaRepository
repositorio
;
@Test
@Transactional
(
propagation
=
Propagation
.
NOT_SUPPORTED
)
public
void
testInsertReserva
(){
Reserva
reserva
=
new
Reserva
();
reserva
.
setNumPasajeros
(
2
);
reserva
.
setIdReserva
(
1
);
repositorio
.
guardar
(
reserva
);
Optional
<
Reserva
>
reservaGuardada
=
repositorio
.
buscar
(
1
);
Assert
.
assertNotNull
(
reservaGuardada
);
Assert
.
assertEquals
(
2
,
reservaGuardada
.
get
().
getNumPasajeros
());
Assert
.
assertEquals
(
1
,
reservaGuardada
.
get
().
getIdReserva
());
}
}
src/test/java/com/carpooling/carpoolingaoraha/repositorios/UsuarioRepositoryTest.java
deleted
100644 → 0
View file @
07ff0693
package
com
.
carpooling
.
carpoolingaoraha
.
repositorios
;
import
com.carpooling.carpoolingaoraha.entidades.Usuario
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase
;
import
org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Optional
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
@RunWith
(
SpringRunner
.
class
)
@DataJpaTest
@AutoConfigureTestDatabase
(
replace
=
AutoConfigureTestDatabase
.
Replace
.
NONE
)
public
class
UsuarioRepositoryTest
{
@Autowired
(
required
=
true
)
private
UsuarioRepository
repositorio
;
@Test
@Transactional
(
propagation
=
Propagation
.
NOT_SUPPORTED
)
public
void
testInsertUsuario
(){
Usuario
usuario
=
new
Usuario
();
usuario
.
setNombre
(
"Fran"
);
usuario
.
setDNI
(
"45678900E"
);
repositorio
.
guardar
(
usuario
);
Optional
<
Usuario
>
usuarioGuardado
=
repositorio
.
buscar
(
"45678900E"
);
Assert
.
assertNotNull
(
usuarioGuardado
);
Assert
.
assertEquals
(
"Fran"
,
usuarioGuardado
.
get
().
getNombre
());
Assert
.
assertEquals
(
"45678900E"
,
usuarioGuardado
.
get
().
getDNI
());
}
}
src/test/java/com/carpooling/carpoolingaoraha/repositorios/ViajeRepositoryTest.java
deleted
100644 → 0
View file @
07ff0693
package
com
.
carpooling
.
carpoolingaoraha
.
repositorios
;
import
com.carpooling.carpoolingaoraha.entidades.Usuario
;
import
com.carpooling.carpoolingaoraha.entidades.Viaje
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase
;
import
org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Optional
;
@RunWith
(
SpringRunner
.
class
)
@DataJpaTest
@AutoConfigureTestDatabase
(
replace
=
AutoConfigureTestDatabase
.
Replace
.
NONE
)
public
class
ViajeRepositoryTest
{
@Autowired
(
required
=
true
)
private
ViajeRepository
repository
;
@Test
@Transactional
(
propagation
=
Propagation
.
NOT_SUPPORTED
)
public
void
testInsertViaje
(){
Viaje
viaje
=
new
Viaje
();
viaje
.
setDestino
(
"Canarias"
);
int
idViaje
=
1
;
viaje
.
setIdViaje
(
idViaje
);
repository
.
guardar
(
viaje
);
Optional
<
Viaje
>
viajeGuardado
=
repository
.
buscar
(
String
.
valueOf
(
idViaje
));
Assert
.
assertNotNull
(
viajeGuardado
);
Assert
.
assertEquals
(
idViaje
,
viajeGuardado
.
get
().
getIdViaje
());
Assert
.
assertEquals
(
"Canarias"
,
viajeGuardado
.
get
().
getDestino
());
}
}
src/test/java/com/carpooling/carpoolingaoraha/services/ServicioCarPoolingTest.java
View file @
98af7fa1
...
...
@@ -2,13 +2,23 @@ package com.carpooling.carpoolingaoraha.services;
import
com.carpooling.carpoolingaoraha.entidades.SistemaCarPooling
;
import
com.carpooling.carpoolingaoraha.entidades.Usuario.*
;
import
com.carpooling.carpoolingaoraha.entidades.Usuario
;
import
com.carpooling.carpoolingaoraha.repositorios.ReservaRepository
;
import
com.carpooling.carpoolingaoraha.repositorios.UsuarioRepository
;
import
org.assertj.core.api.Assertions
;
import
org.junit.Assert
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
javax.validation.ConstraintViolationException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Optional
;
import
java.util.Random
;
import
static
org
.
junit
.
Assert
.*;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertTrue
;
@SpringBootTest
(
classes
=
com
.
carpooling
.
carpoolingaoraha
.
CarPoolingAorAhaApplication
.
class
)
...
...
@@ -17,12 +27,196 @@ public class ServicioCarPoolingTest
@Autowired
ServicioCarPooling
servicio
;
int
idReserva
=
24
;
@Test
public
void
testAltaUsuario
()
throws
ParseException
{
int
length
=
9
;
String
characters
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
;
// Inicializar el generador de números aleatorios
Random
random
=
new
Random
();
StringBuilder
sb
=
new
StringBuilder
(
length
);
// Generar la cadena aleatoria
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
int
randomIndex
=
random
.
nextInt
(
characters
.
length
());
char
randomChar
=
characters
.
charAt
(
randomIndex
);
sb
.
append
(
randomChar
);
}
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
SistemaCarPooling
sis
=
new
SistemaCarPooling
();
java
.
util
.
Date
yourDate
=
sdf
.
parse
(
"1992-07-26"
);
Usuario
usuario
=
new
Usuario
(
"Alvaro"
,
"Alonso"
,
yourDate
,
"78162640S"
,
670988953
,
"aor00039@red.ujaen.es"
,
"hola"
,
Rol
.
PASAJERO
,
sis
);
Usuario
usuario
=
new
Usuario
(
"Perico"
,
"Alonso"
,
yourDate
,
sb
.
toString
(),
670988953
,
"aor00039@red.ujaen.es"
,
"hola"
,
Rol
.
PASAJERO
,
sis
);
Usuario
usuarioGuardado
=
servicio
.
altaCliente
(
usuario
);
assertNotNull
(
usuarioGuardado
);
// Validar propiedades específicas del usuario guardado
assertEquals
(
"Perico"
,
usuarioGuardado
.
getNombre
());
assertEquals
(
"Alonso"
,
usuarioGuardado
.
getApellidos
());
assertEquals
(
sb
.
toString
(),
usuarioGuardado
.
getDNI
());
assertEquals
(
670988953
,
usuarioGuardado
.
getTelefono
());
assertEquals
(
"aor00039@red.ujaen.es"
,
usuarioGuardado
.
getEmail
());
assertEquals
(
"hola"
,
usuarioGuardado
.
getClaveAcceso
());
assertEquals
(
Rol
.
PASAJERO
,
usuarioGuardado
.
getRol
());
// Validar que la fecha de nacimiento es la esperada
SimpleDateFormat
tt
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
java
.
util
.
Date
expectedDate
=
tt
.
parse
(
"1992-07-26"
);
assertEquals
(
expectedDate
,
usuarioGuardado
.
getFNac
());
}
@Test
public
void
testModificarDatosUsuario
()
throws
ParseException
{
// Crear un usuario para modificar
int
length
=
9
;
String
characters
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
;
Random
random
=
new
Random
();
StringBuilder
sb
=
new
StringBuilder
(
length
);
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
int
randomIndex
=
random
.
nextInt
(
characters
.
length
());
char
randomChar
=
characters
.
charAt
(
randomIndex
);
sb
.
append
(
randomChar
);
}
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
java
.
util
.
Date
yourDate
=
sdf
.
parse
(
"1992-07-26"
);
Usuario
usuario
=
new
Usuario
(
"Perico"
,
"Alonso"
,
yourDate
,
sb
.
toString
(),
670988953
,
"aor00039@red.ujaen.es"
,
"hola"
,
Rol
.
PASAJERO
,
new
SistemaCarPooling
());
servicio
.
altaCliente
(
usuario
);
// Modificar los datos del usuario
usuario
.
setNombre
(
"NuevoNombre"
);
usuario
.
setApellidos
(
"NuevosApellidos"
);
usuario
.
setTelefono
(
123456789
);
usuario
.
setEmail
(
"nuevoemail@example.com"
);
Usuario
usuarioModificado
=
servicio
.
modificarDatosUsuario
(
usuario
);
assertNotNull
(
usuarioModificado
);
// Validar que los datos se han modificado correctamente
assertEquals
(
"NuevoNombre"
,
usuarioModificado
.
getNombre
());
assertEquals
(
"NuevosApellidos"
,
usuarioModificado
.
getApellidos
());
assertEquals
(
123456789
,
usuarioModificado
.
getTelefono
());
assertEquals
(
"nuevoemail@example.com"
,
usuarioModificado
.
getEmail
());
}
/*@Test
public void testLoginUsuario() throws ParseException {
int length = 9;
String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
// Inicializar el generador de números aleatorios
Random random = new Random();
StringBuilder sb = new StringBuilder(length);
// Generar la cadena aleatoria
for (int i = 0; i < length; i++) {
int randomIndex = random.nextInt(characters.length());
char randomChar = characters.charAt(randomIndex);
sb.append(randomChar);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SistemaCarPooling sis = new SistemaCarPooling();
java.util.Date yourDate = sdf.parse("1992-07-26");
Usuario usuario = new Usuario("Ordin", "Alonso", yourDate, sb.toString(), 670988953, "aor00039@red.ujaen.es", "hola", Rol.PASAJERO, sis);
Usuario usuarioGuardado = servicio.altaCliente(usuario);
Optional<Usuario> usuario1 = servicio.loginUsuario(usuarioGuardado);
Assertions.assertThat(usuario1.isPresent()).isTrue();
}*/
@Test
public
void
testAltaViaje
()
throws
ParseException
{
Random
r
=
new
Random
();
int
idReserva
=
r
.
nextInt
(
10000000
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
SistemaCarPooling
sis
=
new
SistemaCarPooling
();
java
.
util
.
Date
yourDate
=
sdf
.
parse
(
"2025-12-03"
);
Viaje
v
=
new
Viaje
(
"origen"
,
"destino"
,
yourDate
,
3
,
20
,
idReserva
);
Viaje
viajePrueba
=
servicio
.
altaViaje
(
v
);
assertNotNull
(
viajePrueba
);
// Validar propiedades específicas del viaje guardado
assertEquals
(
"origen"
,
viajePrueba
.
getOrigen
());
assertEquals
(
"destino"
,
viajePrueba
.
getDestino
());
// Validar que la fecha del viaje es la esperada
SimpleDateFormat
oo
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
java
.
util
.
Date
expectedDate
=
oo
.
parse
(
"2025-12-03"
);
assertEquals
(
expectedDate
,
viajePrueba
.
getFechaSalida
());
assertEquals
(
3
,
viajePrueba
.
getnAsientos
());
assertEquals
(
20
,
viajePrueba
.
getPrecioAsiento
());
assertEquals
(
idReserva
,
viajePrueba
.
getIdViaje
());
}
@Test
public
void
testModificarDatosViaje
()
throws
ParseException
{
// Crear un viaje para ser modificado
Random
r
=
new
Random
();
int
idViaje
=
r
.
nextInt
(
10000000
);
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
java
.
util
.
Date
yourDate
=
sdf
.
parse
(
"2025-12-03"
);
Viaje
viajeOriginal
=
new
Viaje
(
"origenOriginal"
,
"destinoOriginal"
,
yourDate
,
3
,
20
,
idViaje
);
servicio
.
altaViaje
(
viajeOriginal
);
// Crear un nuevo viaje con los datos modificados
Viaje
viajeModificado
=
new
Viaje
(
"origenModificado"
,
"destinoModificado"
,
yourDate
,
5
,
25
,
idViaje
);
// Modificar el viaje y obtener el resultado
Viaje
viajeActualizado
=
servicio
.
modificarDatosViaje
(
viajeModificado
);
// Verificar que el viaje actualizado no es nulo
assertNotNull
(
viajeActualizado
);
// Verificar que las propiedades específicas del viaje se han modificado correctamente
assertEquals
(
"origenModificado"
,
viajeActualizado
.
getOrigen
());
assertEquals
(
"destinoModificado"
,
viajeActualizado
.
getDestino
());
assertEquals
(
5
,
viajeActualizado
.
getnAsientos
());
assertEquals
(
25
,
viajeActualizado
.
getPrecioAsiento
());
assertEquals
(
idViaje
,
viajeActualizado
.
getIdViaje
());
}
@Test
public
void
testCrearReservaUsuarioRegistrado
()
{
String
dni
=
"12345678F"
;
Usuario
usuario
=
new
Usuario
();
usuario
.
setDNI
(
dni
);
servicio
.
altaCliente
(
usuario
);
Reserva
reserva
=
servicio
.
crearReserva
(
dni
);
assertNotNull
(
reserva
);
}
@Test
public
void
testCrearSolicitud
()
{
String
dni
=
"12345778F"
;
Usuario
usuario
=
new
Usuario
();
usuario
.
setDNI
(
dni
);
servicio
.
altaCliente
(
usuario
);
Reserva
reserva
=
servicio
.
crearReserva
(
dni
);
Solicitud
s
=
servicio
.
crearSolicitud
(
dni
,
reserva
.
getIdReserva
());
assertNotNull
(
s
);
}
}
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