Commit 5f3b355a by Antonio Rueda

Creación de test para ingresos en cuenta.

parent ff9cfc94
......@@ -7,9 +7,14 @@ package es.ujaen.dae.ujacoin.controladoresREST;
import es.ujaen.dae.ujacoin.controladoresREST.DTO.DTOCliente;
import es.ujaen.dae.ujacoin.controladoresREST.DTO.DTOCuenta;
import es.ujaen.dae.ujacoin.controladoresREST.DTO.DTOMovimiento;
import es.ujaen.dae.ujacoin.controladoresREST.DTO.DTOTarjeta;
import es.ujaen.dae.ujacoin.entidades.Cliente;
import es.ujaen.dae.ujacoin.entidades.movimientos.Ingreso;
import es.ujaen.dae.ujacoin.entidades.movimientos.Movimiento;
import es.ujaen.dae.ujacoin.servicios.ServicioLimpiadoBaseDatos;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import javax.annotation.PostConstruct;
import org.assertj.core.api.Assertions;
......@@ -118,6 +123,40 @@ public class ControladorClientesTest {
Assertions.assertThat(tarjetaRecibida.getCvc()).isEqualTo(tarjeta.getCvc());
}
@Test
public void testIngreso() {
// Registrar cliente y realizar login
DTOCliente cliente = new DTOCliente(
"11995667D",
"Juan España España",
LocalDate.of(1990, 11, 1),
"Cl La Luz, 13 - Jaén",
"988674533",
"jee@gmail.com",
"clave");
DTOCuenta cuenta = restTemplate.postForEntity("/clientes", cliente, DTOCuenta.class).getBody();
DTOTarjeta tarjeta = new DTOTarjeta("4111111111111111", cliente.getNombre(), LocalDate.of(2022, 12, 1), "365");
restTemplate.postForEntity("/clientes/{dni}/tarjetas", tarjeta, DTOTarjeta.class, cliente.getDni());
// Realizar ingreso y comprobar estado de la cuenta
DTOMovimiento ingreso = DTOMovimiento.ingreso(tarjeta.getNum(), 1000);
ResponseEntity<Void> respuestaRegistroMovimiento = restTemplate.postForEntity("/clientes/{dni}/cuentas/{num}/movimientos", ingreso, Void.class, cliente.getDni(), cuenta.getNum());
Assertions.assertThat(respuestaRegistroMovimiento.getStatusCode()).isEqualTo(HttpStatus.CREATED);
// TODO: Comprobar saldo de la cuenta
ResponseEntity<DTOMovimiento[]> respuestaListadoMovimientos = restTemplate.getForEntity("/clientes/{dni}/cuentas/{num}/movimientos", DTOMovimiento[].class, cliente.getDni(), cuenta.getNum());
DTOMovimiento[] movimientos = respuestaListadoMovimientos.getBody();
Assertions.assertThat(movimientos).hasSize(1);
Assertions.assertThat(movimientos[0].getTipo()).isEqualTo(DTOMovimiento.INGRESO);
Assertions.assertThat(movimientos[0].getImporte()).isEqualTo(ingreso.getImporte());
}
@BeforeEach
void limpiarBaseDatos() {
limpiadorBaseDatos.limpiar();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment