/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package src;

import java.util.ArrayList;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author Yeiser
 */
public class IngresoReintegroTest {
        Cuentas p1=new CuentaCorriente();
        ArrayList<Cuentas> AP=new ArrayList<Cuentas>();
        Sucursal s = new Sucursal();
        Cuentas c = new Cuentas();
    public IngresoReintegroTest() {
        //Creamos una cuenta
        p1.setnumero_cuenta("20984002161000015263");
        p1.setNombre_cliente("Julian Martinez Morillas");
        p1.setSaldo_cuenta(300);
        p1.setId_cliente("25361477A");
    }
    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {        
    }

    @After
    public void tearDown() {
    }

    /**
     * Test of Ingreso method, of class IngresoReintegro.
     */
    @Test
    public void testIngreso() {
        System.out.println("Ingreso");
        String cuenta = "20984002161000015263";
        String Importe = "10";        
        String Concepto = "";
        IngresoReintegro instance = new IngresoReintegro();
        float expResult = 310;        
        String id="222";
        AP.add(p1);
        s.setCuentas(AP);

        c=s.devuelveCuentas(cuenta);
        instance.Ingreso(s, cuenta, Importe, Concepto,id);
        assertTrue(expResult==c.getSaldo_cuenta());
           
    }

    /**
     * Test of Reintegro method, of class IngresoReintegro.
     */
    @Test
    public void testReintegro() {
        System.out.println("Reintegro");
        String cuenta = "20984002161000015263";
        String Importe = "10";
        String Concepto = "";
        IngresoReintegro instance = new IngresoReintegro();
        float expResult = 290;

        AP.add(p1);
        s.setCuentas(AP);
        c=s.devuelveCuentas(cuenta);
        instance.Reintegro(s, cuenta, Importe, Concepto, Importe);
        assertTrue(expResult==c.getSaldo_cuenta());   
    }

    @Test
    public void testDecimales() {
        System.out.println("Decimales Ingreso/Reintegro");
        String cuenta = "20984002161000015263";
        String ImporteIng = "10,5";
        String ImporteRein = "10,5";
        String Concepto = "";
        IngresoReintegro instance = new IngresoReintegro();
        float expResult = (float) 310.5;
        float expResult1 =300;

        AP.add(p1);
        s.setCuentas(AP);

        c=s.devuelveCuentas(cuenta);
        instance.Ingreso(s, cuenta, ImporteIng, Concepto,ImporteIng);
        assertTrue(expResult==c.getSaldo_cuenta());
        instance.Reintegro(s, cuenta, ImporteRein, Concepto,ImporteRein);
        assertTrue(expResult1==c.getSaldo_cuenta());
    }

    @Test
    public void testNegativos() {
        System.out.println("Negativos Ingreso/Reintegro");
        String cuenta = "20984002161000015263";
        String Importe = "-10";
        String Concepto = "";
        IngresoReintegro instance = new IngresoReintegro();
        float expResult = 300;        

        AP.add(p1);
        s.setCuentas(AP);

        c=s.devuelveCuentas(cuenta);
        instance.Ingreso(s, cuenta, Importe, Concepto,Importe);
        assertTrue(expResult==c.getSaldo_cuenta());  
        instance.Reintegro(s, cuenta, Importe, Concepto,Importe);
        assertTrue(expResult==c.getSaldo_cuenta());
    }
}