示例#1
0
        public void FinalizeRental()
        {
            Rental rental = this.Client.RequestARental(this.Bike, UnitOfTime.Week, this.RentalOperator);

            // This is so that the beginning time does not coincide with the finalization time.
            System.Threading.Thread.Sleep(2000);
            RentalFinalization rentalFinalization = this.Client.FinalizeRental(rental, this.RentalOperator);

            Assert.AreEqual(this.Client, rentalFinalization.ClientWhoFinalizedRental);
        }
示例#2
0
        public void PayPurchase()
        {
            Rental rental = this.Client.RequestARental(this.Bike, UnitOfTime.Week, this.RentalOperator);

            // This is so that the beginning time does not coincide with the finalization time.
            System.Threading.Thread.Sleep(2000);
            RentalFinalization rentalFinalization = this.Client.FinalizeRental(rental, this.RentalOperator);

            Payment payment = this.Client.PayPurchase(rental, rental.Cost, new Cashier());

            Assert.AreEqual(this.Client, payment.ClientWhoPaid);
        }
示例#3
0
        public void FinalizeNotFinalizedRental()
        {
            RentalBeginning beginning      = new RentalBeginning(this.RentalOperator);
            RentalModality  rentalModality = new RentalByWeek(new Money(TestsConstants.RENTAL_BY_WEEK_AMOUNT,
                                                                        TestsConstants.RENTAL_BY_WEEK_TYPE_OF_CURRENCY));
            IRental rental = new Rental(this.Client, beginning, this.Bike, rentalModality);

            RentalFinalization rentalFinalization = this.RentalOperator.FinalizeRental(this.Client, rental);

            Assert.AreEqual(rentalFinalization, rental.Finalization);
            Assert.AreEqual(this.RentalOperator, rental.Finalization.RentalOperatorWhoFinalizedRental);
            Assert.AreEqual(this.Client, rental.Finalization.ClientWhoFinalizedRental);

            Assert.AreEqual(BikeState.Free, this.Bike.State);
            Assert.AreEqual(null, this.Bike.Rental);
        }