Exemplo n.º 1
0
        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;
 }
Exemplo n.º 3
0
 public WeatherService(HttpClient client, IOptions <OpenWeatherMapOptions> options)
 {
     _client = client;
     _openWeatherMapOptions = options?.Value ?? throw new ArgumentNullException(nameof(options));
 }