public void EndofMonthManager_AccountIsPositive() { AccountViewModel account1 = new AccountViewModel { Id = 1, CurrentBalance = -100, }; var paymentRepoSetup = new Mock <IPaymentRepository>(); paymentRepoSetup.Setup(x => x.GetList(It.IsAny <Expression <Func <PaymentViewModel, bool> > >())).Returns(new List <PaymentViewModel> { new PaymentViewModel { Id = 10, TargetAccountId = 1, Amount = 100, Date = DateTime.Now, Type = PaymentType.Income }, new PaymentViewModel { Id = 15, TargetAccountId = 1, Amount = 100, Date = DateTime.Now, Type = PaymentType.Income } }); var accounts = new List <AccountViewModel> { new AccountViewModel { Id = 2, CurrentBalance = 100 }, account1 }; EndOfMonthManager testManager = new EndOfMonthManager(paymentRepoSetup.Object); testManager.CheckEndOfMonthBalanceForAccounts(accounts); account1.IsOverdrawn.ShouldBeFalse(); }
public void GetTotalEndOfMonthBalance_TwoAccounts_SumOfAccounts() { var paymentMockSetup = new Mock <IPaymentRepository>(); paymentMockSetup.Setup(x => x.GetList(null)).Returns(() => new List <Payment>()); var endOfMonthManager = new EndOfMonthManager(paymentMockSetup.Object); endOfMonthManager.GetTotalEndOfMonthBalance(new List <Account> { new Account { CurrentBalance = 500 }, new Account { CurrentBalance = 200 } }).ShouldBe(700); }
public void EndofMonthManager_AccountIsPositive() { Account account1 = new Account(); account1.Id = 1; account1.CurrentBalance = -100; account1.EndMonthWarning = "Should Not Show"; var paymentDataAccess = new Mock <IDataAccess <Payment> >(); paymentDataAccess.Setup(x => x.LoadList(null)).Returns(new List <Payment> { new Payment { Id = 10, TargetAccountId = 1, Amount = 100, Date = DateTime.Now }, new Payment { Id = 15, TargetAccountId = 1, Amount = 100, Date = DateTime.Now } }); var paymentrepository = new PaymentRepository(paymentDataAccess.Object); paymentrepository.Load(); var accountDataAccess = new Mock <IDataAccess <Account> >(); accountDataAccess.Setup(x => x.LoadList(null)).Returns(new List <Account> { new Account { Id = 2, CurrentBalance = 100 }, account1 }); var accountrepository = new AccountRepository(accountDataAccess.Object); EndOfMonthManager testManager = new EndOfMonthManager(paymentrepository, accountrepository); testManager.AssignToAccounts(); Assert.AreEqual(account1.EndMonthWarning, " "); }
public void EndofMonthManager_AccountIsPositive() { Account account1 = new Account { Id = 1, CurrentBalance = -100, EndMonthWarning = "Should Not Show" }; var paymentDataAccess = new Mock <IDataAccess <Payment> >(); paymentDataAccess.Setup(x => x.LoadList(It.IsAny <Expression <Func <Payment, bool> > >())).Returns(new List <Payment> { new Payment { Id = 10, TargetAccountId = 1, Amount = 100, Date = DateTime.Now, Type = (int)PaymentType.Income }, new Payment { Id = 15, TargetAccountId = 1, Amount = 100, Date = DateTime.Now, Type = (int)PaymentType.Income } }); var paymentrepository = new PaymentRepository(paymentDataAccess.Object); paymentrepository.Load(); var accounts = new List <Account> { new Account { Id = 2, CurrentBalance = 100 }, account1 }; EndOfMonthManager testManager = new EndOfMonthManager(paymentrepository); testManager.CheckEndOfMonthBalanceForAccounts(accounts); account1.EndMonthWarning.ShouldBe(" "); }
public void EndofMonthManager_AccountIsNegative() { Account account1 = new Account { Id = 1, CurrentBalance = 100, EndMonthWarning = "Should Not Show" }; var paymentDataAccess = new Mock <IDataAccess <Payment> >(); paymentDataAccess.Setup(x => x.LoadList(null)).Returns(new List <Payment> { new Payment { Id = 10, ChargedAccountId = 1, Amount = 100, Date = DateTime.Now }, new Payment { Id = 15, ChargedAccountId = 1, Amount = 100, Date = DateTime.Now } }); var paymentrepository = new PaymentRepository(paymentDataAccess.Object); paymentrepository.Load(); var accounts = new List <Account> { new Account { Id = 2, CurrentBalance = 100 }, account1 }; EndOfMonthManager testManager = new EndOfMonthManager(paymentrepository); testManager.CheckEndOfMonthBalanceForAccounts(accounts); Assert.AreEqual(account1.EndMonthWarning, "Negative at end of month"); }