private void SetUpParsers()
        {
            var humidityParser = Substitute.For <IParser>();

            humidityParser.Type.Returns("humidity");
            humidityParser.ParseStream(_humidityStream).Returns(_humidityParsedData);
            humidityParser.ParseStream(Arg.Is <Stream>(x => x.Length.Equals(_humidityHistoricalEntryStream.Length))).Returns(_humidityHistoricalParsedData);

            var rainfallParser = Substitute.For <IParser>();

            rainfallParser.Type.Returns("rainfall");
            rainfallParser.ParseStream(_rainfallStream).Returns(_rainfallParsedData);
            rainfallParser.ParseStream(Arg.Is <Stream>(x => x.Length.Equals(_rainfallHistoricalEntryStream.Length))).Returns(_rainfallHistoricalParsedData);

            var temperatureParser = Substitute.For <IParser>();

            temperatureParser.Type.Returns("temperature");
            temperatureParser.ParseStream(_temperatureStream).Returns(_temperatureParsedData);
            temperatureParser.ParseStream(Arg.Is <Stream>(x => x.Length.Equals(_temperatureHistoricalEntryStream.Length))).Returns(_temperatureHistoricalParsedData);

            _parserProvider = Substitute.For <IParserProvider>();
            _parserProvider.GetParser(_humiditySensorType).Returns(humidityParser);
            _parserProvider.GetParser(_rainfallSensorType).Returns(rainfallParser);
            _parserProvider.GetParser(_temperatureSensorType).Returns(temperatureParser);
        }
Example #2
0
        public async Task <List <ISensorData> > HandleGetDeviceSensorDailyData(string deviceName, string sensorType, DateTime date)
        {
            var result = await Read(deviceName, date, _parserProvider.GetParser(sensorType));

            if (!result.Any())
            {
                throw new DataNotFoundException();
            }

            return(result);
        }