Commit 119c7e8a by Adrian

Commit inicial

parents
/target/
!.mvn/wrapper/maven-wrapper.jar
/nbproject/
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>es.ujaen.dae</groupId>
<artifactId>UjaCoin</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.app;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
*
* @author Adrian
*/
/** Clase principal de arranque de la aplicación basada en SpringBoot */
@SpringBootApplication(scanBasePackages = "es.ujaen.dae.ujacoin.beans")
public class AppUjaBank {
public static void main(String[] args) {
// No necesitamos el contexto de aplicación aquí,
// así que puede usarse un arranque simplificado
SpringApplication.run(AppUjaBank.class, args);
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.beans;
import es.ujaen.dae.ujacoin.entidades.Cliente;
import es.ujaen.dae.ujacoin.entidades.Cuenta;
import es.ujaen.dae.ujacoin.entidades.Tarjeta;
import es.ujaen.dae.ujacoin.interfaces.ServicioUjaBank;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import org.springframework.stereotype.Component;
/**
* Clase controlador principal del sistema
*/
@Component
public class ServicioUjaBankImpl implements ServicioUjaBank {
/**
* Mapa para guardar los clientes usando el dni como clave
*/
private Map<String, Cliente> clientes;
/**
* Mapa para guardar las cuentas usando el numero como clave
*/
private Map<String, Cuenta> cuentas;
private Random rand = new Random();
public ServicioUjaBankImpl() {
clientes = new HashMap<>();
cuentas = new HashMap<>();
}
@Override
public void altaCliente(Cliente cliente) {
Cuenta cuentaNueva = new Cuenta(generadorCuentasNuevas(), cliente);
cliente.asignarCuenta(cuentaNueva);
clientes.put(cliente.getDni(), cliente);
cuentas.put(cuentaNueva.getNumero(), cuentaNueva);
cuentaNueva.setTitular(cliente);
cliente.asignarCuenta(cuentaNueva);
}
@Override
public boolean loginCliente(String dni, String clave) {
return clientes.containsKey(dni) && clientes.get(dni).claveVálida(clave);
}
@Override
public ArrayList<Tarjeta> listaTarjetas(String dni) {
return new ArrayList<>(clientes.get(dni).getTarjetasAsociadas().values());
}
@Override
public ArrayList<Cuenta> listaCuentas(String dni) {
return new ArrayList<>(clientes.get(dni).getCuentasAsociadas().values());
}
@Override
public Cuenta verCuenta(String numero) {
return cuentas.get(numero);
}
@Override
public void ingreso(Cuenta cuenta, Tarjeta tarjeta, float importe) {
//Llamada al sistema de gestión de tarjetas
cuenta.ingreso(tarjeta, importe);
}
@Override
public void reintegro(Cuenta cuenta, Tarjeta tarjeta, float importe) {
cuenta.reintegro(tarjeta, importe);
//Llamada al sistema de gestión de tarjetas
}
@Override
public void transferencia(Cuenta cuentaOrigen, Cuenta cuentaDestino, float importe) {
cuentaOrigen.transferenciaA(cuentaDestino, importe);
cuentaDestino.transferenciaDesde(cuentaOrigen, importe);
}
private String generadorCuentasNuevas() {
boolean numeroValido = false;
String numeroCadena;
do {
int numero = rand.nextInt(99999999);
numeroCadena = String.valueOf(numero);
for (int i = numeroCadena.length(); i < 8; i++) {
numeroCadena = "0".concat(numeroCadena);
}
int codigo = 0;
for (int i = 0; i < 8; i++) {
codigo += Integer.parseInt(numeroCadena.substring(i, i + 1));
}
codigo = codigo % 100;
if (codigo < 10) {
numeroCadena = numeroCadena.concat("0").concat(String.valueOf(codigo));
} else {
numeroCadena = numeroCadena.concat(String.valueOf(codigo));
}
if (!cuentas.containsKey(numeroCadena)) {
numeroValido = true;
}
} while (!numeroValido);
return numeroCadena;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.entidades;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.Map;
/**
* Clase cliente de UjaBank
*
* @author Adrian
*/
public class Cliente {
/**Dni del cliente*/
private String dni;
/**Nombre del cliente*/
private String nombre;
/**Fecha de nacimiento del cliente*/
private LocalDate fechaNacimiento;
/**Dirección del cliente*/
private String direccion;
/**Teléfono del cliente*/
private String telefono;
/**Email del cliente*/
private String email;
/**Contraseña del cliente*/
private String clave;
/**Cuentas de las que es titular*/
private Map<String, Cuenta> cuentasAsociadas;
/**Cuentas de las que es titular*/
private Map<String, Tarjeta> tarjetasAsociadas;
public Cliente(String dni, String nombre, LocalDate fechaNacimiento, String direccion, String telefono, String email, String clave) {
this.dni = dni;
this.nombre = nombre;
this.fechaNacimiento = fechaNacimiento;
this.direccion = direccion;
this.telefono = telefono;
this.email = email;
this.clave = clave;
this.cuentasAsociadas = new HashMap<>();
this.tarjetasAsociadas = new HashMap<>();
}
public String getDni() {
return dni;
}
public String getNombre() {
return nombre;
}
public LocalDate getFechaNacimiento() {
return fechaNacimiento;
}
public String getDireccion() {
return direccion;
}
public String getTelefono() {
return telefono;
}
public String getEmail() {
return email;
}
public String getClave() {
return clave;
}
public Map<String, Cuenta> getCuentasAsociadas() {
return cuentasAsociadas;
}
public Map<String, Tarjeta> getTarjetasAsociadas() {
return tarjetasAsociadas;
}
/**
* Comprueba si la clave introducida coincide con la guardada
*
* @param clave
* @return
*/
public boolean claveVálida(String clave) {
return this.clave.compareTo(clave) == 0;
}
/**
* Añade una cuenta al cliente
* @param cuenta
*/
public void asignarCuenta(Cuenta cuenta) {
cuentasAsociadas.put(cuenta.getNumero(), cuenta);
}
/**
* Añade una tarjeta al cliente
* @param tarjeta
*/
public void añadirTarjeta(Tarjeta tarjeta) {
tarjetasAsociadas.put(tarjeta.getNumero(), tarjeta);
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.entidades;
import es.ujaen.dae.ujacoin.util.TipoMovimiento;
import es.ujaen.dae.ujacoin.excepciones.CuentaNoValida;
import es.ujaen.dae.ujacoin.excepciones.SaldoInsuficiente;
import java.time.LocalDateTime;
import java.util.ArrayList;
/**
* Cuenta de UjaCoins
*
* @author Adrian
*/
public class Cuenta {
/**
* Número de identificación de la cuenta
*/
private String numero;
/**
* Saldo de la cuenta
*/
private float saldo;
/**
* Titular de la cuenta
*/
private Cliente titular;
/**
* Movimientos de la cuenta
*/
private ArrayList<Movimiento> movimientos;
public Cuenta(String numero, Cliente titular) {
if (!checkNumeroCuenta(numero)) {
throw new CuentaNoValida();
}
this.numero = numero;
this.saldo = 0;
this.titular = titular;
this.movimientos = new ArrayList<>();
}
public String getNumero() {
return numero;
}
public float getSaldo() {
return saldo;
}
public Cliente getTitular() {
return titular;
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
public ArrayList<Movimiento> getMovimientos() {
return movimientos;
}
/**
* Ingresa en la cuenta el importe desde la tarjeta
*
* @param tarjeta Tarjeta origen
* @param importe Importe de la operación
*/
public void ingreso(Tarjeta tarjeta, Float importe) {
movimientos.add(new Movimiento(TipoMovimiento.TMIngreso, importe, LocalDateTime.now(), tarjeta));
saldo += importe;
}
/**
* Reintegra en la tarjeta el importe desde la cuenta
*
* @param tarjeta Tarjeta destino
* @param importe Importe de la operación
*/
public void reintegro(Tarjeta tarjeta, Float importe) {
if ((saldo - importe) < 0) {
throw new SaldoInsuficiente();
}
movimientos.add(new Movimiento(TipoMovimiento.TMReintegro, importe, LocalDateTime.now(), tarjeta));
saldo -= importe;
}
/**
* Ingresa en la cuenta el importe desde otra cuenta
*
* @param cuenta Cuenta origen
* @param importe Importe de la operación
*/
public void transferenciaDesde(Cuenta cuenta, Float importe) {
movimientos.add(new Movimiento(TipoMovimiento.TMTrasnferenciaRecibida, importe, LocalDateTime.now(), cuenta));
saldo += importe;
}
/**
* Retira de la cuenta el importe hacia otra cuenta
*
* @param cuenta Cuenta origen
* @param importe Importe de la operación
*/
public void transferenciaA(Cuenta cuenta, Float importe) {
if ((saldo - importe) < 0) {
throw new SaldoInsuficiente();
}
movimientos.add(new Movimiento(TipoMovimiento.TMTransferenciaEmitida, importe, LocalDateTime.now(), cuenta));
saldo -= importe;
}
/**
* Comprueba que el número de cuenta es válido, 12 dígitos numéricos, los
* dos últimos dígitos son la suma de los anteriores modulo 100.
*
* @param numero Numero de cuenta a comprobar
* @return True si el número es válido, false en otro caso
*/
public static boolean checkNumeroCuenta(String numero) {
if (numero.matches("[0-9]+") && numero.length() == 10) {
int suma = 0;
int codigoSeguridad = Integer.parseInt(numero.substring(8, 10));
for (int i = 0; i < 8; i++) {
suma += Integer.parseInt(numero.substring(i, i + 1));
}
if (suma % 100 == codigoSeguridad) {
return true;
}
}
return false;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.entidades;
import es.ujaen.dae.ujacoin.util.TipoMovimiento;
import es.ujaen.dae.ujacoin.excepciones.CuentaNoValida;
import es.ujaen.dae.ujacoin.excepciones.TarjetaNoValida;
import es.ujaen.dae.ujacoin.excepciones.TipoMovimientoInvalido;
import java.time.LocalDateTime;
/**Movimientos asociados a las cuentas
*
* @author Adrian
*/
public class Movimiento {
/**Tipo de movimiento*/
private TipoMovimiento tipo;
/**Importe del movimiento*/
private float importe;
/**Fecha y hora del movimiento*/
private LocalDateTime fechaHora;
/**Cuenta destino/origen*/
private Cuenta cuenta;
/**Tarjeta destino/origen*/
private Tarjeta tarjeta;
public Movimiento(TipoMovimiento tipo, float importe, LocalDateTime fechaHora, Tarjeta tarjeta) {
if(!(tipo == TipoMovimiento.TMIngreso || tipo == TipoMovimiento.TMReintegro)) throw new TipoMovimientoInvalido();
if(!Tarjeta.checkNumeroTarjeta(tarjeta.getNumero())) throw new TarjetaNoValida();
this.tipo = tipo;
this.importe = importe;
this.fechaHora = fechaHora;
this.tarjeta = tarjeta;
}
public Movimiento(TipoMovimiento tipo, float importe, LocalDateTime fechaHora, Cuenta cuenta) {
if(!(tipo == TipoMovimiento.TMTransferenciaEmitida || tipo == TipoMovimiento.TMTrasnferenciaRecibida)) throw new TipoMovimientoInvalido();
if(!Cuenta.checkNumeroCuenta(cuenta.getNumero())) throw new CuentaNoValida();
this.tipo = tipo;
this.importe = importe;
this.fechaHora = fechaHora;
this.cuenta = cuenta;
}
public TipoMovimiento getTipo() {
return tipo;
}
public float getImporte() {
return importe;
}
public Cuenta getCuenta() {
return cuenta;
}
public Tarjeta getTarjeta() {
return tarjeta;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.entidades;
import es.ujaen.dae.ujacoin.excepciones.TarjetaNoValida;
import java.time.LocalDate;
/**Tarjetas de crédito asociadas a clientes
*
* @author Adrian
*/
public class Tarjeta {
/** Número de la tarjeta*/
private String numero;
/** Titular de la tarjeta*/
private String titular;
/** Código de seguridad de la tarjeta*/
private String cvc;
/** Fecha de caducidad de la tarjeta*/
private LocalDate fechaCaducidad;
public Tarjeta(String numero, String titular, String cvc, LocalDate fechaCaducidad) {
if(!checkNumeroTarjeta(numero)) throw new TarjetaNoValida();
this.numero = numero;
this.titular = titular;
this.cvc = cvc;
this.fechaCaducidad = fechaCaducidad;
}
public String getNumero() {
return numero;
}
public String getTitular() {
return titular;
}
public String getCvc() {
return cvc;
}
public LocalDate getFechaCaducidad() {
return fechaCaducidad;
}
/**
* Comprueba que el número de tarjeta es válido, 8 dígitos numéricos, la suma de los dígitos tiene que ser multiplo de 4.
* @param numero Numero de tarjeta a comprobar
* @return True si el número es válido, false en otro caso
*/
public static boolean checkNumeroTarjeta(String numero) {
if (numero.matches("[0-9]+") && numero.length() == 8) {
int suma = 0;
for (int i = 0; i < numero.length(); i++) {
suma += Integer.parseInt(numero.substring(i, i + 1));
}
if (suma % 4 == 0) {
return true;
}
}
return false;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.excepciones;
/**
*
* @author Adrian
*/
public class CuentaNoValida extends RuntimeException {
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.excepciones;
/**
*
* @author Adrian
*/
public class SaldoInsuficiente extends RuntimeException {
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.excepciones;
/**
*
* @author Adrian
*/
public class TarjetaNoValida extends RuntimeException {
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.excepciones;
/**
*
* @author Adrian
*/
public class TipoMovimientoInvalido extends RuntimeException {
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.interfaces;
import es.ujaen.dae.ujacoin.entidades.Cliente;
import es.ujaen.dae.ujacoin.entidades.Tarjeta;
import es.ujaen.dae.ujacoin.entidades.Cuenta;
import java.util.ArrayList;
/**
* Interfaz para las operaciones publicas del servidor
* @author Adrian
*/
public interface ServicioUjaBank {
/**
* Da de alta a un nuevo cliente y le asocia una cuenta
* @param cliente cliente a crear
*/
public void altaCliente(Cliente cliente);
/**
* Comprueba las credenciales del cliente
* @param dni Dni del cliente
* @param clave Contraseña
* @return True si las credenciales son válidas
*/
public boolean loginCliente(String dni, String clave);
/**
* Lista las tarjetas asociadas a un cliente
* @param dni Dni del cliente
* @return Lista de las tarjetas
*/
public ArrayList<Tarjeta> listaTarjetas(String dni);
/**
* Listas las cuentas asociadas a un cliente
* @param dni Dni del cliente
* @return Lista de cuentas
*/
public ArrayList<Cuenta> listaCuentas(String dni);
/**
* Devuelve una cuenta localizando su número
* @param numero Identificador de la cuenta
* @return
*/
public Cuenta verCuenta(String numero);
/**
* Genera un ingreso en la cuenta del cliente desde una tarjeta
* @param cuenta Cuenta destino
* @param tarjeta Tarjeta origen
* @param importe Importe de la operación
*/
public void ingreso(Cuenta cuenta, Tarjeta tarjeta, float importe);
/**
* Genera un reintegro desde una cuenta del cliente hacia una tarjeta
* @param cuenta Cuenta origen
* @param tarjeta Tarjeta destino
* @param importe Importe de la operación
*/
public void reintegro(Cuenta cuenta, Tarjeta tarjeta, float importe);
/**
* Genera una transferencia entre cuentas
* @param cuentaOrigen Cuenta origen
* @param cuentaDestino Cuenta destino
* @param importe Importe de la operación
*/
public void transferencia(Cuenta cuentaOrigen, Cuenta cuentaDestino, float importe);
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.util;
/** Enum para el tipo de movimiento
*
* @author Adrian
*/
public enum TipoMovimiento{
TMIngreso,
TMReintegro,
TMTransferenciaEmitida,
TMTrasnferenciaRecibida
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.beans;
import es.ujaen.dae.ujacoin.app.AppUjaBank;
import es.ujaen.dae.ujacoin.entidades.Cliente;
import es.ujaen.dae.ujacoin.entidades.Cuenta;
import java.time.LocalDate;
import java.util.ArrayList;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Assumptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
* Test de integración para el controlador del sistema Usa @SpringBootTest para
* poder hacer el test usando el bean dentro del contenedor IoC de Spring
*/
@SpringBootTest(classes = {AppUjaBank.class})
public class ServicioUjaBankImplIntegrationTest {
@Autowired
ServicioUjaBankImpl ujaBank;
/**
* Test of altaCliente method, of class ServicioUjaBankImpl.
*/
@Test
public void testAltaClienteYLoginCliente() {
ujaBank.altaCliente(new Cliente("12345678A", "Antonio Francisco Postigo", LocalDate.parse("1950-05-13"), "Calle Falsa 123", "654654654", "pureba@uja.es", "1234qwas"));
Assertions.assertFalse(ujaBank.loginCliente("12345678A", "1234qwasd"));
Assertions.assertFalse(ujaBank.loginCliente("123678A", "1234qwas"));
Assertions.assertTrue(ujaBank.loginCliente("12345678A", "1234qwas"));
}
/**
* Test of listaTarjetas method, of class ServicioUjaBankImpl.
*/
@Test
public void testListaTarjetas() {
}
/**
* Test of listaCuentas method, of class ServicioUjaBankImpl.
*/
@Test
public void testListaCuentas() {
ujaBank.altaCliente(new Cliente("12345678A", "Antonio Francisco Postigo", LocalDate.parse("1950-05-13"), "Calle Falsa 123", "654654654", "pureba@uja.es", "1234qwas"));
Assumptions.assumeTrue(ujaBank.loginCliente("12345678A", "1234qwas"));
Assertions.assertEquals(1, ujaBank.listaCuentas("12345678A").size());
}
/**
* Test of verCuenta method, of class ServicioUjaBankImpl.
*/
@Test
public void testVerCuenta() {
ujaBank.altaCliente(new Cliente("12345678A", "Antonio Francisco Postigo", LocalDate.parse("1950-05-13"), "Calle Falsa 123", "654654654", "pureba@uja.es", "1234qwas"));
Assumptions.assumeTrue(ujaBank.loginCliente("12345678A", "1234qwas"));
ArrayList<Cuenta> cuentas = ujaBank.listaCuentas("12345678A");
cuentas.forEach(cuenta -> {
Assertions.assertNotNull(ujaBank.verCuenta(cuenta.getNumero()));
});
}
/**
* Test of ingreso method, of class ServicioUjaBankImpl.
*/
@Test
public void testIngreso() {
}
/**
* Test of reintegro method, of class ServicioUjaBankImpl.
*/
@Test
public void testReintegro() {
}
/**
* Test of transferencia method, of class ServicioUjaBankImpl.
*/
@Test
public void testTransferencia() {
ujaBank.altaCliente(new Cliente("12345678A", "Antonio Francisco Postigo", LocalDate.parse("1950-05-13"), "Calle Falsa 123", "654654654", "pureba@uja.es", "1234qwas"));
Assumptions.assumeTrue(ujaBank.loginCliente("12345678A", "1234qwas"));
ujaBank.altaCliente(new Cliente("87654321B", "Antonio Francisco Postigo", LocalDate.parse("1950-02-01"), "Calle Falsa 124", "953010101", "pureba@uja.es", "qwas1234"));
Assumptions.assumeTrue(ujaBank.loginCliente("87654321B", "qwas1234"));
Cuenta cuentaA = ujaBank.listaCuentas("12345678A").get(0);
Cuenta cuentaB = ujaBank.listaCuentas("87654321B").get(0);
cuentaA.setSaldo(450);
ujaBank.transferencia(cuentaA, cuentaB, 125);
Assertions.assertEquals(325, cuentaA.getSaldo());
Assertions.assertEquals(125, cuentaB.getSaldo());
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.entidades;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
public class CuentaTest {
@Test
public void testNumerosCuenta() {
String numeroOK = "1234567836";
String numeroNoOK1 = "1234567899";
String numeroNoOK2 = "1234599";
String numeroNoOK3 = "3567833";
Assertions.assertTrue(Cuenta.checkNumeroCuenta(numeroOK));
Assertions.assertFalse(Cuenta.checkNumeroCuenta(numeroNoOK1));
Assertions.assertFalse(Cuenta.checkNumeroCuenta(numeroNoOK2));
Assertions.assertFalse(Cuenta.checkNumeroCuenta(numeroNoOK3));
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package es.ujaen.dae.ujacoin.entidades;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
public class TarjetaTest {
@Test
public void testNumerosTarjeta() {
String numeroOK = "12345678";
String numeroNoOK1 = "12346678";
String numeroNoOK2 = "1234578";
String numeroNoOK3 = "1235678";
Assertions.assertTrue(Tarjeta.checkNumeroTarjeta(numeroOK));
Assertions.assertFalse(Tarjeta.checkNumeroTarjeta(numeroNoOK1));
Assertions.assertFalse(Tarjeta.checkNumeroTarjeta(numeroNoOK2));
Assertions.assertFalse(Tarjeta.checkNumeroTarjeta(numeroNoOK3));
}
}
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