public void Trigger_SensorValueReached() { var testController = new TestController(); var adapter = new TestNumericSensorAdapter(); var sensor = new TemperatureSensor( "Test", adapter, testController.GetInstance <ISettingsService>()); var trigger = sensor.GetTemperatureReachedTrigger(10.2F, 3.0F); var triggerCount = 0; trigger.Attach(() => triggerCount++); adapter.UpdateValue(5); Assert.AreEqual(0, triggerCount); adapter.UpdateValue(10); Assert.AreEqual(0, triggerCount); adapter.UpdateValue(10.2F); Assert.AreEqual(1, triggerCount); adapter.UpdateValue(9.0F); Assert.AreEqual(1, triggerCount); adapter.UpdateValue(13.0F); Assert.AreEqual(1, triggerCount); adapter.UpdateValue(5.0F); Assert.AreEqual(1, triggerCount); adapter.UpdateValue(10.2F); Assert.AreEqual(2, triggerCount); }