Example #1
0
        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);
        }
Example #3
0
 public ExchangeRateSDK(ExchangeRateRequest exchangeRateRequest, OpenExchangeRateConfig config)
 {
     _Exr           = exchangeRateRequest;
     _configuration = config;
 }