public void TestPriceCalculationChargedDiscountsMaxAmountReservation() { DateTime reservationDateStart = new DateTime(2020, 01, 23, 15, 00, 00); DateTime reservationDateEnd = new DateTime(2020, 01, 23, 18, 00, 00); Arrangement arrangement = new HourlyArrangement(100, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); Limousine limoTest = new Limousine("FIAT 500", 100, new List <Arrangement>() { }); List <Discount> vip = new List <Discount>() { new Discount(2, 0.05f), new Discount(7, 0.075f), new Discount(15, 0.1f) }; Category categorieTestVIP = new Category(vip, CategorieType.vip); Client clientTest = new Client("Tom", "684432685", "Jef De Belderlaan 6", categorieTestVIP); _ = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart, reservationDateEnd, Location.Gent, Location.Brussel, limoTest, arrangement)); _ = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart.AddDays(1), reservationDateEnd.AddDays(1), Location.Gent, Location.Brussel, limoTest, arrangement)); _ = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart.AddDays(2), reservationDateEnd.AddDays(1), Location.Gent, Location.Brussel, limoTest, arrangement)); _ = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart.AddDays(3), reservationDateEnd.AddDays(1), Location.Gent, Location.Brussel, limoTest, arrangement)); _ = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart.AddDays(4), reservationDateEnd.AddDays(1), Location.Gent, Location.Brussel, limoTest, arrangement)); _ = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart.AddDays(5), reservationDateEnd.AddDays(1), Location.Gent, Location.Brussel, limoTest, arrangement)); _ = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart.AddDays(6), reservationDateEnd.AddDays(1), Location.Gent, Location.Brussel, limoTest, arrangement)); Reservation test = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart.AddDays(7), reservationDateEnd.AddDays(2), Location.Gent, Location.Brussel, limoTest, arrangement)); test.PriceCalculation.ChargedDiscounts.ShouldBe(17.25m);//7.5% }
public void TestGetPriceOnlyDayHours() { DateTime reservationDateStart = new DateTime(2020, 01, 23, 9, 00, 00); DateTime reservationDateEnd = new DateTime(2020, 01, 23, 12, 00, 00); HourlyArrangement hourlyArrangement = new HourlyArrangement(10, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); //3 daguren hourlyArrangement.Price.ShouldBe(20); }
public void TestGetPriceOnlyNightHours() { DateTime reservationDateStart = new DateTime(2020, 01, 23, 23, 00, 00); DateTime reservationDateEnd = new DateTime(2020, 01, 24, 6, 00, 00); HourlyArrangement hourlyArrangement = new HourlyArrangement(10, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); //7 nachturen =15 hourlyArrangement.Price.ShouldBe(105); }
public void TestGetPriceStartDayNightHoursEndDayNightHours() { DateTime reservationDateStart = new DateTime(2020, 01, 23, 21, 00, 00); DateTime reservationDateEnd = new DateTime(2020, 01, 24, 7, 00, 00); HourlyArrangement hourlyArrangement = new HourlyArrangement(10, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); //8 nachturen =15 2 daguren = 10 + 6.5 hourlyArrangement.Price.ShouldBe(135); }
public void TestGetPriceEndHoursNighthours() { DateTime reservationDateStart = new DateTime(2020, 01, 23, 21, 00, 00); DateTime reservationDateEnd = new DateTime(2020, 01, 24, 4, 00, 00); HourlyArrangement hourlyArrangement = new HourlyArrangement(10, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); //6 nachturen = 15 , 1 daguur = 10 hourlyArrangement.Price.ShouldBe(100); }
public void TestReservationDetailsDatesNotHoursOnly() { Limousine limoTest = new Limousine("FIAT 500", 100, new List <Arrangement>() { }); DateTime reservationDateStart = new DateTime(2012, 01, 23, 12, 15, 00); DateTime reservationDateEnd = new DateTime(2012, 01, 23, 18, 00, 00); Arrangement arrangement = new HourlyArrangement(100, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); Action a = () => new ReservationDetails(reservationDateStart, reservationDateEnd, Location.Gent, Location.Brussel, limoTest, arrangement); a.ShouldThrow <ArgumentException>().Message.ShouldBe("Reservatiedatums mogen enkel uren bevatten."); }
public void TestReservationDetailsLimousineNotReady() { Limousine limoTest = new Limousine("FIAT 500", 100, new List <Arrangement>() { }); DateTime reservationDateStart = new DateTime(2012, 01, 23, 12, 00, 00); DateTime reservationDateEnd = new DateTime(2012, 01, 23, 18, 00, 00); Arrangement arrangement = new HourlyArrangement(100, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); ReservationDetails detailsTest = new ReservationDetails(reservationDateStart, reservationDateEnd, Location.Gent, Location.Brussel, limoTest, arrangement); DateTime reservationDateStartNext = new DateTime(2012, 01, 23, 20, 00, 00); DateTime reservationDateEndNext = new DateTime(2012, 01, 24, 5, 00, 00); Action a = () => new ReservationDetails(reservationDateStartNext, reservationDateEndNext, Location.Charleroi, Location.Brussel, limoTest, arrangement); a.ShouldThrow <ArgumentException>().Message.ShouldBe("Tussen 2 reservaties moet er minstens 6 uur verschil zijn."); }
public void TestRudyManagerAddReservationLimousineNotInDatabase() { UnitOfWork uow = new UnitOfWork(new VIPServicesRudyTestContext(true)); VIPServicesRudyManager m = new VIPServicesRudyManager(uow); DateTime reservationDateStart = new DateTime(2020, 01, 23, 15, 00, 00); DateTime reservationDateEnd = new DateTime(2020, 01, 23, 18, 00, 00); Limousine limoTest = new Limousine("FIAT 500", 100, new List <Arrangement>() { }); Client clientTest = uow.Clients.GetClient(3); Arrangement arrangement = new HourlyArrangement(100, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); Reservation test = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart, reservationDateEnd, Location.Gent, Location.Brussel, limoTest, arrangement)); Action act = () => m.AddReservation(test); act.ShouldThrow <ArgumentException>().Message.ShouldBe("Limousine zit nog niet in databank gelieve Limousine eerst toe te voegen."); }
public void TestRudyManagerAddReservation() { UnitOfWork uow = new UnitOfWork(new VIPServicesRudyTestContext(false)); VIPServicesRudyManager m = new VIPServicesRudyManager(uow); Parser.InitTestDatabase(uow); DateTime reservationDateStart = new DateTime(2020, 01, 23, 15, 00, 00); DateTime reservationDateEnd = new DateTime(2020, 01, 23, 18, 00, 00); Limousine limoTest = uow.Limousines.GetLimousine(2); Client clientTest = uow.Clients.GetClient(2); Arrangement arrangement = new HourlyArrangement(100, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); Reservation test = new Reservation("Kerkstraat 45", clientTest, new ReservationDetails(reservationDateStart, reservationDateEnd, Location.Gent, Location.Brussel, limoTest, arrangement)); m.AddReservation(test); uow.Reservations.InDatabase(test).ShouldBeTrue(); }
public void TestPriceCalculationChargedDiscountsNoReservations() { DateTime reservationDateStart = new DateTime(2012, 01, 23, 15, 00, 00); DateTime reservationDateEnd = new DateTime(2012, 01, 23, 18, 00, 00); Arrangement arrangement = new HourlyArrangement(100, HourlyArrangementType.Airport, reservationDateStart, reservationDateEnd); Limousine limoTest = new Limousine("FIAT 500", 100, new List <Arrangement>() { }); List <Discount> vip = new List <Discount>() { new Discount(2, 0.05f), new Discount(7, 0.075f), new Discount(15, 0.1f) }; Category categorieTestVIP = new Category(vip, CategorieType.vip); Client clientTest = new Client("Tom", "684432685", "Jef De Belderlaan 6", categorieTestVIP); PriceCalculation priceTest = new PriceCalculation(arrangement, limoTest, clientTest, reservationDateStart, reservationDateEnd); priceTest.ChargedDiscounts.ShouldBe(0); }