예제 #1
0
class TestBanco(unittest.TestCase):
    def setUp(self):
        self.cajero = Cajero()
        self.mejora = CajeroMejorado()
        self.deposito1 = [
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000()
        ]

        self.deposito2 = [
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500()
        ]

        self.deposito3 = [
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200()
        ]

    def test_deposito_10000(self):
        self.cajero.carga(self.deposito1)
        self.assertEqual(self.cajero.conteo(), (10000, 0, 0, 0, 10000))
        self.cajero.vaciado()

    def test_extraccion_5000_correcta(self):
        self.cajero.carga(self.deposito1)
        self.assertEqual(self.cajero.conteo(), (10000, 0, 0, 0, 10000))
        self.assertEqual(self.cajero.extraer(5000), (5, 0, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_12000_incorrecta(self):
        self.cajero.carga(self.deposito1)
        self.assertEqual(self.cajero.conteo(), (10000, 0, 0, 0, 10000))
        self.assertEqual(self.cajero.extraer(12000),
                         "Error: Fondos del" + " banco insuficientes")
        self.cajero.vaciado()

    def test_extraccion_5520_incorrecta(self):
        self.cajero.carga(self.deposito1)
        self.assertEqual(self.cajero.conteo(), (10000, 0, 0, 0, 10000))
        self.assertEqual(self.cajero.extraer(5520),
                         "Error: El monto no " + "es multiplo de 100")
        self.cajero.vaciado()

    def test_deposito_20000(self):
        self.cajero.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 0, 0, 20000))
        self.cajero.vaciado()

    def test_extraer_5000_de_20000(self):
        self.cajero.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 0, 0, 20000))
        self.assertEqual(self.cajero.extraer(5000), (5, 0, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_12000_de_20000(self):
        self.cajero.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 0, 0, 20000))
        self.assertEqual(self.cajero.extraer(12000), (10, 4, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_12100_de_20000(self):
        self.cajero.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 0, 0, 20000))
        self.assertEqual(self.cajero.extraer(12100),
                         "No es posible realizar" + " esa combinacion")
        self.cajero.vaciado()

    def test_extraccion_7000_de_20000(self):
        self.mejora.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 0, 0, 20000))
        self.assertEqual(self.mejora.extraer_dinero_cambio(7000, 10.0),
                         (6, 2, 0, 0))
        self.cajero.vaciado()

    def test_deposito_23000(self):
        self.cajero.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 3000, 0, 23000))
        self.cajero.vaciado()

    def test_extraer_5000_de_23000(self):
        self.cajero.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.cajero.extraer(5000), (5, 0, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_12000_de_23000(self):
        self.cajero.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.cajero.extraer(12000), (10, 4, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_12100_de_23000(self):
        self.cajero.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.cajero.extraer(12100),
                         "No es posible realizar" + " esa combinacion")
        self.cajero.vaciado()

    def test_extraccion_7000_de_23000(self):
        self.mejora.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.mejora.extraer_dinero_cambio(7000, 10.0),
                         (6, 0, 5, 0))
        self.mejora.vaciado()

    def test_negativo_cambio_7000_de_23000(self):
        self.mejora.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.mejora.extraer_dinero_cambio(-7000, 10.0),
                         "Error: No se permiten montos negativos")
        self.mejora.vaciado()

    def test_negativo_7000_de_23000(self):
        self.mejora.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.mejora.extraer(-7000),
                         "Error: No se permiten " + "montos negativos")
        self.mejora.vaciado()

    def test_extraccion_8000_de_23000(self):
        self.mejora.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.mejora.extraer_dinero_cambio(8000, 10.0),
                         (7, 0, 5, 0))
        self.cajero.vaciado()
예제 #2
0
class TestBanco(unittest.TestCase):
    def setUp(self):
        self.cajero = Cajero()
        self.mejora = CajeroMejorado()
        self.deposito1 = [
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000(),
            Billete_1000()
        ]

        self.deposito2 = [
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500(),
            Billete_500()
        ]

        self.deposito3 = [
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200(),
            Billete_200()
        ]

    def test_deposito_10000(self):
        self.cajero.carga(self.deposito1)
        self.assertEqual(self.cajero.conteo(), (10000, 0, 0, 0, 10000))
        self.cajero.vaciado()

    def test_extraccion_5000_correcta(self):
        self.cajero.carga(self.deposito1)
        self.assertEqual(self.cajero.conteo(), (10000, 0, 0, 0, 10000))
        self.assertEqual(self.cajero.extraer(5000), (5, 0, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_12000_incorrecta(self):
        with self.assertRaises(ExcesoError):
            self.cajero.carga(self.deposito1)
            self.assertEqual(self.cajero.conteo(), (10000, 0, 0, 0, 10000))
            self.cajero.extraer(12000)
            self.cajero.vaciado()

    def test_extraccion_5520_incorrecta(self):
        with self.assertRaises(MultipoError):
            self.cajero.carga(self.deposito1)
            self.assertEqual(self.cajero.conteo(), (10000, 0, 0, 0, 10000))
            self.cajero.extraer(5520)
            self.cajero.vaciado()

    def test_deposito_20000(self):
        self.cajero.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 0, 0, 20000))
        self.cajero.vaciado()

    def test_extraer_5000_de_20000(self):
        self.cajero.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 0, 0, 20000))
        self.assertEqual(self.cajero.extraer(5000), (5, 0, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_12000_de_20000(self):
        self.cajero.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 0, 0, 20000))
        self.assertEqual(self.cajero.extraer(12000), (10, 4, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_12100_de_20000(self):
        self.cajero.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 0, 0, 20000))
        with self.assertRaises(CombinacionError):
            self.cajero.extraer(12100)
        self.cajero.vaciado()

    def test_extraccion_7000_de_20000(self):
        self.mejora.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 0, 0, 20000))
        self.assertEqual(self.mejora.extraer_dinero_cambio(7000, 10.0),
                         (6, 2, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_7000_cambio_exceso(self):
        self.mejora.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 0, 0, 20000))
        with self.assertRaises(RangoError):
            self.mejora.extraer_dinero_cambio(7000, 500.0)
        self.cajero.vaciado()

    def test_extraccion_7000_cambio_negativo(self):
        self.mejora.carga(self.deposito1 + self.deposito2)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 0, 0, 20000))
        with self.assertRaises(RangoError):
            self.mejora.extraer_dinero_cambio(7000, -3)
        self.cajero.vaciado()

    def test_deposito_23000(self):
        self.cajero.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 3000, 0, 23000))
        self.cajero.vaciado()

    def test_extraer_5000_de_23000(self):
        self.cajero.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.cajero.extraer(5000), (5, 0, 0, 0))
        self.cajero.vaciado()

    def test_extraer_5000_sin_fondos(self):
        with self.assertRaises(VacioError):
            self.cajero.extraer(5000)

    def test_extraccion_7000_cambio_sin_fondos(self):
        with self.assertRaises(VacioError):
            self.mejora.extraer_dinero_cambio(7000, 10.0)

    def test_extraccion_12000_de_23000(self):
        self.cajero.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.cajero.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.cajero.extraer(12000), (10, 4, 0, 0))
        self.cajero.vaciado()

    def test_extraccion_12100_de_23000(self):
        with self.assertRaises(CombinacionError):
            self.cajero.carga(self.deposito1 + self.deposito2 + self.deposito3)
            self.assertEqual(self.cajero.conteo(),
                             (10000, 10000, 3000, 0, 23000))
            self.cajero.extraer(12100)
            self.cajero.vaciado()

    def test_extraccion_7000_de_23000(self):
        self.mejora.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.mejora.extraer_dinero_cambio(7000, 10.0),
                         (6, 0, 5, 0))
        self.mejora.vaciado()

    def test_negativo_cambio_7000_de_23000(self):
        with self.assertRaises(NegativoError):
            self.mejora.carga(self.deposito1 + self.deposito2 + self.deposito3)
            self.assertEqual(self.mejora.conteo(),
                             (10000, 10000, 3000, 0, 23000))
            self.mejora.extraer_dinero_cambio(-7000, 10.0)
            self.mejora.vaciado()

    def test_negativo_7000_de_23000(self):
        with self.assertRaises(NegativoError):
            self.mejora.carga(self.deposito1 + self.deposito2 + self.deposito3)
            self.assertEqual(self.mejora.conteo(),
                             (10000, 10000, 3000, 0, 23000))
            self.mejora.extraer(-7000)
            self.mejora.vaciado()

    def test_extraccion_8000_de_23000(self):
        self.mejora.carga(self.deposito1 + self.deposito2 + self.deposito3)
        self.assertEqual(self.mejora.conteo(), (10000, 10000, 3000, 0, 23000))
        self.assertEqual(self.mejora.extraer_dinero_cambio(8000, 10.0),
                         (7, 0, 5, 0))
        self.cajero.vaciado()
class TestTablas(unittest.TestCase):

    def setUp(self):
        self.db = DBCon()
        self.persona_dao = PersonaDao(self.db)
        self.actDao = ActividadDao(self.db)
        self.tipodao = TipoActividadDao(self.db)
        self.cajero = Cajero()
        self.mejora = CajeroMejorado()

    def test_deposito_2000(self):

        tablas = Tablas("Juan", "Gomez", "Empleado", "Informacion",
                        "Exitoso", "t1",
                        [Billete_1000(), Billete_1000()])

        tabla_p = self.persona_dao.buscarPorID(0)
        self.assertEqual(tabla_p.nombre, "Juan")
        self.assertEqual(tabla_p.apellido, "Gomez")
        self.assertEqual(tabla_p.tipo, "Empleado")

        tabla_a = self.actDao.buscarTodos()[0]

        self.assertEqual(tabla_a.mensaje, "Informacion")
        self.assertEqual(tabla_a.codigo_resultado, "Exitoso")
        self.assertEqual(tabla_a.descripcion_actividad, "Se ha depositado $2000")

        tabla_t = self.tipodao.buscarTodos()[1-1]       # Por t1 (fila i=0)
        self.assertEqual(tabla_t.descripcion, "Ingreso de dinero al banco")
        self.persona_dao.borrar(tabla_p)
        self.cajero.vaciado()

    def test_deposito_3500(self):

        tablas = Tablas("Juan", "Cruz", "Gerente", "Informacion",
                        "Exitoso", "t1",
                        [Billete_1000(), Billete_1000(), Billete_200(),
                         Billete_200(), Billete_1000(), Billete_100()])

        tabla_p = self.persona_dao.buscarPorID(0)
        self.assertEqual(tabla_p.nombre, "Juan")
        self.assertEqual(tabla_p.apellido, "Cruz")
        self.assertEqual(tabla_p.tipo, "Gerente")

        tabla_a = self.actDao.buscarTodos()[0]

        self.assertEqual(tabla_a.mensaje, "Informacion")
        self.assertEqual(tabla_a.codigo_resultado, "Exitoso")
        self.assertEqual(tabla_a.descripcion_actividad, "Se ha depositado $3500")

        tabla_t = self.tipodao.buscarTodos()[1-1]       # Por t1 (fila i=0)
        self.assertEqual(tabla_t.descripcion, "Ingreso de dinero al banco")
        self.persona_dao.borrar(tabla_p)
        self.cajero.vaciado()

    def test_extraccion_500(self):

        tablas = Tablas("Raul", "Fuentes", "Cliente", "Informacion",
                        "Exitoso", "t2",
                        [500, 0])

        tabla_p = self.persona_dao.buscarPorID(0)
        self.assertEqual(tabla_p.nombre, "Raul")
        self.assertEqual(tabla_p.apellido, "Fuentes")
        self.assertEqual(tabla_p.tipo, "Cliente")

        tabla_a = self.actDao.buscarTodos()[0]

        self.assertEqual(tabla_a.mensaje, "Informacion")
        self.assertEqual(tabla_a.codigo_resultado, "Exitoso")
        self.assertEqual(tabla_a.descripcion_actividad,
                         "Se extrajo sin cambio $500")

        tabla_t = self.tipodao.buscarTodos()[2-1]       # Por t2 (fila i=1)
        self.assertEqual(tabla_t.descripcion,
                         "Se extrae dinero del banco")
        self.persona_dao.borrar(tabla_p)
        self.mejora.vaciado()

    def test_extraccion_3300(self):

        tablas = Tablas("Javi", "Cercasi", "Cliente", "Informacion",
                        "Exitoso", "t2",
                        [3300, 0])

        tabla_p = self.persona_dao.buscarPorID(0)
        self.assertEqual(tabla_p.nombre, "Javi")
        self.assertEqual(tabla_p.apellido, "Cercasi")
        self.assertEqual(tabla_p.tipo, "Cliente")

        tabla_a = self.actDao.buscarTodos()[0]

        self.assertEqual(tabla_a.mensaje, "Informacion")
        self.assertEqual(tabla_a.codigo_resultado, "Exitoso")
        self.assertEqual(tabla_a.descripcion_actividad,
                         "Se extrajo sin cambio $3300")

        tabla_t = self.tipodao.buscarTodos()[2-1]       # Por t2 (fila i=1)
        self.assertEqual(tabla_t.descripcion,
                         "Se extrae dinero del banco")
        self.persona_dao.borrar(tabla_p)
        self.mejora.vaciado()

    def test_extraccion_con_cambio(self):

        tablas = Tablas("Rodrigo", "Bueno", "Cantante", "Informacion",
                        "Exitoso", "t3",
                        [3800, 10])

        tabla_p = self.persona_dao.buscarPorID(0)
        self.assertEqual(tabla_p.nombre, "Rodrigo")
        self.assertEqual(tabla_p.apellido, "Bueno")
        self.assertEqual(tabla_p.tipo, "Cantante")

        tabla_a = self.actDao.buscarTodos()[0]

        self.assertEqual(tabla_a.mensaje, "Informacion")
        self.assertEqual(tabla_a.codigo_resultado, "Exitoso")
        self.assertEqual(tabla_a.descripcion_actividad,
                         "Se extrajo con cambio $3800")

        tabla_t = self.tipodao.buscarTodos()[3-1]       # Por t3 (fila i=2)
        self.assertEqual(tabla_t.descripcion,
                         "Se extrae dinero con cambio del banco")
        self.persona_dao.borrar(tabla_p)
        self.mejora.vaciado()