From 6b75f3a7e71cf12451dd76b726b04da4599286ce Mon Sep 17 00:00:00 2001 From: Denis NUTIU Date: Tue, 24 Dec 2019 00:32:12 +0200 Subject: [PATCH] Add Bme680 worker tests. --- .../Bme680WorkerTests.cs | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 NucuCar.UnitTests/NucuCar.Sensors.Tests/EnvironmentSensor.Tests/Bme680WorkerTests.cs diff --git a/NucuCar.UnitTests/NucuCar.Sensors.Tests/EnvironmentSensor.Tests/Bme680WorkerTests.cs b/NucuCar.UnitTests/NucuCar.Sensors.Tests/EnvironmentSensor.Tests/Bme680WorkerTests.cs new file mode 100644 index 0000000..40e9441 --- /dev/null +++ b/NucuCar.UnitTests/NucuCar.Sensors.Tests/EnvironmentSensor.Tests/Bme680WorkerTests.cs @@ -0,0 +1,65 @@ +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Moq; +using NucuCar.Sensors; +using NucuCar.Sensors.EnvironmentSensor; +using NucuCar.Sensors.Telemetry; +using NucuCarSensorsProto; +using Xunit; + +namespace NucuCar.UnitTests.NucuCar.Sensors.Tests.EnvironmentSensor.Tests +{ + public class Bme680WorkerTest + { + private readonly Mock> _mockLogger; + private readonly Mock> _mockOptions; + private readonly Mock _mockSensorTelemetry; + private readonly Mock _mockTestBme680Sensor; + private readonly Mock> _mockBme680ISensor; + private readonly CancellationTokenSource _cts; + + public Bme680WorkerTest() + { + _cts = new CancellationTokenSource(); + _mockLogger = new Mock>(); + _mockOptions = new Mock>(); + _mockSensorTelemetry = new Mock(); + _mockTestBme680Sensor = new Mock(); + _mockBme680ISensor = new Mock>(); + + _mockBme680ISensor.Setup(o => o.Object).Returns(_mockTestBme680Sensor.Object); + } + + [Fact] + public async Task Test_Bme680Worker_SensorIsInitialized() + { + _mockOptions.Setup(o => o.Value).Returns(new Bme680Config() + { + Enabled = true, + }); + var service = new Bme680Worker(_mockLogger.Object, _mockSensorTelemetry.Object, _mockBme680ISensor.Object); + + await service.StartAsync(_cts.Token); + _mockTestBme680Sensor.Verify(s => s.Initialize(), Times.AtLeastOnce); + await service.StopAsync(_cts.Token); + } + + [Fact] + public async Task Test_Bme680Worker_SensorIsBeingMeasured() + { + _mockOptions.Setup(o => o.Value).Returns(new Bme680Config() + { + Enabled = true, + }); + _mockTestBme680Sensor.Setup(s => s.GetState()).Returns(SensorStateEnum.Initialized); + + var service = new Bme680Worker(_mockLogger.Object, _mockSensorTelemetry.Object, _mockBme680ISensor.Object); + await service.StartAsync(_cts.Token); + _mockTestBme680Sensor.Verify(s => s.Initialize(), Times.AtLeastOnce); + _mockTestBme680Sensor.Verify(s => s.TakeMeasurementAsync(), Times.AtLeastOnce); + await service.StopAsync(_cts.Token); + } + } +} \ No newline at end of file