예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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 }
            });
        }