public ForecastResponseConverter( ILogger <ForecastResponseConverter> logger, IOptions <WeatherForecastProviderSettings> weatherForecastProviderSettingsAccessor) { _logger = logger; _wfProviderSettings = weatherForecastProviderSettingsAccessor.Value; }
public OpenWeatherForecastUriProvider( ILogger <OpenWeatherForecastUriProvider> logger, IOptions <WeatherForecastProviderSettings> weatherForecastProviderSettingsAccessor) { _logger = logger; _weatherForecastProviderSettings = weatherForecastProviderSettingsAccessor.Value; }
public WeatherForecastController( IForecastProvider forecastProvider, IWeatherProvider weatherProvider, IOptions <WeatherForecastProviderSettings> weatherForecastProviderSettingsAccessor) { _forecastProvider = forecastProvider; _weatherProvider = weatherProvider; _weatherForecastProviderSettings = weatherForecastProviderSettingsAccessor.Value; }
public WeatherForecastApiRetriever( ILogger <WeatherForecastApiRetriever <T> > logger, IHttpClientFactory clientFactory, IOptions <WeatherForecastProviderSettings> weatherForecastProviderSettingsAccessor, IReadOnlyPolicyRegistry <string> policyRegistry) { _logger = logger; _clientFactory = clientFactory; _weatherForecastProviderSettings = weatherForecastProviderSettingsAccessor.Value; _policyRegistry = policyRegistry; }
public void WeatherResponseConverter_CorrectInputParameter() { //Arrange var logger = new Mock <ILogger <WeatherResponseConverter> >(); var weatherForecastProviderSettingsAccessor = new Mock <IOptions <WeatherForecastProviderSettings> >(); WeatherForecastProviderSettings settings = new WeatherForecastProviderSettings { IconStorageAddress = "http://openweathermap.org/img/wn/[email protected]", UnitsFormat = UnitsFormats.Metric }; weatherForecastProviderSettingsAccessor.SetupGet(m => m.Value).Returns(settings); WeatherResponseConverter converter = new WeatherResponseConverter(logger.Object, weatherForecastProviderSettingsAccessor.Object); OpenWeather openWeather = new OpenWeather { Weather = new List <WeatherDetails> { new WeatherDetails { Description = "rain", Icon = "10n" } }, Wind = new Wind { Speed = 1.66999f }, Main = new Main { Humidity = 1, Pressure = 2, Temp = 3.3f }, Timezone = 3600, //utc+1 Dt = 1571708528 //utc Monday, 22 October 2019, 1:42:08 }; CurrentWeatherModel expectedModel = new CurrentWeatherModel { Date = "02:42 22 October", WeatherConditions = new WeatherConditionsModel { Humidity = 1, IconUrl = "http://openweathermap.org/img/wn/[email protected]", Pressure = 2, Temperature = 3, TemperatureFormat = "C", WeatherDescription = "rain", WindSpeed = 1.7d } }; //Act var resultModel = converter.Convert(openWeather); //Assert Assert.AreEqual(expectedModel, resultModel); }
public void WeatherResponseConverter_InvalidSettings_WithoutIconStorageAddress() { //Arrange var logger = new Mock <ILogger <WeatherResponseConverter> >(); var weatherForecastProviderSettingsAccessor = new Mock <IOptions <WeatherForecastProviderSettings> >(); WeatherForecastProviderSettings settings = new WeatherForecastProviderSettings { UnitsFormat = UnitsFormats.Metric }; weatherForecastProviderSettingsAccessor.SetupGet(m => m.Value).Returns(settings); WeatherResponseConverter converter = new WeatherResponseConverter(logger.Object, weatherForecastProviderSettingsAccessor.Object); OpenWeather openWeather = new OpenWeather { Weather = new List <WeatherDetails> { new WeatherDetails { Description = "rain", Icon = "10n" } }, Wind = new Wind { Speed = 1.66999f }, Main = new Main { Humidity = 1, Pressure = 2, Temp = 3.3f }, Timezone = 3600, //utc+1 Dt = 1571708528 //utc Monday, 22 October 2019, 1:42:08 }; CurrentWeatherModel expectedModel = new CurrentWeatherModel { Date = "02:42 22 October", WeatherConditions = new WeatherConditionsModel { Humidity = 1, IconUrl = "http://openweathermap.org/img/wn/[email protected]", Pressure = 2, Temperature = 3, TemperatureFormat = "C", WeatherDescription = "rain", WindSpeed = 1.7d } }; //Act //Assert Assert.Throws <Exception>(() => converter.Convert(openWeather), "Something went wrond during convertion from OpenWeather to CurrentWeatherModel."); }