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_contar(self):
     broker = Broker([42670460, "Lucas", "Soria", False], [
         "Voy a comprar algo con 500 pesos",
         3,
     ], self.caj)
     broker.registrar_actividad()
     actDAO = ActividadDao(broker.db)
     actividades = actDAO.buscarTodos()
     actividad = actividades[0]
     actDAO.borrar(actividades[0])
     self.assertEqual(actividad.mensaje, "Total: $0")
 def test_errores_de_actividades_porcentaje(self, monto, porcentaje, error):
     broker = Broker(
         [42670460, "Lucas", "Soria", False],
         ["Voy a comprar algo con 500 pesos", 2, monto, porcentaje],
         self.caj)
     broker.registrar_actividad()
     actDAO = ActividadDao(broker.db)
     actividades = actDAO.buscarTodos()
     actividad = actividades[0]
     actDAO.borrar(actividades[0])
     self.assertEqual(actividad.mensaje, error)
 def test_insertar(self):
     self.lista = []
     for x in range(17):
         self.lista.append(self.mil_pesos)
     broker = Broker([42670460, "Lucas", "Soria", False],
                     ["Voy a comprar algo con 500 pesos", 4, self.lista],
                     self.caj)
     broker.registrar_actividad()
     actDAO = ActividadDao(broker.db)
     actividades = actDAO.buscarTodos()
     actividad = actividades[0]
     actDAO.borrar(actividades[0])
     self.assertEqual(actividad.mensaje, "Se ingreso dinero correctamente")
 def test_errores_de_actividades(self, monto, error):
     broker = Broker([42670460, "Lucas", "Soria", False],
                     ["Voy a comprar algo con 500 pesos", 1, monto],
                     self.caj)
     self.lista = []
     for x in range(6):
         self.lista.append(self.mil_pesos)
     self.lista.append(self.quinientos_pesos)
     self.caj.agregar_dinero(self.lista)
     broker.registrar_actividad()
     actDAO = ActividadDao(broker.db)
     actividades = actDAO.buscarTodos()
     actividad = actividades[0]
     actDAO.borrar(actividades[0])
     self.assertEqual(actividad.mensaje, error)
 def test_error_billetes(self):
     broker = Broker([42670460, "Lucas", "Soria", False],
                     ["Voy a comprar algo con 500 pesos", 1, 12100],
                     self.caj)
     self.lista = []
     for x in range(17):
         self.lista.append(self.mil_pesos)
     self.caj.agregar_dinero(self.lista)
     broker.registrar_actividad()
     actDAO = ActividadDao(broker.db)
     actividades = actDAO.buscarTodos()
     actividad = actividades[0]
     actDAO.borrar(actividades[0])
     self.assertEqual(
         actividad.mensaje, "Error. No hay una combinaciĆ³n"
         " de billetes que nos permita"
         " extraer ese monto")
    def generar_actividades(self):
        actividadDao = ActividadDao(self.db)
        tipodao = TipoActividadDao(self.db)
        if self.tipo_actividad == "t1":

            actividades = Actividad(self.mensaje, self.codigo, self.resultado)
            tipo1 = tipodao.buscarPorID(1)

        if self.tipo_actividad == "t2":
            actividades = Actividad(self.mensaje, self.codigo, self.resultado)
            tipo1 = tipodao.buscarPorID(2)

        if self.tipo_actividad == "t3":
            actividades = Actividad(self.mensaje, self.codigo, self.resultado)
            tipo1 = tipodao.buscarPorID(3)

        actividades.tipo_actividad = tipo1.id
        actividadDao.guardar(actividades)

        (self.persona).lista_actividades.append(actividades)
        self.persona_dao.guardar(self.persona)
from DB import DBConexion, Persona, Actividad, Tipo_Actividad, PersonaDao
from DB import ActividadDao, Tipo_ActividadDao
from billete import Billete100, Billete200, Billete500, Billete1000
from cajero import Cajero

if __name__ == "__main__":

    print("Conectandose a la base de datos")
    print("Creando la estructura de las tablas")
    print("Creando la sesion de acceso a la base de datos")
    db = DBConexion()

    print("Creando DAO")
    persona_DAO = PersonaDao(db)
    actividad_DAO = ActividadDao(db)
    tipo_DAO = Tipo_ActividadDao(db)

    pers1 = Persona("Franco", "Santander", "Cliente")
    pers2 = Persona("Daniel", "Quinteros", "Cliente")

    persona_DAO.guardar(pers1)
    persona_DAO.guardar(pers2)

    cargar_dinero = Tipo_Actividad("Deposito", "Ingresar dinero")
    extraer_dinero = Tipo_Actividad("Extraccion", "Extraer dinero")
    tipo_DAO.guardar(cargar_dinero)
    tipo_DAO.guardar(extraer_dinero)

    cajero1 = Cajero()
    cajero2 = Cajero()
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()