class Unittest(TestCase): def setUp(self): # given self.atm = Atm(CashBox(cash=1000, limit=2000)) card = MagicMock() card.card_holder = MagicMock() account = MagicMock() account.balance = 100 card.card_holder.accounts = [account] card.card_holder.accounts[0].balance = 3000 self.atm.insert_card(card) self.atm.enter_pin('1') self.atm.select_account(0) def test_cash_box_overflow(self): # when self.atm.select_deposit() self.atm.put_in_cash(1500) # then self.assertEqual( AtmExit.get_name(), self.atm.get_current_state_name() ) def test_enter_overflow2(self): # when self.atm.select_withdraw() self.atm.enter_withdrawal_amount(1500) self.atm.take_out_cash(1500) # then self.assertEqual( AtmExit.get_name(), self.atm.get_current_state_name() )
class Unittest(TestCase): def setUp(self): # given self.atm = Atm(CashBox(cash=1000, limit=5000)) card = MagicMock() card.card_holder = MagicMock() account = MagicMock() account.balance = 100 card.card_holder.accounts = [account] card.card_holder.accounts[0].balance = 2000 self.atm.insert_card(card) self.atm.enter_pin('1') self.atm.select_account(0) def test_select_menu(self): # when self.atm.select_deposit() # then self.assertEqual( AtmProcessingDeposit.get_name(), self.atm.get_current_state_name() ) def test_put_valid_amount(self): # when self.atm.select_deposit() self.atm.put_in_cash(100) # then self.assertEqual( AtmDisplayingBalance.get_name(), self.atm.get_current_state_name() ) def test_put_invalid_amount(self): # when self.atm.select_deposit() self.atm.put_in_cash(-100) # then self.assertEqual( AtmExit.get_name(), self.atm.get_current_state_name() )