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); }
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."); }
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); }
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."); } }
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); }