Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Antonio Rueda
/
reserva-hoteles
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
9c9c9ed8
authored
Oct 02, 2024
by
Antonio Rueda
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Renombrado de Cliente a Usuario
parent
deba9716
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
26 additions
and
21 deletions
src/main/java/es/ujaen/dae/reservahoteles/entidades/Reserva.java
src/main/java/es/ujaen/dae/reservahoteles/entidades/Cliente.java → src/main/java/es/ujaen/dae/reservahoteles/entidades/Usuario.java
src/main/java/es/ujaen/dae/reservahoteles/servicios/ServicioReservas.java
src/test/java/es/ujaen/dae/reservahoteles/entidades/TestHotel.java
src/test/java/es/ujaen/dae/reservahoteles/servicios/TestServicioReservas.java
src/main/java/es/ujaen/dae/reservahoteles/entidades/Reserva.java
View file @
9c9c9ed8
...
...
@@ -26,9 +26,9 @@ public class Reserva {
int
numHabDoble
;
@NotNull
Cliente
cliente
;
Usuario
cliente
;
public
Reserva
(
int
num
,
Cliente
cliente
,
LocalDate
fechaInicio
,
LocalDate
fechaFin
,
int
numHabSimple
,
int
numHabDoble
)
{
public
Reserva
(
int
num
,
Usuario
cliente
,
LocalDate
fechaInicio
,
LocalDate
fechaFin
,
int
numHabSimple
,
int
numHabDoble
)
{
this
.
num
=
num
;
this
.
cliente
=
cliente
;
this
.
fechaInicio
=
fechaInicio
;
...
...
@@ -53,6 +53,10 @@ public class Reserva {
return
numHabDoble
;
}
public
Usuario
cliente
()
{
return
cliente
;
}
/**
* Implementa la precondición para que una reserva sea válida:
* fecha de fin de reserva posterior a la de inicio y número de habitaciones
...
...
src/main/java/es/ujaen/dae/reservahoteles/entidades/
Cliente
.java
→
src/main/java/es/ujaen/dae/reservahoteles/entidades/
Usuario
.java
View file @
9c9c9ed8
...
...
@@ -9,7 +9,7 @@ import jakarta.validation.constraints.Pattern;
*
* @author ajrueda
*/
public
class
Cliente
{
public
class
Usuario
{
@NotBlank
String
nombre
;
...
...
@@ -25,7 +25,7 @@ public class Cliente {
@NotBlank
String
clave
;
public
Cliente
(
String
nombre
,
String
direccion
,
String
tlf
,
String
email
,
String
clave
)
{
public
Usuario
(
String
nombre
,
String
direccion
,
String
tlf
,
String
email
,
String
clave
)
{
this
.
nombre
=
nombre
;
this
.
direccion
=
direccion
;
this
.
tlf
=
tlf
;
...
...
src/main/java/es/ujaen/dae/reservahoteles/servicios/ServicioReservas.java
View file @
9c9c9ed8
...
...
@@ -2,7 +2,7 @@
package
es
.
ujaen
.
dae
.
reservahoteles
.
servicios
;
import
es.ujaen.dae.reservahoteles.excepciones.OperacionDeDireccion
;
import
es.ujaen.dae.reservahoteles.entidades.
Cliente
;
import
es.ujaen.dae.reservahoteles.entidades.
Usuario
;
import
es.ujaen.dae.reservahoteles.entidades.Hotel
;
import
es.ujaen.dae.reservahoteles.entidades.Reserva
;
import
es.ujaen.dae.reservahoteles.excepciones.ClienteYaRegistrado
;
...
...
@@ -29,25 +29,26 @@ import org.springframework.validation.annotation.Validated;
@Validated
public
class
ServicioReservas
{
Map
<
Integer
,
Hotel
>
hoteles
;
Map
<
String
,
Cliente
>
clientes
;
Map
<
String
,
Usuario
>
clientes
;
// Cliente especial de dirección
private
static
final
Usuario
direccion
=
new
Usuario
(
"direccion"
,
"-"
,
"670343332"
,
"direccion@hotelxyz.es"
,
"SeCrEtO"
);
private
static
int
nReserva
=
1
;
private
static
final
Cliente
direccion
=
new
Cliente
(
"direccion"
,
"-"
,
"670343332"
,
"direccion@hotelxyz.es"
,
"SeCrEtO"
);
public
ServicioReservas
()
{
hoteles
=
new
TreeMap
<>();
clientes
=
new
TreeMap
<>();
}
public
void
nuevoHotel
(
Cliente
direccion
,
@Valid
Hotel
hotel
)
{
public
void
nuevoHotel
(
Usuario
direccion
,
@Valid
Hotel
hotel
)
{
if
(!
direccion
.
email
().
equals
(
"direccion"
))
throw
new
OperacionDeDireccion
();
hoteles
.
put
(
hotel
.
id
(),
hotel
);
}
public
void
nuevoCliente
(
@Valid
Cliente
cliente
)
{
public
void
nuevoCliente
(
@Valid
Usuario
cliente
)
{
// Evitar que se cree un usuario con la cuenta de direccion
if
(
cliente
.
email
().
equals
(
direccion
.
email
()))
throw
new
ClienteYaRegistrado
();
...
...
@@ -58,7 +59,7 @@ public class ServicioReservas {
clientes
.
put
(
cliente
.
email
(),
cliente
);
}
public
Optional
<
Cliente
>
login
(
@Email
String
email
,
String
clave
)
{
public
Optional
<
Usuario
>
login
(
@Email
String
email
,
String
clave
)
{
// Equivalente al código de abajo pero más seguro y compacto
// return Optional.ofNullable(clientes.get(email))
// .filter(cliente -> cliente.clave().equals(clave));
...
...
@@ -67,7 +68,7 @@ public class ServicioReservas {
if
(
direccion
.
email
().
equals
(
email
)
&&
direccion
.
clave
().
equals
(
clave
))
return
Optional
.
of
(
direccion
);
Cliente
cliente
=
clientes
.
get
(
email
);
Usuario
cliente
=
clientes
.
get
(
email
);
return
(
cliente
!=
null
&&
cliente
.
clave
().
equals
(
clave
))
?
Optional
.
of
(
cliente
):
Optional
.
empty
();
}
...
...
@@ -135,7 +136,7 @@ public class ServicioReservas {
* @param numHabDoble número de habitaciones dobles solicitadas
* @return la reserva recien creada en caso de éxito
*/
public
Reserva
reserva
(
Cliente
cliente
,
Hotel
hotel
,
public
Reserva
reserva
(
Usuario
cliente
,
Hotel
hotel
,
LocalDate
fechaInicio
,
LocalDate
fechaFin
,
@PositiveOrZero
int
numHabSimple
,
@PositiveOrZero
int
numHabDoble
)
{
...
...
src/test/java/es/ujaen/dae/reservahoteles/entidades/TestHotel.java
View file @
9c9c9ed8
...
...
@@ -13,7 +13,7 @@ public class TestHotel {
@Test
void
testReserva
()
{
var
hotel
=
new
Hotel
(
1
,
"Gran Hotel Almería"
,
"Almería"
,
"Almería"
,
"04001"
,
25
,
50
,
100
,
180
);
var
cliente
=
new
Cliente
(
"Pedro"
,
"Jaén Jaén"
,
"611203025"
,
"pjaen@gmail.com"
,
"miClAvE"
);
var
cliente
=
new
Usuario
(
"Pedro"
,
"Jaén Jaén"
,
"611203025"
,
"pjaen@gmail.com"
,
"miClAvE"
);
var
reserva1
=
new
Reserva
(
1
,
cliente
,
LocalDate
.
now
().
plusDays
(
15
),
LocalDate
.
now
().
plusDays
(
17
),
0
,
1
);
hotel
.
nuevaReserva
(
reserva1
);
...
...
src/test/java/es/ujaen/dae/reservahoteles/servicios/TestServicioReservas.java
View file @
9c9c9ed8
package
es
.
ujaen
.
dae
.
reservahoteles
.
servicios
;
import
es.ujaen.dae.reservahoteles.entidades.
Cliente
;
import
es.ujaen.dae.reservahoteles.entidades.
Usuario
;
import
es.ujaen.dae.reservahoteles.entidades.Hotel
;
import
es.ujaen.dae.reservahoteles.excepciones.ClienteYaRegistrado
;
import
es.ujaen.dae.reservahoteles.excepciones.NoDisponibilidadReserva
;
...
...
@@ -30,12 +30,12 @@ public class TestServicioReservas {
@DirtiesContext
void
testNuevoClienteInvalido
()
{
// Test con teléfono e email inválidos
var
cliente
=
new
Cliente
(
"Pedro"
,
"Jaén Jaén"
,
"611225"
,
"pjaengmail.com"
,
"miClAvE"
);
var
cliente
=
new
Usuario
(
"Pedro"
,
"Jaén Jaén"
,
"611225"
,
"pjaengmail.com"
,
"miClAvE"
);
assertThatThrownBy
(()
->
servicio
.
nuevoCliente
(
cliente
)).
isInstanceOf
(
ConstraintViolationException
.
class
);
// Test de intento de creación repetido
var
cliente2
=
new
Cliente
(
"Pedro"
,
"Jaén Jaén"
,
"611301114"
,
"pjaen@gmail.com"
,
"miClAvE"
);
var
cliente2
=
new
Usuario
(
"Pedro"
,
"Jaén Jaén"
,
"611301114"
,
"pjaen@gmail.com"
,
"miClAvE"
);
servicio
.
nuevoCliente
(
cliente2
);
assertThatThrownBy
(()
->
servicio
.
nuevoCliente
(
cliente2
)).
isInstanceOf
(
ClienteYaRegistrado
.
class
);
}
...
...
@@ -43,7 +43,7 @@ public class TestServicioReservas {
@Test
@DirtiesContext
void
testLoginCliente
()
{
var
cliente
=
new
Cliente
(
"Pedro"
,
"Jaén Jaén"
,
"611203025"
,
"pjaen@gmail.com"
,
"miClAvE"
);
var
cliente
=
new
Usuario
(
"Pedro"
,
"Jaén Jaén"
,
"611203025"
,
"pjaen@gmail.com"
,
"miClAvE"
);
servicio
.
nuevoCliente
(
cliente
);
assertThat
(
servicio
.
login
(
"ppp@gmail.com"
,
"miClAvE"
)).
isEmpty
();
...
...
@@ -97,7 +97,7 @@ public class TestServicioReservas {
var
direccion
=
servicio
.
login
(
"direccion@hotelxyz.es"
,
"SeCrEtO"
).
get
();
servicio
.
nuevoHotel
(
direccion
,
new
Hotel
(
1
,
"Bed and Breakfast Almería"
,
"Almería"
,
"Almería"
,
"04001"
,
2
,
2
,
60
,
100
));
servicio
.
nuevoCliente
(
new
Cliente
(
"Pedro"
,
"Jaén Jaén"
,
"611203025"
,
"pjaen@gmail.com"
,
"miClAvE"
));
servicio
.
nuevoCliente
(
new
Usuario
(
"Pedro"
,
"Jaén Jaén"
,
"611203025"
,
"pjaen@gmail.com"
,
"miClAvE"
));
var
hotel
=
servicio
.
buscarHotel
(
"bed and breakfast"
,
"almeria"
).
getFirst
();
var
cliente
=
servicio
.
login
(
"pjaen@gmail.com"
,
"miClAvE"
).
get
();
...
...
@@ -115,7 +115,7 @@ public class TestServicioReservas {
var
direccion
=
servicio
.
login
(
"direccion@hotelxyz.es"
,
"SeCrEtO"
).
get
();
servicio
.
nuevoHotel
(
direccion
,
new
Hotel
(
1
,
"Bed and Breakfast Almería"
,
"Almería"
,
"Almería"
,
"04001"
,
2
,
2
,
60
,
100
));
servicio
.
nuevoCliente
(
new
Cliente
(
"Pedro"
,
"Jaén Jaén"
,
"611203025"
,
"pjaen@gmail.com"
,
"miClAvE"
));
servicio
.
nuevoCliente
(
new
Usuario
(
"Pedro"
,
"Jaén Jaén"
,
"611203025"
,
"pjaen@gmail.com"
,
"miClAvE"
));
var
hotel
=
servicio
.
buscarHotel
(
"bed and breakfast"
,
"almeria"
).
getFirst
();
var
cliente
=
servicio
.
login
(
"pjaen@gmail.com"
,
"miClAvE"
).
get
();
...
...
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