示例#1
0
        static public void OneFieldTest()
        {
            String   sensor_id   = "28-0000055f1020";
            var      sensor      = new SensorDS18B20(sensor_id);
            Double   temperature = 36.6;
            DateTime timestamp   = DateTime.Now;
            var      measurement = new DS18B20Measurement(sensor, temperature, timestamp);
            var      config      = new ConfigurationMock("API key", 1, new Dictionary <Int32, String> {
                { 1, sensor_id }
            });
            var measurement_list = new List <Measurement> {
                measurement
            };
            ThingSpeakFeed result = ConverterMeasurement2ThingSpeakFeed.Convert(measurement_list, config);

            // First field should contain temperature
            Assert.That(result.Field1, Is.EqualTo(temperature.ToString()));
            // Other fields should be empty
            // TODO: add a helper function to make an array instead of all there FieldN properties?
            Assert.That(result.Field2, Is.Null);
            Assert.That(result.Field3, Is.Null);
            Assert.That(result.Field4, Is.Null);
            Assert.That(result.Field5, Is.Null);
            Assert.That(result.Field6, Is.Null);
            Assert.That(result.Field7, Is.Null);
            Assert.That(result.Field8, Is.Null);
            Assert.That(result.CreatedAt, Is.EqualTo(timestamp).Within(1).Seconds);
            //TODO add verification for other fields if needed
        }
示例#2
0
        public static void TempAsDoubleConstructorTest()
        {
            var      sensor      = new SensorDS18B20("28-0000055f311a");
            Double   temp        = 20.0;
            DateTime timestamp   = DateTime.Now;
            var      measurement = new DS18B20Measurement(sensor, temp, timestamp);

            Assert.That(measurement.Sensor, Is.EqualTo(sensor));
            Assert.That(measurement.Value, Is.EqualTo(temp));
            Assert.That(measurement.Timestamp, Is.EqualTo(timestamp));
        }
示例#3
0
        public static void TempAsGoodFileContentsConstructorTest()
        {
            var    sensor        = new SensorDS18B20("28-0000055f311a");
            String file_contents = "50 05 ff ff f0 ff ff ff 5c : crc=5c YES" + Environment.NewLine +
                                   "50 05 ff ff f0 ff ff ff 5c t=25000";
            Double   expected_temp = 25.0;
            DateTime timestamp     = DateTime.Now;
            var      measurement   = new DS18B20Measurement(sensor, file_contents, timestamp);

            Assert.That(measurement.Sensor, Is.EqualTo(sensor));
            Assert.That(measurement.Value, Is.EqualTo(expected_temp));
            Assert.That(measurement.Timestamp, Is.EqualTo(timestamp));
        }
示例#4
0
        static public void SuccessfullReadOfPositiveTemperatureTest()
        {
            String file_contents = "50 05 ff ff f0 ff ff ff 5c : crc=5c YES" + Environment.NewLine +
                                   "50 05 ff ff f0 ff ff ff 5c t=25123";
            var fileSystem = new MockFileSystem(new Dictionary <string, MockFileData>
            {
                { @"/sys/bus/w1/devices/28-0000055f311a/w1_slave", new MockFileData(file_contents) }
            });
            var sensor = new SensorDS18B20("28-0000055f311a", fileSystem);
            List <Measurement> measurements = sensor.ReadMeasurements();

            Assert.That(measurements.Count, Is.EqualTo(1));
            DS18B20Measurement measurement = (DS18B20Measurement)measurements[0];

            Assert.That(measurement.Value, Is.EqualTo(25.123));
            //TODO add verification of timestamp
            Assert.That(measurement.Sensor, Is.EqualTo(sensor));
        }