Exemplo n.º 1
0
        public void SetUp()
        {
            this.Client = new Client();

            this.BikeSpecifications = new BikeSpecifications(TestsConstants.BIKE_BRAND,
                                                             TestsConstants.BIKE_MODEL, TestsConstants.BIKE_COLOR);
            this.Bike = new Bike(TestsConstants.BIKE_IDENTIFICATION_CODE, this.BikeSpecifications);

            PromotionRules familyRentalRules = new PromotionRules(TestsConstants.FAMILY_RENTAL_TERMS_AND_CONDITIONS,
                                                                  new DateTime(TestsConstants.FAMILY_RENTAL_EFFECTIVE_DATE_YEAR, TestsConstants.FAMILY_RENTAL_EFFECTIVE_DATE_MONTH,
                                                                               TestsConstants.FAMILY_RENTAL_EFFECTIVE_DATE_DAY, 0, 0, 0),
                                                                  new DateTime(TestsConstants.FAMILY_RENTAL_EXPIRATON_DATE_YEAR, TestsConstants.FAMILY_RENTAL_EXPIRATON_DATE_MONTH,
                                                                               TestsConstants.FAMILY_RENTAL_EXPIRATON_DATE_DAY, 0, 0, 0));
            FamilyRentalInformation familyRentalInformation = new FamilyRentalInformation(
                TestsConstants.FAMILY_RENTAL_DISCOUNT_PERCENT, TestsConstants.FAMILY_RENTAL_MINIMUM_RENTALS,
                TestsConstants.FAMILY_RENTAL_MAXIMUM_RENTALS, familyRentalRules);

            RentalByHour rentalByHour = new RentalByHour(new Money(TestsConstants.RENTAL_BY_HOUR_AMOUNT,
                                                                   TestsConstants.RENTAL_BY_HOUR_TYPE_OF_CURRENCY));
            RentalByDay rentalByDay = new RentalByDay(new Money(TestsConstants.RENTAL_BY_DAY_AMOUNT,
                                                                TestsConstants.RENTAL_BY_DAY_TYPE_OF_CURRENCY));
            RentalByWeek rentalByWeek = new RentalByWeek(new Money(TestsConstants.RENTAL_BY_WEEK_AMOUNT,
                                                                   TestsConstants.RENTAL_BY_WEEK_TYPE_OF_CURRENCY));

            this.RentalOperator = new RentalOperator(familyRentalInformation, rentalByHour, rentalByDay, rentalByWeek);
        }
Exemplo n.º 2
0
 public RentalFinalization FinalizeRental(IRental rental, IRentalOperator rentalOperator)
 {
     return(rentalOperator.FinalizeRental(this, rental));
 }
Exemplo n.º 3
0
 public FamilyRental RequestAFamilyRental(IList <IClient> clientsOfTheRentals, IList <Bike> bikes, IList <UnitOfTime> unitsOfTime, IRentalOperator rentalOperator)
 {
     return(rentalOperator.ProvideFamilyRental(this, clientsOfTheRentals, bikes, unitsOfTime));
 }
Exemplo n.º 4
0
 public Rental RequestARental(Bike bike, UnitOfTime unitOfTime, IRentalOperator rentalOperator)
 {
     return(rentalOperator.ProvideRental(this, bike, unitOfTime));
 }
Exemplo n.º 5
0
 public RentalBeginning(IRentalOperator rentalOperatorWhoIsBeginningRental)
 {
     this.RentalOperatorWhoBeganRental = rentalOperatorWhoIsBeginningRental;
     this.Date = DateTime.Now;
 }
Exemplo n.º 6
0
 public RentalFinalization(IClient clientWhoIsFinalizingRental, IRentalOperator rentalOperatorWhoIsFinalizingRental)
 {
     this.ClientWhoFinalizedRental         = clientWhoIsFinalizingRental;
     this.RentalOperatorWhoFinalizedRental = rentalOperatorWhoIsFinalizingRental;
     this.Date = DateTime.Now;
 }