public MicrowaveOvenController(IMicrowaveOvenHW microwaveOvenHW, MicrowaveOvenState startingState = MicrowaveOvenState.CLOSED) { this.microwaveOvenHW = microwaveOvenHW ?? throw new Exception("No microwave oven hardware passed!"); microwaveOvenHW.StartButtonPressed += OnStartButtonPressed; microwaveOvenHW.DoorOpenChanged += OnDoorOpenedChanged; timer = new MicrowaveOvenTimer(); timer.Finished += OnTimerFinished; SetInitialState(startingState); }
public MicrowaveController(IMicrowaveOvenHW hardware, ITimer timer, MicrowaveStateEnum initialState = MicrowaveStateEnum.CLOSED) { if (hardware == null || timer == null) { throw new Exception("Provide hardware and timer"); } _hardware = hardware; _hardware.StartButtonPressed += StartButtonPressed; _hardware.DoorOpenChanged += DoorOpenedChanged; _timer = timer; _timer.Finished += TimerStopped; MicrowaveState = initialState; }