Exemplo n.º 1
0
class ParkService(ABC):
    def __init__(self):
        self.lotHandler = None

    @property
    def IsInitialized(self):
        return self.lotHandler is not None

    @abstractmethod
    def allow(self, car, slotNum):
        pass

    def InitializeParkingLot(self, capacity):
        if self.lotHandler is None:
            self.lotHandler = LotHandler(capacity)
            return ParkingLotInit.format(capacity), self.lotHandler
        else:
            raise Exception('Already Initialized Parking Lot')

    def CheckCarParkedAlready(self, car):
        return self.lotHandler.IsCarParked(car)

    def ShowStatus(self):
        return self.lotHandler.slots

    def RegNumsByColor(self, color):
        result = self.lotHandler.GetRegNumsByColor(color)
        return ', '.join(result)

    def SlotNumsByColor(self, color):
        result = self.lotHandler.GetSlotNumsByColor(color)
        return ', '.join(result)

    def SlotNumForRegNum(self, regNum):
        return self.lotHandler.GetSlotNumByRegNum(regNum)
Exemplo n.º 2
0
    def test_car_parked_already(self):
        # Arrange
        lh = LotHandler(2)
        firstCar = Car('KA-01-HH-1234', 'White')
        duplicateCar = Car('KA-01-HH-1234', 'White')

        # Act
        lh.FillSlot(firstCar, 1)
        lh.FillSlot(duplicateCar, 2)

        # Assert
        self.assertTrue(lh.IsCarParked(duplicateCar))