Exemplo n.º 1
0
        public void GetAllAvailableLimousines_AvailableLimousine_ShouldWork()
        {
            VipServicesContextTest contextTest   = new VipServicesContextTest(keepExistingDB: false);
            VipServicesManager     m             = new VipServicesManager(new UnitOfWork(contextTest));
            LimousineRepository    limousineRepo = new LimousineRepository(contextTest);

            Address  addressCustomer          = new Address("Groenlaan", "17", "Herzele");
            Address  limousineExceptedAddress = new Address("Nieuwstraat", "5B", "Brussel");
            Customer customer        = new Customer("Jan", "", addressCustomer, CategoryType.particulier);
            Location locationStart   = new Location("Gent");
            Location locationArrival = new Location("Brussel");

            m.AddLimousine("Chrysler", "300C Limousine", "White", 175, 800, 500, 1000);
            Limousine limousineChrysler = limousineRepo.Find(1);

            // 6 uur ervoor
            m.AddBusinessReservation(customer, limousineExceptedAddress, locationStart, locationArrival,
                                     new DateTime(2020, 09, 22, 0, 0, 0), new DateTime(2020, 09, 22, 2, 0, 0), limousineChrysler);

            // 6 uur erna
            m.AddBusinessReservation(customer, limousineExceptedAddress, locationStart, locationArrival,
                                     new DateTime(2020, 09, 22, 16, 0, 0), new DateTime(2020, 09, 22, 18, 0, 0), limousineChrysler);

            List <Limousine> limousines = m.GetAllAvailableLimousines(new DateTime(2020, 09, 22, 8, 0, 0),
                                                                      new DateTime(2020, 09, 22, 10, 0, 0), ArrangementType.NightLife);

            Assert.AreEqual(1, contextTest.Limousines.Local.Count);
            Assert.AreEqual(2, contextTest.Reservations.Local.Count);
            Assert.AreEqual(limousines.Count, 1);
        }
Exemplo n.º 2
0
        public void AddBusinessReservation_WithNotAvailableLimousine_ShouldThrowException()
        {
            VipServicesContextTest contextTest   = new VipServicesContextTest(keepExistingDB: false);
            VipServicesManager     m             = new VipServicesManager(new UnitOfWork(contextTest));
            LimousineRepository    limousineRepo = new LimousineRepository(contextTest);

            Address  addressCustomer          = new Address("Groenlaan", "17", "Herzele");
            Address  limousineExceptedAddress = new Address("Nieuwstraat", "5B", "Brussel");
            Customer customer        = new Customer("Jan", "", addressCustomer, CategoryType.particulier);
            Location locationStart   = new Location("Gent");
            Location locationArrival = new Location("Brussel");
            DateTime startTime       = new DateTime(2020, 09, 22, 7, 0, 0);
            DateTime endTime         = new DateTime(2020, 09, 22, 17, 0, 0);
            TimeSpan totalHours      = endTime - startTime;

            m.AddLimousine("Tesla", "Model X", "White", 600, 1500, 2500, 2700);
            Limousine limousine = limousineRepo.Find(1);

            m.AddBusinessReservation(customer, limousineExceptedAddress, locationStart, locationArrival,
                                     startTime, endTime, limousine);

            Action act = () =>
            {
                m.AddBusinessReservation(customer, limousineExceptedAddress, locationStart, locationArrival,
                                         startTime, endTime, limousine);
            };

            act.Should().Throw <DomainException>().WithMessage("Limousine is niet beschikbaar.");
        }
Exemplo n.º 3
0
        public void GetAllReservations_CustomerId_ShouldWork()
        {
            VipServicesContextTest contextTest   = new VipServicesContextTest(keepExistingDB: false);
            VipServicesManager     m             = new VipServicesManager(new UnitOfWork(contextTest));
            LimousineRepository    limousineRepo = new LimousineRepository(contextTest);

            Address  addressCustomer          = new Address("Groenlaan", "17", "Herzele");
            Address  limousineExceptedAddress = new Address("Nieuwstraat", "5B", "Brussel");
            Customer customer        = new Customer("Jan", "", addressCustomer, CategoryType.particulier);
            Customer customer2       = new Customer("Piet", "", addressCustomer, CategoryType.concertpromotor);
            Location locationStart   = new Location("Gent");
            Location locationArrival = new Location("Brussel");
            DateTime startTime       = new DateTime(2020, 09, 22, 8, 0, 0);
            DateTime endTime         = new DateTime(2020, 09, 22, 18, 0, 0);

            m.AddLimousine("Tesla", "Model X", "White", 600, 1500, 2500, 2700);

            //2 reservaties door dezelfde klant
            Limousine limousine1 = limousineRepo.Find(1);

            m.AddWeddingReservation(customer, limousineExceptedAddress, locationStart, locationArrival,
                                    startTime, endTime, limousine1);
            Limousine limousine2 = limousineRepo.Find(1);

            m.AddBusinessReservation(customer, limousineExceptedAddress, locationStart, locationArrival,
                                     new DateTime(2020, 09, 09, 1, 0, 0), new DateTime(2020, 09, 09, 9, 0, 0), limousine2);
            Limousine limousine3 = limousineRepo.Find(1);

            //1 reservatie door een andere klant
            m.AddBusinessReservation(customer2, limousineExceptedAddress, locationStart, locationArrival,
                                     new DateTime(2020, 09, 30, 1, 0, 0), new DateTime(2020, 09, 30, 9, 0, 0), limousine3);

            Action act = () =>
            {
                m.GetAllReservations(customer.CustomerNumber);
            };

            act.Should().NotThrow <Exception>();
            Assert.AreEqual(3, contextTest.Reservations.Local.Count);
            Assert.AreEqual(m.GetAllReservations(customer.CustomerNumber).Count, 2);
        }
Exemplo n.º 4
0
        private void btnReservation_Click(object sender, RoutedEventArgs e)
        {
            if (cmbCustomer.SelectedItem != null && txtStreet.Text != String.Empty && txtNumber.Text != String.Empty &&
                txtTown.Text != String.Empty && cmbArrangement.SelectedItem != null && dtpStartDate != null &&
                dtpEndDate != null && cmbStartLocation.SelectedItem != null && cmbEndTime.SelectedItem != null &&
                cmbStartTime != null && cmbEndTime != null && cmbLimousine != null)
            {
                try
                {
                    Address address = new Address(txtStreet.Text, txtNumber.Text, txtTown.Text);

                    DateTime startDate = GetStartDate();
                    DateTime endDate   = GetEndDate();

                    if (cmbArrangement.SelectedItem.Equals(ArrangementType.NightLife))
                    {
                        vipServicesManager.AddNightLifeReservation((Customer)cmbCustomer.SelectedItem, address, (Location)cmbStartLocation.SelectedItem,
                                                                   (Location)cmbArrivalLocation.SelectedItem, startDate, endDate, (Limousine)cmbLimousine.SelectedItem);
                    }
                    if (cmbArrangement.SelectedItem.Equals(ArrangementType.Wedding))
                    {
                        vipServicesManager.AddWeddingReservation((Customer)cmbCustomer.SelectedItem, address, (Location)cmbStartLocation.SelectedItem,
                                                                 (Location)cmbArrivalLocation.SelectedItem, startDate, endDate, (Limousine)cmbLimousine.SelectedItem);
                    }
                    if (cmbArrangement.SelectedItem.Equals(ArrangementType.Wellness))
                    {
                        vipServicesManager.AddWelnessReservation((Customer)cmbCustomer.SelectedItem, address, (Location)cmbStartLocation.SelectedItem,
                                                                 (Location)cmbArrivalLocation.SelectedItem, startDate, endDate, (Limousine)cmbLimousine.SelectedItem);
                    }
                    if (cmbArrangement.SelectedItem.Equals(ArrangementType.Business))
                    {
                        vipServicesManager.AddBusinessReservation((Customer)cmbCustomer.SelectedItem, address, (Location)cmbStartLocation.SelectedItem,
                                                                  (Location)cmbArrivalLocation.SelectedItem, startDate, endDate, (Limousine)cmbLimousine.SelectedItem);
                    }
                    if (cmbArrangement.SelectedItem.Equals(ArrangementType.Airport))
                    {
                        vipServicesManager.AddAirportReservation((Customer)cmbCustomer.SelectedItem, address, (Location)cmbStartLocation.SelectedItem,
                                                                 (Location)cmbArrivalLocation.SelectedItem, startDate, endDate, (Limousine)cmbLimousine.SelectedItem);
                    }
                    MessageBox.Show("Reservatie is succesvol toegevoegd!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Fout: " + ex.Message,
                                    "Exception Sample", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            else
            {
                MessageBox.Show("Gelieve alle velden in te vullen.");
            }
        }
Exemplo n.º 5
0
        public void AddBusinessReservation_ShouldWork()
        {
            VipServicesContextTest contextTest   = new VipServicesContextTest(keepExistingDB: false);
            VipServicesManager     m             = new VipServicesManager(new UnitOfWork(contextTest));
            LimousineRepository    limousineRepo = new LimousineRepository(contextTest);

            Address  addressCustomer          = new Address("Groenlaan", "17", "Herzele");
            Address  limousineExceptedAddress = new Address("Nieuwstraat", "5B", "Brussel");
            Customer customer        = new Customer("Jan", "", addressCustomer, CategoryType.particulier);
            Location locationStart   = new Location("Gent");
            Location locationArrival = new Location("Brussel");
            DateTime startTime       = new DateTime(2020, 09, 22, 7, 0, 0);
            DateTime endTime         = new DateTime(2020, 09, 22, 17, 0, 0);
            TimeSpan totalHours      = endTime - startTime;

            m.AddLimousine("Tesla", "Model X", "White", 600, 1500, 2500, 2700);
            Limousine limousine = limousineRepo.Find(1);

            double      discountPercentage = m.CalculateStaffel(customer);
            Price       price = PriceCalculator.PerHourPriceCalculator(limousine, totalHours, startTime, endTime, discountPercentage);
            Reservation businessReservation = new Reservation(customer, DateTime.Now, limousineExceptedAddress, locationStart, locationArrival,
                                                              ArrangementType.Business, startTime, endTime, totalHours, limousine, price);

            Action act = () =>
            {
                m.AddBusinessReservation(customer, limousineExceptedAddress, locationStart, locationArrival,
                                         startTime, endTime, limousine);
            };

            act.Should().NotThrow <DomainException>();
            Assert.AreEqual(1, contextTest.Reservations.Local.Count);
            var reservationInDb = contextTest.Reservations.First();

            Assert.AreEqual(reservationInDb.Customer, businessReservation.Customer);
            Assert.AreEqual(reservationInDb.LimousineExpectedAddress, businessReservation.LimousineExpectedAddress);
            Assert.AreEqual(reservationInDb.StartLocation, businessReservation.StartLocation);
            Assert.AreEqual(reservationInDb.ArrivalLocation, businessReservation.ArrivalLocation);
            Assert.AreEqual(reservationInDb.ArrangementType, businessReservation.ArrangementType);
            Assert.AreEqual(reservationInDb.StartTime, businessReservation.StartTime);
            Assert.AreEqual(reservationInDb.EndTime, businessReservation.EndTime);
            Assert.AreEqual(reservationInDb.TotalHours, businessReservation.TotalHours);
            Assert.AreEqual(reservationInDb.Limousine, businessReservation.Limousine);
            Assert.AreEqual(reservationInDb.Price.Total, businessReservation.Price.Total);
        }