예제 #1
0
    def test_returnBike_withInvalidInput(self):
        customer = Customer()
        customer.rentalBasics = 1
        customer.bikes = 0
        customer.rentalTime = 0

        self.assertEqual(customer.returnBike(), (0, 0, 0))
예제 #2
0
    def test_returnBike(self):
        customer = Customer()
        customer.rentalBasics = 1
        customer.bikes = 2
        customer.rentalTime = datetime.now()

        self.assertEqual(customer.returnBike(), (2, 1, datetime.now()))
    def test_returnBike_for_invalid_rentalBasis(self):
        shop = BikeRental(10)
        customer = Customer()

        customer.rentalTime = datetime.now()
        customer.bikes = 3

        #invalid rental basis: can only be 1 2 & 3 ( i  think, looking at if statment in return bike)
        customer.rentalBasis = 7

        request = customer.returnBike()
        self.assertEqual(shop.returnBike(request), 0)
    def test_returnBike_for_invalid_numOfBikes(self):
        shop = BikeRental(10)
        customer = Customer()

        customer.rentalTime = datetime.now()
        customer.rentalBasis = 1

        #invalid number of bikes
        customer.bikes = 0

        request = customer.returnBike()
        self.assertEqual(shop.returnBike(request), None)
        self.assertIsNone(shop.returnBike(request))
    def test_returnBike_for_valid_credential(self):
        #create shop and 6 customers
        shop = BikeRental(50)
        customer1 = Customer()
        customer2 = Customer()
        customer3 = Customer()
        customer4 = Customer()
        customer5 = Customer()
        customer6 = Customer()

        customer1.rentalBasis = 1  #hourly
        customer2.rentalBasis = 1
        customer3.rentalBasis = 2  #daily
        customer4.rentalBasis = 2
        customer5.rentalBasis = 3  #weekly
        customer6.rentalBasis = 3

        customer1.bikes = 1
        customer2.bikes = 5  #eligible for 30% discount
        customer3.bikes = 2
        customer4.bikes = 8
        customer5.bikes = 15
        customer6.bikes = 30

        customer1.rentalTime = datetime.now() + timedelta(hours=-4)
        customer2.rentalTime = datetime.now() + timedelta(hours=-23)
        customer3.rentalTime = datetime.now() + timedelta(days=-4)
        customer4.rentalTime = datetime.now() + timedelta(days=-13)
        customer5.rentalTime = datetime.now() + timedelta(weeks=-6)
        customer6.rentalTime = datetime.now() + timedelta(weeks=-12)

        request1 = customer1.returnBike()
        request2 = customer2.returnBike()
        request3 = customer3.returnBike()
        request4 = customer4.returnBike()
        request5 = customer5.returnBike()
        request6 = customer6.returnBike()

        #check if bill is correct
        self.assertEqual(shop.returnBike(request1), 20)
        self.assertEqual(shop.returnBike(request2), 402.5)
        self.assertEqual(shop.returnBike(request3), 160)
        self.assertEqual(shop.returnBike(request4), 2080)
        self.assertEqual(shop.returnBike(request5), 5400)
        self.assertEqual(shop.returnBike(request6), 21600)