public void OnPowerOffEnablesIfNotEnabled() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Input); var pwm = Substitute.For <IPwmChannel>(); var pinInterface = new SystemPinInterface(123, gpio, pwm); //act pinInterface.OnPowerOff(() => { }); //assert gpio.Received().OpenPin(123); }
public void OnPowerOffPerformsAction() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Input); gpio.When(g => g.RegisterCallbackForPinValueChangedEvent(123, PinEventTypes.Falling, Arg.Any <PinChangeEventHandler>())) .Do(c => c.Arg <PinChangeEventHandler>().Invoke(null, null)); var pinInterface = new SystemPinInterface(123, gpio) { Power = PowerValue.Off }; var called = false; //act pinInterface.OnPowerOff(() => called = true); //assert Assert.True(called); }