-
Notifications
You must be signed in to change notification settings - Fork 0
/
AccountTest.py
81 lines (56 loc) · 2.38 KB
/
AccountTest.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
import unittest
from unittest.mock import MagicMock, patch
from Account import Account
from Card import Card
class AccountTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
super(cls)
cls.account2 = Account("Piotr Nowak", 1500)
def setUp(self):
print("SetUp account")
self.account = Account("Jan Kowalski", 1500)
self.account.owner = MagicMock(return_value="Piotr Nowak")
def test_constructor(self):
self.assertEqual(self.account.balance, 1500)
self.assertEqual(self.account.owner, "Jan Kowalski")
def test_getOwner(self):
self.assertEqual(self.account.owner.return_value, "Jan Kowalski")
def test_getOwner2(self):
with patch.object(Account, "getOwner") as acow:
acow.return_value = "Kazimierz"
self.assertEqual(self.account.owner, acow.return_value)
def test_getBalance(self):
balance = self.account.getBalance()
self.assertEqual(balance, 1500)
def test_transfer(self):
new_balance = self.account.transfer(-500)
# self.account2.transfer(-500)
self.assertEqual(new_balance, 1000)
def test_transfer_failure(self):
new_balance = self.account.transfer(500)
self.assertEqual(new_balance, 1500)
def test_transfer_success(self):
new_balance = self.account2.transfer(500)
self.assertEqual(new_balance, 1500)
def test_transferWithMock(self):
self.account.balance = MagicMock(return_value=3000)
self.assertEqual(self.account.balance.return_value, 1500)
def test_transferWithPatch(self):
with patch.object(Account, "getBalance") as newBalance:
newBalance.return_value = 0
addedBalance = self.account.transfer(500)
self.assertEqual(addedBalance, 0)
# self.assertEqual(newBalance.return_value, self.account.balance)
class CardTest(unittest.TestCase):
def setUp(self):
self.account = Account("Hej Hej", 2106)
self.card = Card(self.account, "1234")
def test_owner(self):
owner = self.card.owner()
self.assertEqual(owner, self.account.getOwner())
def test_account(self):
self.assertEqual(self.card.get_account(), self.account.getNumber())
def test_checkPin(self):
self.assertTrue(self.card.check_pin("1234"))
self.assertFalse(self.card.check_pin("5879"))