Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Antonio Rueda
/
UJACoin
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
e479af94
authored
Nov 23, 2023
by
Antonio Rueda
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Eliminación de operaciones verCliente() y verTarjetas, accesibles desde el propio cliente
parent
d2d5a5d0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
36 deletions
src/main/java/es/ujaen/dae/ujacoin/servicios/ServicioUjaCoin.java
src/test/java/es/ujaen/dae/ujacoin/servicios/ServicioUjaCoinTest.java
src/main/java/es/ujaen/dae/ujacoin/servicios/ServicioUjaCoin.java
View file @
e479af94
...
@@ -44,10 +44,9 @@ public class ServicioUjaCoin {
...
@@ -44,10 +44,9 @@ public class ServicioUjaCoin {
@Autowired
@Autowired
RepositorioCuentas
repositorioCuentas
;
RepositorioCuentas
repositorioCuentas
;
@Autowired
@Autowired
RepositorioMovimientos
repositorioMovimientos
;
RepositorioMovimientos
repositorioMovimientos
;
public
ServicioUjaCoin
()
{
public
ServicioUjaCoin
()
{
}
}
...
@@ -58,14 +57,16 @@ public class ServicioUjaCoin {
...
@@ -58,14 +57,16 @@ public class ServicioUjaCoin {
* @return la cuenta asociada al cliente
* @return la cuenta asociada al cliente
*/
*/
public
Cuenta
altaCliente
(
@NotNull
@Valid
Cliente
cliente
)
{
public
Cuenta
altaCliente
(
@NotNull
@Valid
Cliente
cliente
)
{
if
(
repositorioClientes
.
buscar
(
cliente
.
getDni
()).
isPresent
())
{
Optional
<
Cliente
>
test
=
repositorioClientes
.
buscar
(
cliente
.
getDni
());
if
(
test
.
isPresent
())
{
throw
new
ClienteYaRegistrado
();
throw
new
ClienteYaRegistrado
();
}
}
// Crear y registrar cuenta
Cuenta
cuenta
=
new
Cuenta
(
generarNumCuenta
(),
cliente
);
Cuenta
cuenta
=
new
Cuenta
(
generarNumCuenta
(),
cliente
);
cliente
.
nuevaCuenta
(
cuenta
);
cliente
.
nuevaCuenta
(
cuenta
);
repositorioClientes
.
guardar
(
cliente
);
repositorioClientes
.
guardar
(
cliente
);
return
cuenta
;
return
cuenta
;
}
}
...
@@ -83,6 +84,18 @@ public class ServicioUjaCoin {
...
@@ -83,6 +84,18 @@ public class ServicioUjaCoin {
}
}
/**
/**
* Realiza un login de un cliente
* @param dni el DNI del cliente
* @param clave la clave de acceso
* @return el objeto de la clase Cliente asociado
*/
public
Optional
<
Cliente
>
verCliente
(
@NotBlank
String
dni
)
{
Optional
<
Cliente
>
clienteLogin
=
repositorioClientes
.
buscar
(
dni
);
return
clienteLogin
;
}
/**
* Crear una cuenta adicional para el cliente
* Crear una cuenta adicional para el cliente
* @param dni el DNI delcliente
* @param dni el DNI delcliente
* @return la cuenta creada
* @return la cuenta creada
...
@@ -102,6 +115,7 @@ public class ServicioUjaCoin {
...
@@ -102,6 +115,7 @@ public class ServicioUjaCoin {
* @param dni el DNI del cliente
* @param dni el DNI del cliente
* @param tarjeta la tarjeta a registrar
* @param tarjeta la tarjeta a registrar
*/
*/
// @Transactional
public
void
registrarTarjeta
(
@NotBlank
String
dni
,
@NotNull
@Valid
Tarjeta
tarjeta
)
{
public
void
registrarTarjeta
(
@NotBlank
String
dni
,
@NotNull
@Valid
Tarjeta
tarjeta
)
{
Cliente
cliente
=
repositorioClientes
.
buscar
(
dni
).
orElseThrow
(
ClienteNoRegistrado:
:
new
);
Cliente
cliente
=
repositorioClientes
.
buscar
(
dni
).
orElseThrow
(
ClienteNoRegistrado:
:
new
);
cliente
.
verTarjeta
(
tarjeta
.
getNum
()).
ifPresent
(
x
->
{
throw
new
TarjetaYaRegistrada
();
}
);
cliente
.
verTarjeta
(
tarjeta
.
getNum
()).
ifPresent
(
x
->
{
throw
new
TarjetaYaRegistrada
();
}
);
...
@@ -109,31 +123,7 @@ public class ServicioUjaCoin {
...
@@ -109,31 +123,7 @@ public class ServicioUjaCoin {
cliente
.
nuevaTarjeta
(
tarjeta
);
cliente
.
nuevaTarjeta
(
tarjeta
);
repositorioClientes
.
actualizar
(
cliente
);
repositorioClientes
.
actualizar
(
cliente
);
}
}
/**
* Devolver las cuentas de un cliente dado
* No es una operación imprescindible puesto que el cliente ya
* tiene la lista de cuentas
* @param dni el DNI del cliente
* @return la lista de cuentas
*/
public
List
<
Cuenta
>
verCuentas
(
@NotBlank
String
dni
)
{
Cliente
cliente
=
repositorioClientes
.
buscar
(
dni
).
orElseThrow
(
ClienteNoRegistrado:
:
new
);
return
cliente
.
verCuentas
();
}
/**
* Devolver las tarjetas registradas por el usuario. No es una operación
* realmente necesaria puesto que el cliente ya contiene esta lista
* @param dni el DNI del cliente
* @return la lista de tarjetas
*/
public
List
<
Tarjeta
>
verTarjetas
(
@NotBlank
String
dni
)
{
Cliente
cliente
=
repositorioClientes
.
buscar
(
dni
).
orElseThrow
(
ClienteNoRegistrado:
:
new
);
return
cliente
.
verTarjetas
();
// Relación eager, no hay que hacer nada
}
/**
/**
* Realizar un ingreso en cuenta a partir de una tarjeta
* Realizar un ingreso en cuenta a partir de una tarjeta
* @param numCuenta el número de la cuenta donde se ingresa el dinero
* @param numCuenta el número de la cuenta donde se ingresa el dinero
...
@@ -186,14 +176,14 @@ public class ServicioUjaCoin {
...
@@ -186,14 +176,14 @@ public class ServicioUjaCoin {
cuentaDestino
.
nuevoMovimiento
(
new
TransferenciaRecibida
(
cuentaOrigen
,
importe
));
cuentaDestino
.
nuevoMovimiento
(
new
TransferenciaRecibida
(
cuentaOrigen
,
importe
));
}
}
/**
/**
* Devolver la lista de movimientos de la cuenta, filtrada por fechas
* Devolver la lista de movimientos de la cuenta, filtrada por fechas
* @param numCuenta el número de la cuenta
* @param numCuenta el número de la cuenta
* @param fechaHoraDesde la fecha inicial
* @param fechaHoraDesde la fecha inicial
* @param fechaHoraHasta la fecha final
* @param fechaHoraHasta la fecha final
* @return la lista de los movimientos entre las fechas indicadas
* @return la lista de los movimientos entre las fechas indicadas
*/
*/
List
<
Movimiento
>
listarMovimientosCuentaDesdeHasta
(
@NotBlank
String
numCuenta
,
@Past
LocalDateTime
fechaHoraDesde
,
LocalDateTime
fechaHoraHasta
)
{
public
List
<
Movimiento
>
listarMovimientosCuentaDesdeHasta
(
@NotBlank
String
numCuenta
,
@Past
LocalDateTime
fechaHoraDesde
,
LocalDateTime
fechaHoraHasta
)
{
Cuenta
cuenta
=
repositorioCuentas
.
buscar
(
numCuenta
)
Cuenta
cuenta
=
repositorioCuentas
.
buscar
(
numCuenta
)
.
orElseThrow
(
CuentaNoRegistrada:
:
new
);
.
orElseThrow
(
CuentaNoRegistrada:
:
new
);
...
...
src/test/java/es/ujaen/dae/ujacoin/servicios/ServicioUjaCoinTest.java
View file @
e479af94
...
@@ -37,6 +37,7 @@ public class ServicioUjaCoinTest {
...
@@ -37,6 +37,7 @@ public class ServicioUjaCoinTest {
@Autowired
@Autowired
ServicioUjaCoin
servicioUjaCoin
;
ServicioUjaCoin
servicioUjaCoin
;
@Test
@Test
public
void
testAccesoServicioUjaCoin
()
{
public
void
testAccesoServicioUjaCoin
()
{
Assertions
.
assertThat
(
servicioUjaCoin
).
isNotNull
();
Assertions
.
assertThat
(
servicioUjaCoin
).
isNotNull
();
...
@@ -146,9 +147,11 @@ public class ServicioUjaCoinTest {
...
@@ -146,9 +147,11 @@ public class ServicioUjaCoinTest {
Tarjeta
tarjeta
=
new
Tarjeta
(
"4111111111111111"
,
cliente
.
getNombre
(),
LocalDate
.
of
(
2030
,
12
,
1
),
"365"
);
Tarjeta
tarjeta
=
new
Tarjeta
(
"4111111111111111"
,
cliente
.
getNombre
(),
LocalDate
.
of
(
2030
,
12
,
1
),
"365"
);
servicioUjaCoin
.
registrarTarjeta
(
clienteLogin
.
getDni
(),
tarjeta
);
servicioUjaCoin
.
registrarTarjeta
(
clienteLogin
.
getDni
(),
tarjeta
);
clienteLogin
.
nuevaTarjeta
(
tarjeta
);
clienteLogin
.
nuevaTarjeta
(
tarjeta
);
clienteLogin
=
null
;
// Obtener cuenta
// Obtener cuenta
List
<
Cuenta
>
cuentas
=
servicioUjaCoin
.
verCuentas
(
clienteLogin
.
getDni
());
clienteLogin
=
servicioUjaCoin
.
loginCliente
(
cliente
.
getDni
(),
"clave"
).
get
();
List
<
Cuenta
>
cuentas
=
clienteLogin
.
verCuentas
();
Assertions
.
assertThat
(
cuentas
).
hasSize
(
1
);
Assertions
.
assertThat
(
cuentas
).
hasSize
(
1
);
// Realizar ingreso y comprobar estado de la cuenta
// Realizar ingreso y comprobar estado de la cuenta
...
@@ -157,7 +160,7 @@ public class ServicioUjaCoinTest {
...
@@ -157,7 +160,7 @@ public class ServicioUjaCoinTest {
List
<
Movimiento
>
movimientos
=
servicioUjaCoin
.
listarMovimientosCuentaDesdeHasta
(
cuentas
.
get
(
0
).
getNum
(),
LocalDateTime
.
now
().
minusDays
(
1
),
LocalDateTime
.
now
().
plusHours
(
1
));
List
<
Movimiento
>
movimientos
=
servicioUjaCoin
.
listarMovimientosCuentaDesdeHasta
(
cuentas
.
get
(
0
).
getNum
(),
LocalDateTime
.
now
().
minusDays
(
1
),
LocalDateTime
.
now
().
plusHours
(
1
));
Assertions
.
assertThat
(
movimientos
).
hasSize
(
1
);
Assertions
.
assertThat
(
movimientos
).
hasSize
(
1
);
Assertions
.
assertThat
(
movimientos
.
get
(
0
)).
isInstanceOf
(
Ingreso
.
class
);
Assertions
.
assertThat
(
movimientos
.
get
(
0
)).
isInstanceOf
(
Ingreso
.
class
);
Assertions
.
assertThat
(
movimientos
.
get
(
0
).
getImporte
()).
isEqualTo
(
1000
);
Assertions
.
assertThat
(
movimientos
.
get
(
0
).
getImporte
()).
isEqualTo
(
1000
);
}
}
@Test
@Test
...
@@ -200,8 +203,8 @@ public class ServicioUjaCoinTest {
...
@@ -200,8 +203,8 @@ public class ServicioUjaCoinTest {
servicioUjaCoin
.
transferencia
(
cuentaOrigen
.
getNum
(),
cuentaDestino
.
getNum
(),
500
);
servicioUjaCoin
.
transferencia
(
cuentaOrigen
.
getNum
(),
cuentaDestino
.
getNum
(),
500
);
// Refrescar cuenta origen y destino
// Refrescar cuenta origen y destino
cuentaOrigen
=
servicioUjaCoin
.
verCuentas
(
cliente
.
getDni
()
).
get
(
0
);
cuentaOrigen
=
servicioUjaCoin
.
loginCliente
(
cliente
.
getDni
(),
"claveyyy"
).
get
().
verCuentas
(
).
get
(
0
);
cuentaDestino
=
servicioUjaCoin
.
verCuentas
(
cliente2
.
getDni
()
).
get
(
0
);
cuentaDestino
=
servicioUjaCoin
.
loginCliente
(
cliente2
.
getDni
(),
"clavezzz"
).
get
().
verCuentas
(
).
get
(
0
);
// Listar movimientos de la cuenta origen
// Listar movimientos de la cuenta origen
List
<
Movimiento
>
movimientos
=
servicioUjaCoin
.
listarMovimientosCuentaDesde
(
cuentaOrigen
.
getNum
(),
LocalDateTime
.
now
().
minusDays
(
1
));
List
<
Movimiento
>
movimientos
=
servicioUjaCoin
.
listarMovimientosCuentaDesde
(
cuentaOrigen
.
getNum
(),
LocalDateTime
.
now
().
minusDays
(
1
));
...
...
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