-
Notifications
You must be signed in to change notification settings - Fork 0
/
TestBilleteraElectronica.py
134 lines (78 loc) · 3.81 KB
/
TestBilleteraElectronica.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
'''
@author: Ritces Parra carnet: 12-11088
@author: Carlos Perez carnet: 13-11089
'''
import unittest
from BilleteraElectronica import BilleteraElectronica
from Persona import Persona
from Credito import Credito
from Debito import Debito
# La clase servicios test es utilizada para los casos de prueba unitarios, usando el plugin PyUnit
class ServiciosTest(unittest.TestCase):
def setUp(self):
carlos = Persona("Alvin", "Yakitori", 1)
self.billetera = BilleteraElectronica(13, carlos, 1234)
'''
Funcionalidades
'''
#Verifica que la recarga se ejecute de manera exitosa
def testRecargaExitosamente(self):
credito = Credito(1000, 1)
self.billetera.recargar(credito)
self.assertEquals(1000, self.billetera.saldo())
#Verifica que una transaccion se realice de manera correcta
def testConsumoPinCorrectoMontoSuficiente(self):
credito = Credito(1000, 1)
self.billetera.recargar(credito)
debito = Debito(800, 1, 1234)
self.assertNotEquals(-1, self.billetera.consumir(debito))
self.assertEquals(200, self.billetera.saldo())
#Verifica que las transacciones estan siendo almacenadas debidamente
def testAlmacenTransacciones(self):
credito = Credito(1000, 1)
self.billetera.recargar(credito)
credito1 = Credito(100, 10)
self.billetera.recargar(credito1)
debito = Debito(100, 1, 1234)
self.billetera.consumir(debito)
self.assertEquals(2, len(self.billetera.devCreditos()))
self.assertEquals(1, len(self.billetera.devDebitos()))
self.assertEquals(1000, self.billetera.saldo())
'''
Fronteras
'''
#Verifica que el estado inicial del saldo de una billetera electronica es 0
def testSaldoNulo(self):
self.assertEquals(0, self.billetera.saldo())
#Verifica que si el pin introducido en la transaccion no es correcto, la transaccion no se ejecute
def testConsumoPinIncorrectoSaldoCorrecto(self):
credito = Credito(2000, 1)
self.billetera.recargar(credito)
debito = Debito(1200, 1, 1254)
self.assertEquals(-1, self.billetera.consumir(debito))
self.assertEquals(2000, self.billetera.saldo())
#Verifica que si el saldo de la billetera electronica no es suficiente, la transaccion no se ejecute
def testConsumoPinCorrectoSaldoInsuficiente(self):
credito = Credito(1000, 1)
self.billetera.recargar(credito)
debito = Debito(1200, 1, 1234)
self.assertEquals(-1, self.billetera.consumir(debito))
self.assertEquals(1000, self.billetera.saldo())
'''
Esquinas
'''
#Verifica que una transaccion con Pin incorrecto no pase a pesar de que tampoco tiene saldo suficiente
def testConsumoPinIncorrectoSaldoInsuficiente(self):
credito = Credito(1199, 1)
self.billetera.recargar(credito)
debito = Debito(1200, 1, 1234)
self.assertEquals(-1, self.billetera.consumir(debito))
self.assertEquals(1199, self.billetera.saldo())
'''
Malicia
'''
#Verifica que no se puedan recargar saldos negativos
def testRecargaSaldoIncorrecto(self):
credito = Credito(-1000, 1)
self.assertEquals(-1, self.billetera.recargar(credito))
self.assertEquals(0, self.billetera.saldo())