Esempio n. 1
0
        private IBankAccountDailyBalances BuildDailyBalances()
        {
            // Arrange
            IBankAccountDailyBalances dailyBalances = new BankAccountDailyBalances(0.0);

            var parameters = new List <(string Date, double Value)>()
            {
                ("01/10/2020 00:00:00", 1.0),
                ("01/10/2020 01:00:00", 1.0),
                ("01/10/2020 02:00:00", 1.0),
                ("02/15/2020 03:00:00", 2.0),
                ("02/15/2020 04:00:00", 2.0),
                ("02/15/2020 05:00:00", 2.0),
                ("04/01/2020 06:00:00", 3.0),
                ("04/01/2020 07:00:00", 3.0),
                ("04/01/2020 08:00:00", 3.0),
            };

            var transactions = new List <FinancialTransactionDto>();

            foreach (var param in parameters)
            {
                transactions.Add(new FinancialTransactionDto(DateTime.Parse(param.Date), "Ledger", param.Value, "Company"));
            }

            dailyBalances.InsertBatchOfNewTransactions(transactions);
            return(dailyBalances);
        }
Esempio n. 2
0
        public void InsertBatchOfNewTransactions_SingleDayThreeTransactions_ReturnsExpectedBalance()
        {
            // Arrange
            IBankAccountDailyBalances dailyBalances = new BankAccountDailyBalances(0.0);

            var parameters = new List <(string Date, double Value)>()
            {
                ("01/01/2020 00:00:00", 1.0),
                ("01/01/2020 00:00:00", 2.0),
                ("01/01/2020 00:00:00", 3.0),
            };

            var transactions = new List <FinancialTransactionDto>();

            foreach (var param in parameters)
            {
                transactions.Add(new FinancialTransactionDto(DateTime.Parse(param.Date), "Ledger", param.Value, "Company"));
            }

            // Act
            dailyBalances.InsertBatchOfNewTransactions(transactions);

            // Assert
            dailyBalances.LastDailyEndingBalance.ShouldEqual(6);
        }
Esempio n. 3
0
        public void InsertBatchOfNewTransactions_ThreeSparseDaysThreeTransactionsEach_ReturnsExpectedDailyBalance()
        {
            // Arrange
            IBankAccountDailyBalances dailyBalances = new BankAccountDailyBalances(0.0);

            var parameters = new List <(string Date, double Value)>()
            {
                ("01/01/2020 00:00:00", 1.0),
                ("01/01/2020 01:00:00", 1.0),
                ("01/01/2020 02:00:00", 1.0),
                ("02/15/2020 03:00:00", 2.0),
                ("02/15/2020 04:00:00", 2.0),
                ("02/15/2020 05:00:00", 2.0),
                ("04/01/2020 06:00:00", 3.0),
                ("04/01/2020 07:00:00", 3.0),
                ("04/01/2020 08:00:00", 3.0),
            };

            var transactions = new List <FinancialTransactionDto>();

            foreach (var param in parameters)
            {
                transactions.Add(new FinancialTransactionDto(DateTime.Parse(param.Date), "Ledger", param.Value, "Company"));
            }

            // Act
            dailyBalances.InsertBatchOfNewTransactions(transactions);

            // Assert
            var balances = dailyBalances.GetAllDailyBalances();

            balances.Count.ShouldEqual(3);
            balances[0].Date.ShouldEqual(DateTime.Parse("01/01/2020 00:00:00"));
            balances[0].StartingBalance.ShouldEqual(0);
            balances[0].TotalTransactionSum.ShouldEqual(3);
            balances[0].EndingBalance.ShouldEqual(3);

            balances[1].Date.ShouldEqual(DateTime.Parse("02/15/2020 00:00:00"));
            balances[1].StartingBalance.ShouldEqual(3);
            balances[1].TotalTransactionSum.ShouldEqual(6);
            balances[1].EndingBalance.ShouldEqual(9);

            balances[2].Date.ShouldEqual(DateTime.Parse("04/01/2020 00:00:00"));
            balances[2].StartingBalance.ShouldEqual(9);
            balances[2].TotalTransactionSum.ShouldEqual(9);
            balances[2].EndingBalance.ShouldEqual(18);
        }