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();
        }
Ejemplo n.º 10
0
        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);
        }