コード例 #1
0
    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);
    }
コード例 #2
0
        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);
        }