public void GetStatementTransactions_ThreeTransactions_TransactionsShowInResult() { var amount1 = 1000; var amount2 = 2000; var amount3 = 500; var closingBalance1 = 1000; var closingBalance2 = 3000; var closingBalance3 = 2500; var mockDateProvider = GetMockDateProviderWithDatesForAcceptanceTestScenario(out var transactionDate1, out var transactionDate2, out var transactionDate3); var transactionRepo = new TransactionRepo(mockDateProvider.Object); var subject = GetTestSubject(transactionRepo); subject.Deposit(amount1); subject.Deposit(amount2); subject.Withdraw(amount3); var transactions = transactionRepo.GetStatementTransactions(); Assert.AreEqual(3, transactions.Count); Assert.AreEqual(amount1, transactions[0].Amount); Assert.AreEqual(transactionDate1, transactions[0].Date); Assert.AreEqual(closingBalance1, transactions[0].ClosingBalance); Assert.AreEqual(amount2, transactions[1].Amount); Assert.AreEqual(transactionDate2, transactions[1].Date); Assert.AreEqual(closingBalance2, transactions[1].ClosingBalance); Assert.AreEqual(amount3, transactions[2].Amount); Assert.AreEqual(transactionDate3, transactions[2].Date); Assert.AreEqual(closingBalance3, transactions[2].ClosingBalance); }
public void PrintStatement() { _console.WriteLine("Date || Amount || Balance"); var transactionStatementLines = _transactionRepo.GetStatementTransactions(); transactionStatementLines.Reverse(); foreach (var line in transactionStatementLines) { var formatted = $"{line.Date} || {line.ChangeToClosingBalance} || {line.ClosingBalance}"; _console.WriteLine(formatted); } }