Beispiel #1
0
        private static void AssertModules(PublicDataResponseItem publicDataResponseItem)
        {
//"modules":["02:00:00:06:a2:c0","05:00:00:01:53:a0"]}
            Assert.AreEqual(2, publicDataResponseItem.modules.Length, "modules.Length");
            Assert.AreEqual("02:00:00:06:a2:c0", publicDataResponseItem.modules[0], "modules[0]");
            Assert.AreEqual("05:00:00:01:53:a0", publicDataResponseItem.modules[1], "modules[1]");
        }
Beispiel #2
0
        private static void AssertPlace(PublicDataResponseItem publicDataResponseItem)
        {
// Assert place.
            // "place":{"location":[0.00686,52.090706],"altitude":22.87738,"timezone":"Europe\/London"},"mark":13,"measures":{"02:00:00:06:a2:c0":{"res":{"1436109621":[21,79]},"type":["temperature","humidity"]},"05:00:00:01:53:a0":{"rain_60min":1.212,"rain_24h":1.212,"rain_live":0.808,"rain_timeutc":1436109640},"70:ee:50:06:bb:22":{"res":{"1436109650":[1014.4]},"type":["pressure"]}},"modules":["02:00:00:06:a2:c0","05:00:00:01:53:a0"]}
            Place place = publicDataResponseItem.place;

            Assert.AreEqual(0.00686D, place.location[0], 0.00001D, "place.location[0] - long");
            Assert.AreEqual(52.090706D, place.location[1], 0.00001D, "place.location[1] - lat");
            Assert.AreEqual("Europe/London", place.timezone, "timezone");
        }
Beispiel #3
0
        private static void AssertRainModule(PublicDataResponseItem publicDataResponseItem)
        {
// Rain Gauge
            // "05:00:00:01:53:a0":{"rain_60min":1.212,"rain_24h":1.212,"rain_live":0.808,"rain_timeutc":1436109640},
            Measurement rainMeasurement = publicDataResponseItem.measures["05:00:00:01:53:a0"];

            Assert.IsNull(rainMeasurement.res, "rainMeasurement.res != null");
            Assert.IsNull(rainMeasurement.type, "rainMeasurement.type != null");
            Assert.AreEqual(1.212M, rainMeasurement.rain_24h, "rainMeasurement.rain_24h");
            Assert.AreEqual(1.212M, rainMeasurement.rain_60min, "rainMeasurement.rain_60min");
            Assert.AreEqual(0.808M, rainMeasurement.rain_live, "rainMeasurement.rain_live");
            Assert.AreEqual(1436109640, rainMeasurement.rain_timeutc, "rainMeasurement.rain_timeutc");
        }
Beispiel #4
0
        private static void AssertOutsideModule(PublicDataResponseItem publicDataResponseItem)
        {
// Outside Temperature/Humidity
            // "measures":{"02:00:00:06:a2:c0":{"res":{"1436109621":[21,79]},"type":["temperature","humidity"]},
            Measurement temperatureMeasurement = publicDataResponseItem.measures["02:00:00:06:a2:c0"];

            Assert.IsNotNull(temperatureMeasurement, "First measure.key");

            // result and types are index and align.
            var temperatureResults = temperatureMeasurement.res["1436109621"];

            Assert.AreEqual(21, temperatureResults[0], "results[0] - temperature");
            Assert.AreEqual(79, temperatureResults[1], "results[1] - humidity");

            var temperatureTypes = temperatureMeasurement.type;

            Assert.AreEqual("temperature", temperatureTypes[0], "type[0]");
            Assert.AreEqual("humidity", temperatureTypes[1], "type[1]");
        }
Beispiel #5
0
        private static void AssertPressureModule(PublicDataResponseItem publicDataResponseItem)
        {
// Pressure Gauge
            // "70:ee:50:06:bb:22":{"res":{"1436109650":[1014.4]},"type":["pressure"]}},
            Measurement pressureMeasurement = publicDataResponseItem.measures["70:ee:50:06:bb:22"];

            Assert.IsNotNull(pressureMeasurement, "pressureMeasurement != null");
            Assert.IsNotNull(pressureMeasurement.res, "pressureMeasurement.res != null");
            Assert.AreEqual(1, pressureMeasurement.res.Count, "pressureMeasurement.res.Count");
            Assert.IsNotNull(pressureMeasurement.type, "pressureMeasurement.type != null");
            Assert.AreEqual(1, pressureMeasurement.type.Length, "pressureMeasurement.type.Count");

            var pressureResults = pressureMeasurement.res["1436109650"];

            Assert.AreEqual(1014.4M, pressureResults[0], "pressureResults[0]");

            var pressureTypes = pressureMeasurement.type;

            Assert.AreEqual("pressure", pressureTypes[0], "pressureTypes[0]");
        }
Beispiel #6
0
        public void Populate_FromSampleData_SetsStationProperties(string fileName)
        {
            // Arrange
            // Data expected to be returned from Netatmo api.
            // Total number of stations: 543
            // Number of stations with rain gauge: 204
            string sampleData = SampleDataHelper.LoadSampleData(fileName);

            // Act
            var publicDataResponse = JsonConvert.DeserializeObject <PublicDataResponse>(sampleData);

            // Assert
            Assert.AreEqual("ok", publicDataResponse.status, "status");

            var body = publicDataResponse.body;

            Assert.IsNotNull(body, "body");
            Assert.AreEqual(543, body.Count);

            // Just assert on the first item.
            PublicDataResponseItem publicDataResponseItem = body.First(x => x._id == StationId);

            // {"_id":"70:ee:50:06:bb:22",
            Assert.AreEqual(StationId, publicDataResponseItem._id, "_id");

            AssertPlace(publicDataResponseItem);

            // Assert measures.
            Assert.IsNotNull(publicDataResponseItem.measures, "measures");
            Assert.AreEqual(3, publicDataResponseItem.measures.Count, "measures.Count");

            AssertOutsideModule(publicDataResponseItem);

            AssertRainModule(publicDataResponseItem);

            AssertPressureModule(publicDataResponseItem);

            AssertModules(publicDataResponseItem);
        }