public void BalanceAfterLastTransaction() { var account = new CashAccount(); account.Deposit(new Date(2000, 01, 01), 100.00m, ""); account.Deposit(new Date(2000, 02, 01), 200.00m, ""); account.Withdraw(new Date(2000, 03, 01), 50.00m, ""); account.Balance(new Date(2002, 01, 01)).Should().Be(250.00m); }
public void BalanceAtSpecificDateWithNoTransactions() { var account = new CashAccount(); account.Deposit(new Date(2000, 01, 01), 100.00m, ""); account.Deposit(new Date(2000, 02, 01), 200.00m, ""); account.Withdraw(new Date(2000, 03, 01), 50.00m, ""); account.Balance(new Date(2000, 02, 15)).Should().Be(300.00m); }
public void BalanceNoTransactionsOnThatDate() { var account = new CashAccount(); account.Deposit(new Date(2000, 01, 01), 100.00m, ""); account.Deposit(new Date(2000, 02, 01), 200.00m, ""); account.Deposit(new Date(2000, 02, 01), 60.00m, ""); account.Withdraw(new Date(2000, 03, 01), 50.00m, ""); account.Balance(new Date(2000, 02, 15)).Should().Be(360.00m); }
public void EffectiveBalancesStartAndEndDatesNotMatching() { var account = new CashAccount(); account.Deposit(new Date(2000, 01, 01), 100.00m, ""); account.Deposit(new Date(2000, 02, 01), 200.00m, ""); account.Deposit(new Date(2000, 02, 01), 60.00m, ""); account.Withdraw(new Date(2000, 03, 01), 50.00m, ""); var result = account.EffectiveBalances(new DateRange(new Date(2000, 01, 15), new Date(2000, 02, 15))).ToArray(); var expectedResult = new CashAccountEffectiveBalance[] { new CashAccountEffectiveBalance(new Date(2000, 01, 15), new Date(2000, 01, 31), 100.00m), new CashAccountEffectiveBalance(new Date(2000, 02, 01), new Date(2000, 02, 15), 360.00m), }; result.Should().BeEquivalentTo(expectedResult); }
public void Deposit() { var account = new CashAccount(); account.Deposit(new Date(2000, 01, 01), 100.00m, "test"); var result = account.Transactions.ToArray(); result.Should().BeEquivalentTo(new[] { new { Date = new Date(2000, 01, 01), Description = "test", Amount = 100.00m, Type = BankAccountTransactionType.Deposit, Balance = 100.00m } }); }