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); }
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); }
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); }