public void ProcessSensorsTest() { double temp = 20; double humd = 22.1; double pressure = 52.2; int deviceId = 23; using(var context = new MockContext()) { var sensor = new StubITemperatureSensor(); sensor.GetTemperatureCelsius(() => temp); sensor.GetHumidity(() => humd); sensor.GetPressure(() => pressure); var appSetting = new StubIAppSettings(); appSetting.DeviceId_Get(() => deviceId); IAppSettings aSett = appSetting; var controller = new ThermostatController(context, sensor, appSetting); DateTimeOffset before = DateTimeOffset.Now; controller.ProcessSensors(); DateTimeOffset after = DateTimeOffset.Now; Assert.AreEqual(1, context.TemperatureEntries.Count()); var first = context.TemperatureEntries.FirstOrDefault(); Assert.AreNotEqual(Guid.Empty, first.Id); Assert.AreEqual(temp, first.TemperatureCelsius); Assert.AreEqual(humd, first.Humidity); Assert.AreEqual(pressure, first.Pressure); Assert.AreEqual(aSett.DeviceId, first.DeviceId); Assert.AreEqual(false, first.Synced); Assert.IsTrue(first.CreatedDateTime >= before && first.CreatedDateTime <= after); } }
private void canceled(IBackgroundTaskInstance sender, BackgroundTaskCancellationReason reason) { deferral.Complete(); deferral = null; timer.Tick -= timerTick; timer = null; controller = null; }
public void Run(IBackgroundTaskInstance taskInstance) { // // TODO: Insert code to perform background work // // If you start any asynchronous methods here, prevent the task // from closing prematurely by using BackgroundTaskDeferral as // described in http://aka.ms/backgroundtaskdeferral // taskInstance.Canceled += canceled; deferral = taskInstance.GetDeferral(); container = new SimpleContainer(); container.Singleton<ThermostatController>(); container.Singleton<IAppSettings, AppSettings>(); container.Singleton<IServerContext, ServerContext>(); controller = container.GetInstance<ThermostatController>(); timer = new DispatcherTimer(); timer.Tick += timerTick; timer.Interval = TimeSpan.FromSeconds(10); timer.Start(); }