Exemple #1
0
        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;
        }