public Program() { ICommand _command = new Command(); ICheckCommand _checkCommand = new CheckCommand(_command); ISlot _slot = new Slot(); IParkingLotRepository _parkingRepository = new ParkingLotRepository(); ICheckParkingLotCreated checkParkingLotCreated = new CheckParkingLotCreated(_parkingRepository); ICommandExecutorSelector createParkingLot = new CreateParkingLot(_checkCommand, _slot, checkParkingLotCreated, _parkingRepository); IValidateVeicleDetails _validateVeicleDetails = new ValidateVeicleDetails(); IParkingVehicle _parkingVehicle = new ParkingVehicle(); IParkSuccessMessage _parkSuccessMessage = new ParkSuccessMessage(); ICommandExecutorSelector park = new Park(_checkCommand, _validateVeicleDetails, _parkingVehicle, _parkingRepository, _parkSuccessMessage); ISlotToEmpty _slotToEmpty = new SlotToEmpty(); IMaxSlotIndex _maxSlotIndex = new MaxSlotIndex(); IValidateSlotNumberToEmpty _validateSlotNumberToEmpty = new ValidateSlotNumberToEmpty(_parkingRepository, _maxSlotIndex); ILeaveSuccessMessage _leaveSuccessMessage = new LeaveSuccessMessage(); ICommandExecutorSelector leave = new Leave(_checkCommand, _slotToEmpty, _validateSlotNumberToEmpty, _parkingRepository, _leaveSuccessMessage); IStatusOutput _statusOutput = new StatusOutput(); ICommandExecutorSelector status = new Status(_parkingRepository, _statusOutput); IVehicleColor _vehicleColor = new VehicleColor(); IVehicleByColor _vehicleByColor = new VehicleByColor(); IVehicleByColorSuccessMessage _vehicleByColorSuccessMessage = new VehicleByColorSuccessMessage(); ICommandExecutorSelector regNoByColor = new RegistrationNumbersForCarsWithColour(_checkCommand, _vehicleColor, _parkingRepository, _vehicleByColor, _vehicleByColorSuccessMessage); ISlotByColor _slotByColor = new SlotByColor(); ISlotByColorMessage _slotByColorMessage = new SlotByColorMessage(); ICommandExecutorSelector slotNoByColor = new SlotNumbersForCarsWithColour(_checkCommand, _vehicleColor, _parkingRepository, _slotByColor, _slotByColorMessage); IVehicleRegistrationNumber _vehicleRegistrationNumber = new VehicleRegistrationNumber(); ISlotByRegistrationNumber _slotByRegistrationNumber = new SlotByRegistrationNumber(); ICommandExecutorSelector slotByRegistration = new SlotNumberForRegistrationNumber(_checkCommand, _vehicleRegistrationNumber, _parkingRepository, _slotByRegistrationNumber); ICommandExecutorSelector[] _selectors = { createParkingLot, park, leave, status, regNoByColor, slotNoByColor, slotByRegistration }; _provider = new CommandExecutorProvider(_selectors); }
public ExecuteFromFile(ICommandExecutorProvier provider, IValidateFileType validateFileType, IInputFileReader fileReader) { _provider = provider; _validateFileType = validateFileType; _fileReader = fileReader; }
public void GivenCommandAs_EmptyString_ThenReturnNull() { //Given: string command = ""; //When: I call CommandExecutorProvier object _selectors = new ICommandExecutorSelector[1]; _selectors[0] = new ExecuteSelectorHijack(false); _provider = new CommandExecutorProvider(_selectors); var result = _provider.InitExecutor(command); //Then: I get a type of ICommandExecutor Assert.IsNull(result); }
public void GivenCommandAs_create_parking_lot_ThenReturnATypeOfICommandExecutor() { //Given: string command = "create_parking_lot"; //When: I call CommandExecutorProvier object _selectors = new ICommandExecutorSelector[1]; _selectors[0] = new ExecuteSelectorHijack(true); _provider = new CommandExecutorProvider(_selectors); var result = _provider.InitExecutor(command); //Then: I get a type of ICommandExecutor Assert.IsInstanceOfType(result, typeof(ICommandExecutor)); }