def test_get_balance_with_five_transactions(self): account_name = "john" account = Account(account_name) payer = "john" payee = "mary" account = Account(account_name) transaction = Transaction("2020-01-01", payer, payee, 20) account.add_transaction(transaction) transaction = Transaction("2020-01-03", payer, payee, 20) account.add_transaction(transaction) transaction = Transaction("2020-01-05", payer, payee, 20) account.add_transaction(transaction) transaction = Transaction("2020-01-22", payer, payee, 20) account.add_transaction(transaction) transaction = Transaction("2020-01-30", payer, payee, 20) account.add_transaction(transaction) self.assertEqual(account.get_balance("2020-01-02"), -20) self.assertEqual(account.get_balance("2020-01-05"), -60) self.assertEqual(account.get_balance("2020-01-06"), -60) self.assertEqual(account.get_balance("2020-01-07"), -60) self.assertEqual(account.get_balance("2020-01-21"), -60) self.assertEqual(account.get_balance("2020-01-22"), -80) self.assertEqual(account.get_balance("2020-01-23"), -80) self.assertEqual(account.get_balance("2020-01-29"), -80) self.assertEqual(account.get_balance("2020-01-30"), -100) self.assertEqual(account.get_balance("2020-01-31"), -100)
def test_get_balance_with_two_transactions(self): account_name = "john" account = Account(account_name) payer = "john" payee = "mary" account = Account(account_name) transaction = Transaction("2020-01-22", payer, payee, 20) account.add_transaction(transaction) transaction = Transaction("2020-01-25", payer, payee, 20) account.add_transaction(transaction) self.assertEqual(account.get_balance("2020-01-22"), -20) # Check balance between transactions is as expected self.assertEqual(account.get_balance("2020-01-23"), -20) # Check final balance as expected self.assertEqual(account.get_balance("2020-01-25"), -40)
def test_get_balance_with_one_transaction(self): account_name = "john" account = Account(account_name) payer = "john" payee = "mary" account = Account(account_name) transaction = Transaction("2020-01-22", payer, payee, 20) account.add_transaction(transaction) self.assertEqual(account.balance, -20) # Balance on date of transaction should be -20 self.assertEqual(account.get_balance("2020-01-22"), -20) # Balance after date of transaction should be -20 self.assertEqual(account.get_balance("2020-01-25"), -20) # Balance before first transaction - assume open and 0 self.assertEqual(account.get_balance("2015-01-21"), 0)