public async Task AllNotPaid_ShouldReturn_AllConsumablesThatAreNotPaid_IfSuchExist() { var db = GetDatabase(); var mapper = GetMapper(); var firstConsumable = new MonthlyPaymentConsumable { Id = 1, PaymentId = null, DeadLine = new DateTime(2018, 12, 12) }; var secndConsumable = new MonthlyPaymentConsumable { Id = 2, PaymentId = null, DeadLine = new DateTime(2018, 11, 12) }; var thirdConsumable = new MonthlyPaymentConsumable { Id = 3, PaymentId = 2, DeadLine = new DateTime(2018, 11, 12) }; var forthConsumable = new MonthlyPaymentConsumable { Id = 4, PaymentId = null, DeadLine = new DateTime(2018, 12, 15) }; await db.MonthlyPaymentConsumables.AddRangeAsync(firstConsumable, secndConsumable, thirdConsumable, forthConsumable); await db.SaveChangesAsync(); var consumableService = new MonthlyConsumablesService(mapper, db); //Act var result = await consumableService.AllNotPaidAsync(); //Assert result .Should() .HaveCount(3) .And .Match(x => x.ElementAt(0).Id == 4 && x.ElementAt(1).Id == 1); }
public async Task EditAsync_ShouldReturn_True_IfEntryExist() { var db = GetDatabase(); var mapper = GetMapper(); var monthlyConsumable = new MonthlyPaymentConsumable { Id = 1, DeadLine = new DateTime(2018, 12, 12), ElectricityDay = 1, ElectricityNight = 2, ElectricityPeak = 3, PaymentForElectricity = 4, PaymentForWater = 5, WaterReport = 6 }; await db.MonthlyPaymentConsumables.AddAsync(monthlyConsumable); await db.SaveChangesAsync(); var consumabelService = new MonthlyConsumablesService(mapper, db); var consumableEditInput = new EditMontlyConsumablesModel { DeadLine = new DateTime(2018, 12, 24), ElectricityDay = 7, ElectricityNight = 8, ElectricityPeak = 9, PaymentForElectricity = 10, PaymentForWater = 11, WaterReport = 12, Id = 1 }; //Act var result = await consumabelService.EditAsync(consumableEditInput); var createdConsumable = await db.MonthlyPaymentConsumables .FirstOrDefaultAsync(x => x.Id == 1); //Assert result .Should() .BeTrue(); createdConsumable .Should() .Match <MonthlyPaymentConsumable>(x => x.DeadLine == new DateTime(2018, 12, 24) && x.ElectricityDay == 7 && x.ElectricityNight == 8 && x.ElectricityPeak == 9 && x.PaymentForElectricity == 10 && x.PaymentForWater == 11 && x.WaterReport == 12); }
public async Task MakeConsumablesPaymentAsync_ShouldReturn_True_WhenInputIsCorrect() { var db = GetDatabase(); var mapper = GetMapper(); var firstMonthConsumable = new MonthlyPaymentConsumable { Id = 1, PaymentForWater = 100, PaymentForElectricity = 200 }; var secondMonthConsumable = new MonthlyPaymentConsumable { Id = 2, PaymentForWater = 200, PaymentForElectricity = 300 }; var thirdMonthConsumable = new MonthlyPaymentConsumable { Id = 3, PaymentForWater = 400, PaymentForElectricity = 500 }; await db.MonthlyPaymentConsumables.AddRangeAsync(firstMonthConsumable, secondMonthConsumable, thirdMonthConsumable); var user = new User { Id = "007" }; await db.Users.AddAsync(user); await db.SaveChangesAsync(); var paymentService = new PaymentsService(mapper, db, null); //Act var result = await paymentService.MakeConsumablesPaymentAsync(2, true, new DateTime(2018, 12, 12), "007"); var payment = await db.Payments .FirstOrDefaultAsync(x => x.MonthlyPaymentConsumableId == 2); //Assert result .Should() .BeTrue(); payment .Should() .Match <Payment>(x => x.CashPayment == true && x.UserId == "007" && x.Amount == 500); }
public async Task MakeConsumablesPaymentAsync_ShouldReturn_False_IfUsrerDoNotExist() { var db = GetDatabase(); var mapper = GetMapper(); var firstMonthConsumable = new MonthlyPaymentConsumable { Id = 1, PaymentForWater = 100, PaymentForElectricity = 200 }; var secondMonthConsumable = new MonthlyPaymentConsumable { Id = 2, PaymentForWater = 200, PaymentForElectricity = 300 }; var thirdMonthConsumable = new MonthlyPaymentConsumable { Id = 3, PaymentForWater = 400, PaymentForElectricity = 500 }; await db.MonthlyPaymentConsumables.AddRangeAsync(firstMonthConsumable, secondMonthConsumable, thirdMonthConsumable); var user = new User { Id = "007" }; await db.Users.AddAsync(user); await db.SaveChangesAsync(); var paymentService = new PaymentsService(mapper, db, null); //Act var result = await paymentService.MakeConsumablesPaymentAsync(2, true, new DateTime(2018, 12, 12), "069"); var payment = await db.Payments .FirstOrDefaultAsync(x => x.MonthlyPaymentConsumableId == 2); //Assert result .Should() .BeFalse(); payment .Should() .BeNull(); }
public async Task GetByIdAsync_ShouldReturn_Entity_IfExistInDb() { var db = GetDatabase(); var mapper = GetMapper(); var firstMonthlyConsumable = new MonthlyPaymentConsumable { Id = 1, DeadLine = new DateTime(2018, 12, 12), ElectricityDay = 1, ElectricityNight = 2, ElectricityPeak = 3, PaymentForElectricity = 4, PaymentForWater = 5, WaterReport = 6 }; var secondMonthlyConsumable = new MonthlyPaymentConsumable { Id = 2, DeadLine = new DateTime(2018, 12, 24), ElectricityDay = 7, ElectricityNight = 8, ElectricityPeak = 9, PaymentForElectricity = 10, PaymentForWater = 11, WaterReport = 12 }; await db.MonthlyPaymentConsumables.AddRangeAsync(firstMonthlyConsumable, secondMonthlyConsumable); await db.SaveChangesAsync(); var consumabelService = new MonthlyConsumablesService(mapper, db); //Act var result = await consumabelService.GetByIdAsync(2); //Assert result .Should() .BeOfType <MonthlyConsumablesViewModel>() .And .Match <MonthlyConsumablesViewModel>(x => x.DeadLine == new DateTime(2018, 12, 24) && x.ElectricityDay == 7 && x.ElectricityNight == 8 && x.ElectricityPeak == 9 && x.PaymentForElectricity == 10 && x.PaymentForWater == 11 && x.WaterReport == 12); }
public async Task TerminateAsync_ShouldReturn_True_IfEntityExistInDb() { var db = GetDatabase(); var mapper = GetMapper(); var firstMonthlyConsumable = new MonthlyPaymentConsumable { Id = 1, DeadLine = new DateTime(2018, 12, 12), ElectricityDay = 1, ElectricityNight = 2, ElectricityPeak = 3, PaymentForElectricity = 4, PaymentForWater = 5, WaterReport = 6 }; var secondMonthlyConsumable = new MonthlyPaymentConsumable { Id = 2, DeadLine = new DateTime(2018, 12, 24), ElectricityDay = 7, ElectricityNight = 8, ElectricityPeak = 9, PaymentForElectricity = 10, PaymentForWater = 11, WaterReport = 12 }; await db.MonthlyPaymentConsumables.AddRangeAsync(firstMonthlyConsumable, secondMonthlyConsumable); await db.SaveChangesAsync(); var consumabelService = new MonthlyConsumablesService(mapper, db); //Act var result = await consumabelService.TerminateAsync(2); var terminatedEntity = await db.MonthlyPaymentRents.FindAsync(2); //Assert result .Should() .BeTrue(); terminatedEntity .Should() .BeNull(); }
public async Task AllOverduConsumablesAsync_ShouldReturn_CollectionWithPendigPayments_IfSuchExistInDb() { var db = GetDatabase(); var mapper = GetMapper(); var firstMonthlyConsumable = new MonthlyPaymentConsumable { Id = 1, DeadLine = new DateTime(2016, 12, 12), PaymentForElectricity = 4, PaymentForWater = 5, }; var secondMonthlyConsumable = new MonthlyPaymentConsumable { Id = 2, DeadLine = new DateTime(2017, 12, 24), PaymentForElectricity = 10, PaymentForWater = 11, }; var thirdMonthlyConsumable = new MonthlyPaymentConsumable { Id = 3, DeadLine = new DateTime(2050, 12, 24), PaymentForElectricity = 14, PaymentForWater = 17, }; await db.MonthlyPaymentConsumables.AddRangeAsync(firstMonthlyConsumable, secondMonthlyConsumable, thirdMonthlyConsumable); await db.SaveChangesAsync(); var consumabelService = new MonthlyConsumablesService(mapper, db); //Act var result = await consumabelService.AllOverduConsumablesAsync(); //Assert result .Should() .HaveCount(2) .And .BeOfType <List <OverdueMonthlyConsumablesListingModel> >() .And .Match(x => x.ElementAt(0).PaymentForElectricity == 4 && x.ElementAt(1).PaymentForWater == 11); }
public async Task FilterConsumablesAsync_ShouldReturn_CorrectQueryResult_DependingOnInput() { var db = GetDatabase(); var mapper = GetMapper(); var firstMonthConsumable = new MonthlyPaymentConsumable { Id = 1, RentAgreement = new RentAgreement { Id = 1, ClientId = 1 } }; var secondMonthConsumable = new MonthlyPaymentConsumable { Id = 2, RentAgreement = new RentAgreement { Id = 1, ClientId = 1 } }; var thirdMonthConsumable = new MonthlyPaymentConsumable { Id = 3, RentAgreement = new RentAgreement { Id = 2, ClientId = 2 } }; var forthMonthConsumable = new MonthlyPaymentConsumable { Id = 4, RentAgreement = new RentAgreement { Id = 1, ClientId = 1 } }; await db.MonthlyPaymentConsumables.AddRangeAsync(firstMonthConsumable, secondMonthConsumable, thirdMonthConsumable, forthMonthConsumable); var firstPayment = new Payment { Id = 1, PaidOn = new DateTime(2018, 12, 12), Amount = 10, CashPayment = false, MonthlyPaymentConsumableId = 1, }; var secndPayment = new Payment { Id = 2, PaidOn = new DateTime(2017, 11, 6), Amount = 20, CashPayment = true, MonthlyPaymentConsumableId = 2, }; var thirdPayment = new Payment { Id = 3, PaidOn = new DateTime(2015, 11, 12), Amount = 30, CashPayment = false, MonthlyPaymentConsumableId = 3 }; var forthPayment = new Payment { Id = 4, PaidOn = new DateTime(2015, 12, 15), Amount = 40, CashPayment = false, MonthlyPaymentConsumableId = 4 }; var fifthPayment = new Payment { Id = 5, PaidOn = new DateTime(2017, 12, 15), Amount = 50, MonthlyPaymentConsumableId = null, CashPayment = false }; await db.Payments.AddRangeAsync(firstPayment, secndPayment, thirdPayment, forthPayment, fifthPayment); await db.SaveChangesAsync(); var filterModel = new FilterConsumablesBindingModel { Client = 1, OnlyCash = true, StartDate = new DateTime(2017, 1, 1), EndDate = new DateTime(2018, 12, 30) }; var paymentService = new PaymentsService(mapper, db, null); //Act var result = await paymentService.FilterConsumablesAsync(filterModel); //Assert result .Should() .BeOfType <FilterConsumablesViewModel>() .And .Match <FilterConsumablesViewModel>(x => x.TotalIncome == 20 && x.Payments.Any(y => y.PaidOn == new DateTime(2017, 11, 6))); }