public void TurnOffSetsPowerOff() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Output); var pwm = Substitute.For <IPwmChannel>(); var pinInterface = new SystemPinInterface(123, gpio, pwm) { Power = PowerValue.On }; //act pinInterface.TurnOff(); //assert gpio.Received().Write(123, PinValue.Low); }
public void SettingPowerSetsIOModeIfNotWrite() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Input); var pwm = Substitute.For <IPwmChannel>(); //act var pinInterface = new SystemPinInterface(123, gpio, pwm) { Power = PowerValue.On }; //assert Assert.NotNull(pinInterface); gpio.Received().SetPinMode(123, PinMode.Output); }
public void SettingPowerModeTurnsPinOff() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Input); var pwm = Substitute.For <IPwmChannel>(); var pinInterface = new SystemPinInterface(123, gpio, pwm) { PowerMode = PowerMode.Direct }; //act pinInterface.PowerMode = PowerMode.Differential; //assert gpio.Received().Write(123, PinValue.High); }
public void TurnOffForTurnsOnAfter() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Output); var pinInterface = new SystemPinInterface(123, gpio); //act pinInterface.TurnOffFor(TimeSpan.Zero); //assert var calls = gpio.ReceivedCalls().Where(c => c.GetMethodInfo().Name == "Write").ToArray(); Assert.Equal(PinValue.Low, calls[0].GetArguments()[1]); Assert.Equal(PinValue.High, calls[1].GetArguments()[1]); }
public void TurnOnSetsPowerOn() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Output); var pinInterface = new SystemPinInterface(123, gpio) { Power = PowerValue.Off }; //act pinInterface.TurnOn(); //assert gpio.Received().Write(123, PinValue.High); }
public void CanSetPower(Type powerModeType, PowerValue power, byte expected) { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Output); //act var pinInterface = new SystemPinInterface(123, gpio) { Enabled = true, PowerMode = (IPowerMode)Activator.CreateInstance(powerModeType), Power = power }; //assert gpio.Received().Write(123, expected); }
public void TurnOnStartsPWMWhenStrengthSet() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Output); gpio.Read(123).Returns(PinValue.High); var pwm = Substitute.For <IPwmChannel>(); var pinInterface = new SystemPinInterface(123, gpio, pwm) { Strength = 50 }; //act pinInterface.TurnOn(); //assert pwm.Received().Start(); }
public void GettingPowerEnablesPinIfNotEnabled() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.Read(123).Returns(PinValue.High); var pwm = Substitute.For <IPwmChannel>(); var pinInterface = new SystemPinInterface(123, gpio, pwm) { Direction = Direction.In }; //act var power = pinInterface.Power; //assert Assert.IsType <PowerValue>(power); gpio.Received().OpenPin(123); }
public void CanGetPower(Type powerModeType, byte value, PowerValue expected) { //arrange var gpio = Substitute.For <IGpioController>(); gpio.Read(123).Returns(value); var pinInterface = new SystemPinInterface(123, gpio) { Direction = Direction.Out, PowerMode = (IPowerMode)Activator.CreateInstance(powerModeType) }; //act var power = pinInterface.Power; //assert Assert.Equal(expected, power); }
public void OnPowerChangePerformsAction() { //arrange var gpio = Substitute.For <IGpioController>(); gpio.GetPinMode(123).Returns(PinMode.Input); gpio.When(g => g.RegisterCallbackForPinValueChangedEvent(123, Arg.Any <PinEventTypes>(), Arg.Any <PinChangeEventHandler>())) .Do(c => c.Arg <PinChangeEventHandler>().Invoke(null !, null !)); var pwm = Substitute.For <IPwmChannel>(); var pinInterface = new SystemPinInterface(123, gpio, pwm); var called = false; //act pinInterface.OnPowerChange(() => called = true); //assert Assert.True(called); }