public void ShouldCallActionHandler() { var mock = new Mock <IGPIODevice>(); mock.Setup(gpio => gpio.SetDirection(Direction.IN)).Returns(true); mock.Setup(gpio => gpio.GetValue()).Returns(0); var callArgs = new Dictionary <string, object>(); var eventListenerMock = new Mock <IEventListener>(); eventListenerMock.Setup(e => e.onEvent(It.IsAny <object>(), It.IsAny <MeasuredValueChange>())) .Callback <object, MeasuredValueChange>((sender, mesuredValue) => { callArgs.Add("deviceID", mesuredValue.DeviceID); callArgs.Add("measureName", mesuredValue.MeasureName); callArgs.Add("spaceID", mesuredValue.SpaceID); callArgs.Add("value", mesuredValue.NewValue); }); var device = new ConfiguredGPIOSensor(mock.Object, "testSpace"); device.ValueChanged += eventListenerMock.Object.onEvent; device.FindDevice(); var measureValue = device.Act(); Assert.AreEqual(true, measureValue); Assert.AreEqual(null, callArgs["deviceID"]); Assert.AreEqual("indoorSensor", (string)callArgs["measureName"]); Assert.AreEqual("testSpace", (string)callArgs["spaceID"]); Assert.AreEqual(0, (float)callArgs["value"]); mock.Verify(gpio => gpio.GetValue(), Times.Once()); eventListenerMock.Verify(e => e.onEvent(It.IsAny <object>(), It.IsAny <MeasuredValueChange>()), Times.Once()); }
public void ShouldNotMesureValueWhenSensorNotInit() { var mock = new Mock <IGPIODevice>(); mock.Setup(gpio => gpio.SetDirection(Direction.IN)).Throws(new Exception("Tested Exception")); var device = new ConfiguredGPIOSensor(mock.Object, "testSpace"); device.FindDevice(); var measureValue = device.Act(); Assert.AreEqual(false, measureValue); mock.Verify(gpio => gpio.GetValue(), Times.Never()); }
public void ShouldMesureValue() { var mock = new Mock <IGPIODevice>(); mock.Setup(gpio => gpio.SetDirection(Direction.IN)).Returns(true); mock.Setup(gpio => gpio.GetValue()).Returns(0); var device = new ConfiguredGPIOSensor(mock.Object, "testSpace"); device.FindDevice(); var measureValue = device.Act(); Assert.AreEqual(true, measureValue); mock.Verify(gpio => gpio.GetValue(), Times.Once()); }
public void ShouldNotCallActionHandlerWhenValueNotChange() { var mock = new Mock <IGPIODevice>(); mock.Setup(gpio => gpio.SetDirection(Direction.IN)).Returns(true); mock.Setup(gpio => gpio.GetValue()).Returns(0); mock.SetupGet(gpio => gpio.lastValue).Returns(0); var device = new ConfiguredGPIOSensor(mock.Object, "testSpace"); var eventListenerMock = new Mock <IEventListener>(); eventListenerMock.Setup(e => e.onEvent(It.IsAny <object>(), It.IsAny <MeasuredValueChange>())); device.ValueChanged += eventListenerMock.Object.onEvent; device.FindDevice(); var measureValue = device.Act(); Assert.AreEqual(false, measureValue); mock.Verify(gpio => gpio.GetValue(), Times.Once()); eventListenerMock.Verify(e => e.onEvent(It.IsAny <object>(), It.IsAny <MeasuredValueChange>()), Times.Never()); }
public void DoesNotCallAnythingWhenUnalbeToGetValue() { var mock = new Mock <IGPIODevice>(); mock.Setup(gpio => gpio.SetDirection(Direction.IN)).Returns(true); mock.Setup(gpio => gpio.GetValue()).Throws(new Exception("Test exception")); var eventListenerMock = new Mock <IEventListener>(); eventListenerMock.Setup(e => e.onEvent(It.IsAny <object>(), It.IsAny <MeasuredValueChange>())); var device = new ConfiguredGPIOSensor(mock.Object, "testSpace"); device.ValueChanged += eventListenerMock.Object.onEvent; device.FindDevice(); var measureValue = device.Act(); Assert.AreEqual(false, measureValue); mock.Verify(gpio => gpio.GetValue(), Times.Once()); eventListenerMock.Verify(e => e.onEvent(It.IsAny <object>(), It.IsAny <MeasuredValueChange>()), Times.Never()); }