public void CalculateStaffel_Vip_2Res_ShouldBeCorrect() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); LimousineRepository limousineRepo = new LimousineRepository(contextTest); StaffelDiscountTestInitialize(); Address address = new Address("Groenlaan", "17", "Herzele"); Customer customer = new Customer("Jan", "BE0502358347", address, CategoryType.vip); m.AddLimousine("Chrysler", "300C Limousine", "White", 175, 800, 500, 1000); Limousine limousine = limousineRepo.Find(1); m.AddWeddingReservation(customer, address, new Location("Gent"), new Location("Brussel"), new DateTime(2020, 09, 22, 10, 0, 0), new DateTime(2020, 09, 22, 20, 0, 0), limousine); m.AddWeddingReservation(customer, address, new Location("Gent"), new Location("Brussel"), new DateTime(2020, 09, 23, 10, 0, 0), new DateTime(2020, 09, 23, 20, 0, 0), limousine); Action act = () => { m.CalculateStaffel(customer); }; act.Should().NotThrow <Exception>(); Assert.AreEqual(m.CalculateStaffel(customer), 5); }
public void GetAllAvailableLimousines_LimousineNotAvailable_ShouldNotShow() { 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, 20, 0, 0); DateTime endTime = new DateTime(2020, 09, 23, 3, 0, 0); //Niet beschikbaar - al gereserveerd m.AddLimousine("Chrysler", "300C Limousine", "White", 175, 800, 500, 1000); Limousine limousineChrysler = limousineRepo.Find(1); m.AddNightLifeReservation(customer, limousineExceptedAddress, locationStart, locationArrival, startTime, endTime, limousineChrysler); List <Limousine> limousines = m.GetAllAvailableLimousines(startTime, endTime, ArrangementType.NightLife); Assert.AreEqual(1, contextTest.Limousines.Local.Count); Assert.AreEqual(1, contextTest.Reservations.Local.Count); Assert.AreEqual(limousines.Count, 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); }
public void AddWelnessReservation_WithLessThen10Hours_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, 12, 0, 0); DateTime endTime = new DateTime(2020, 09, 22, 19, 0, 0); TimeSpan totalHours = endTime - startTime; m.AddLimousine("Tesla", "Model X", "White", 600, 1500, 2500, 2700); Limousine limousine = limousineRepo.Find(1); Action act = () => { m.AddWelnessReservation(customer, limousineExceptedAddress, locationStart, locationArrival, startTime, endTime, limousine); }; act.Should().Throw <DomainException>().WithMessage("Een Welness reservatie moet altijd 10 uur zijn."); }
public void StaffelDiscountTestInitialize() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); CategoryType vip = CategoryType.vip; StaffelDiscount staffel1 = new StaffelDiscount(2, 5, vip); StaffelDiscount staffel2 = new StaffelDiscount(7, 7.5, vip); StaffelDiscount staffel3 = new StaffelDiscount(15, 10, vip); m.AddStaffel(staffel1); m.AddStaffel(staffel2); m.AddStaffel(staffel3); CategoryType planner = CategoryType.huwelijksplanner; StaffelDiscount staffel4 = new StaffelDiscount(5, 7.5, planner); StaffelDiscount staffel5 = new StaffelDiscount(10, 10, planner); StaffelDiscount staffel6 = new StaffelDiscount(15, 12.5, planner); StaffelDiscount staffel7 = new StaffelDiscount(20, 15, planner); StaffelDiscount staffel8 = new StaffelDiscount(25, 25, planner); m.AddStaffel(staffel4); m.AddStaffel(staffel5); m.AddStaffel(staffel6); m.AddStaffel(staffel7); m.AddStaffel(staffel8); }
public void GetAllCustomers_ShouldWork() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); Action act = () => { m.AddCustomer("Jan", "BE0502358347", new Address("Groenlaan", "17", "Herzele"), CategoryType.geen); m.AddCustomer("Bob", "", new Address("Dorpstraat", "101", "Antwerpen"), CategoryType.concertpromotor); m.AddCustomer("Piet", "", new Address("Schoolstraat", "80", "Blankenberge"), CategoryType.huwelijksplanner); }; act.Should().NotThrow <DomainException>(); Assert.AreEqual(3, contextTest.Customers.Local.Count); }
public void CalculateStaffel_None_ShouldBeCorrect() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); Address address = new Address("Groenlaan", "17", "Herzele"); Customer customer = new Customer("Jan", "BE0502358347", address, CategoryType.geen); Action act = () => { m.CalculateStaffel(customer); }; act.Should().NotThrow <Exception>(); Assert.AreEqual(m.CalculateStaffel(customer), 0); }
public void GetAllAvailableLimousines_ArrangementNotAvailable_ShouldNotShow() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); LimousineRepository limousineRepo = new LimousineRepository(contextTest); DateTime startTime = new DateTime(2020, 09, 22, 20, 0, 0); DateTime endTime = new DateTime(2020, 09, 23, 3, 0, 0); m.AddLimousine("Lincoln", "Limousine", "Pink", 180, 0, 850, 1000); List <Limousine> limousines = m.GetAllAvailableLimousines(startTime, endTime, ArrangementType.NightLife); Assert.AreEqual(1, contextTest.Limousines.Local.Count); Assert.AreEqual(limousines.Count, 0); }
public void GetReservation_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, 8, 0, 0); DateTime endTime = new DateTime(2020, 09, 22, 18, 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.WeddingPriceCalculator (limousine, totalHours, startTime, endTime, discountPercentage); Reservation weddingReservation = new Reservation(customer, DateTime.Now, limousineExceptedAddress, locationStart, locationArrival, ArrangementType.Wedding, startTime, endTime, totalHours, limousine, price); m.AddWeddingReservation(customer, limousineExceptedAddress, locationStart, locationArrival, startTime, endTime, limousine); Action act = () => { m.GetReservation(1); }; act.Should().NotThrow <Exception>(); Assert.AreEqual(1, contextTest.Reservations.Local.Count); var reservationInDb = m.GetReservation(1); Assert.AreEqual(reservationInDb.Customer, weddingReservation.Customer); Assert.AreEqual(reservationInDb.LimousineExpectedAddress, weddingReservation.LimousineExpectedAddress); Assert.AreEqual(reservationInDb.StartLocation, weddingReservation.StartLocation); Assert.AreEqual(reservationInDb.ArrivalLocation, weddingReservation.ArrivalLocation); Assert.AreEqual(reservationInDb.ArrangementType, weddingReservation.ArrangementType); Assert.AreEqual(reservationInDb.StartTime, weddingReservation.StartTime); Assert.AreEqual(reservationInDb.EndTime, weddingReservation.EndTime); Assert.AreEqual(reservationInDb.TotalHours, weddingReservation.TotalHours); Assert.AreEqual(reservationInDb.Limousine, weddingReservation.Limousine); Assert.AreEqual(reservationInDb.Price.Total, weddingReservation.Price.Total); }
public void AddLocation_ShouldWork() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); Location location = new Location("Brussel"); Action act = () => { m.AddLocation("Brussel"); }; act.Should().NotThrow <Exception>(); Assert.AreEqual(1, contextTest.Locations.Local.Count); var locationInDB = contextTest.Locations.First(); Assert.AreEqual(locationInDB.Town, location.Town); }
public void GetAllLimousines_ShouldWork() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); m.AddLimousine("Chrysler", "300C Limousine", "White", 175, 800, 500, 1000); m.AddLimousine("Lincoln", "Limousine", "Pink", 180, 900, 500, 1000); m.AddLimousine("Tesla", "Model S", "White", 500, 0, 2000, 2200); Action act = () => { m.GetAllLimousines(); }; act.Should().NotThrow <DomainException>(); Assert.AreEqual(3, contextTest.Limousines.Local.Count); Assert.AreEqual(3, m.GetAllLimousines().Count); }
public void AddAddress_ShouldWork() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); Address address = new Address("Groenlaan", "17", "Herzele"); Action act = () => { m.AddAddress("Groenlaan", "17", "Herzele"); }; act.Should().NotThrow <DomainException>(); Assert.AreEqual(1, contextTest.Addresses.Local.Count); var addressInDb = contextTest.Addresses.First(); Assert.AreEqual(addressInDb.StreetName, address.StreetName); Assert.AreEqual(addressInDb.StreetNumber, address.StreetNumber); Assert.AreEqual(addressInDb.Town, address.Town); }
public void GetAllLocations_ShouldWork() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); m.AddLocation("Brussel"); m.AddLocation("Gent"); m.AddLocation("Antwerpen"); m.AddLocation("Brugge"); m.AddLocation("Luik"); Action act = () => { m.GetAllLocations(); }; act.Should().NotThrow <Exception>(); Assert.AreEqual(5, contextTest.Locations.Local.Count); Assert.AreEqual(5, m.GetAllLocations().Count); }
public void AddStaffel_ShouldWork() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); StaffelDiscount staffelDiscount = new StaffelDiscount(5, 5, CategoryType.concertpromotor); Action act = () => { m.AddStaffel(staffelDiscount); }; act.Should().NotThrow <Exception>(); Assert.AreEqual(1, contextTest.StaffelDiscounts.Local.Count); var staffelInDB = contextTest.StaffelDiscounts.First(); Assert.AreEqual(staffelInDB.Category, CategoryType.concertpromotor); Assert.AreEqual(staffelInDB.NumberOfBookedReservations, 5); Assert.AreEqual(staffelInDB.DiscountPercentage, 5); }
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); }
public void AddCustomer_ShouldWork() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); Address address = new Address("Groenlaan", "17", "Herzele"); Customer customer = new Customer("Jan", "BE0502358347", address, CategoryType.geen); Action act = () => { m.AddCustomer("Jan", "BE0502358347", address, CategoryType.geen); }; act.Should().NotThrow <DomainException>(); Assert.AreEqual(1, contextTest.Customers.Local.Count); var customerInDb = contextTest.Customers.First(); Assert.AreEqual(customerInDb.Name, customer.Name); Assert.AreEqual(customerInDb.BtwNumber, customer.BtwNumber); Assert.AreEqual(customerInDb.Address, customer.Address); Assert.AreEqual(customerInDb.Category, customer.Category); }
public void AddLimousine_ShouldWork() { VipServicesContextTest contextTest = new VipServicesContextTest(keepExistingDB: false); VipServicesManager m = new VipServicesManager(new UnitOfWork(contextTest)); Limousine limousine = new Limousine("Chrysler", "300C Limousine", "White", 175, 800, 500, 1000); Action act = () => { m.AddLimousine("Chrysler", "300C Limousine", "White", 175, 800, 500, 1000); }; act.Should().NotThrow <DomainException>(); Assert.AreEqual(1, contextTest.Limousines.Local.Count); var limousinesInDb = contextTest.Limousines.First(); Assert.AreEqual(limousinesInDb.Brand, limousine.Brand); Assert.AreEqual(limousinesInDb.Model, limousine.Model); Assert.AreEqual(limousinesInDb.Color, limousine.Color); Assert.AreEqual(limousinesInDb.FirstHourPrice, limousine.FirstHourPrice); Assert.AreEqual(limousinesInDb.NightLifePrice, limousine.NightLifePrice); Assert.AreEqual(limousinesInDb.WeddingPrice, limousine.WeddingPrice); Assert.AreEqual(limousinesInDb.WelnessPrice, limousine.WelnessPrice); }