private OpenWeatherMapService CreateMockOpenWeatherService() { var fakeOptions = new OpenWeatherMapOptions(); var fakeDto = new OpenWeatherMapDto(); var mockOptions = new Mock <IOptions <OpenWeatherMapOptions> >(); mockOptions.Setup(x => x.Value).Returns(fakeOptions); var mockHandler = new Mock <HttpMessageHandler>(MockBehavior.Strict); mockHandler .Protected() .Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>() ) .Returns(Task.FromResult(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(fakeDto), Encoding.UTF8, "application/json"), })); var httpClient = new HttpClient(mockHandler.Object) { BaseAddress = new Uri("http://any.url") }; var mockHttpClientFactory = new Mock <IHttpClientFactory>(); mockHttpClientFactory.Setup(x => x.CreateClient("OpenWeatherMap")).Returns(httpClient); return(new OpenWeatherMapService(mockOptions.Object, mockHttpClientFactory.Object)); }
public OpenWeatherMapWeatherService(IWeatherSerializer serializer, IHttpClientFactory factory, IOptions<OpenWeatherMapOptions> options) { this.serializer = serializer; this.options = options.Value; _factory = factory; }
public WeatherService(HttpClient client, IOptions <OpenWeatherMapOptions> options) { _client = client; _openWeatherMapOptions = options?.Value ?? throw new ArgumentNullException(nameof(options)); }