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); }
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); }