public async Task GetHistoricalDataShouldReturnListOfExchangeRates() { var httpClientFactory = new Mock <IHttpClientFactory>(); var options = new Mock <IOptions <OpenExchangeRateConfig> >(); var json = "{}"; var httpClient = HttpClientMockHelper.CreateHttpClient(json); var from = "USD"; var to = "TRY"; var configuration = new OpenExchangeRateConfig { Endpoint = "https://amazon.com", AppId = "12345" }; options.Setup(t => t.Value).Returns(configuration); httpClientFactory .Setup(t => t.CreateClient(It.IsAny <string>())) .Returns(httpClient); IExchangeRateSourceService exchangeRate = new ExchangeRateSourceService( httpClientFactory.Object, options.Object); var targetDate = new DateTime(2017, 1, 15); var historicalData = await exchangeRate.GetHistorical(new Models.API.ExchangeRateRequest { Date = targetDate, Base = from, TargetCurrencies = new[] { to } }); historicalData.Should().NotBeNull(); }
//private readonly string _url; public ExchangeRateSourceService(IHttpClientFactory httpClientFactory, IOptions <OpenExchangeRateConfig> options) { _configuration = options.Value ?? throw new ArgumentNullException(nameof(options)); if (httpClientFactory == null) { throw new ArgumentNullException(nameof(httpClientFactory)); } _httpClient = httpClientFactory.CreateClient(); _httpClient.BaseAddress = new Uri(_configuration.Endpoint); }
public ExchangeRateSDK(ExchangeRateRequest exchangeRateRequest, OpenExchangeRateConfig config) { _Exr = exchangeRateRequest; _configuration = config; }