Reputation: 147
I am still learning Pharo, but it is a bit confusing. There two classes, CarRental
and Car
, and a Test
class, CarRentalTest
.
There are fixed number of cars, the same car cannot be rented twice, I have the code, but there is a mistake.
| carRental redPanda yellowPanda blackTesla |
carRental := CarRental new.
redPanda := Car panda.
yellowPanda := Car panda.
blackTesla := Car tesla.
carRental
addCar: redPanda;
addCar: yellowPanda;
addCar: blackTesla.
self assert: carRental availableCars size equals: 3.
carRental rent: redPanda days: 5.
self assert: carRental availableCars size equals: 2.
self assert: carRental rentedCars size equals: 1
I tried to initialize the availableCars
and rentedCard
methods, but there is still an issue.
Upvotes: 3
Views: 424
Reputation: 14858
You need to keep track of rented cars, right? To do that add the ivar rented
to the CarRental
class and initialize it to an empty collection:
rented := OrderedCollection new.
(in other words, include the line above in the #initialize
method - instance side.)
Now, every time you rent a car add it to the rented
collection:
rent: aCar
rented add: aCar
and when the car is returned
return: aCar
rented remove: aCar
Also you can add the getter method which was missing so far
rentedCars
^rented
and compute the cars available for rent as
availableCars
^cars copyWithoutAll: rented
Upvotes: 4