public async Task ReturnSuccessfulCurrencyResponseOnConversionForUsdToEur() { var currencyRequest = new CurrencyRequest { Amount = 24, SourceCurrency = "USD", TargetCurrency = "EUR" }; var currencyExchangeResponse = new CurrencyExchangeResponse { Base = currencyRequest.SourceCurrency, Date = DateTime.Now, TimeLastUpdated = DateTime.Now.Ticks, Rates = new Dictionary <string, decimal> { { "GBP", 0.722077M }, { "EUR", 0.844712M }, { "USD", 1 } } }; _exchangeRateServiceMock.Setup(x => x.GetExchangeRatesAsync(currencyRequest.SourceCurrency)) .Returns(Task.FromResult(currencyExchangeResponse)); var response = await currencyConversionService.ConvertAsync(currencyRequest); response.Should().NotBeNull(); response.ConvertedAmount.Should().Be(20.16M); response.TargetCurrency.Should().Be("EUR"); }
public async Task ReturnSuccessfulConversionOnLowerCaseCurrencies() { var currencyRequest = new CurrencyRequest { Amount = 24, SourceCurrency = "gbp", TargetCurrency = "eur" }; var currencyExchangeResponse = new CurrencyExchangeResponse { Base = currencyRequest.SourceCurrency, Date = DateTime.Now, TimeLastUpdated = DateTime.Now.Ticks, Rates = new Dictionary <string, decimal> { { "GBP", 1 }, { "EUR", 1.168852M }, { "USD", 1.384935M } } }; _exchangeRateServiceMock.Setup(x => x.GetExchangeRatesAsync(currencyRequest.SourceCurrency.ToUpper())) .Returns(Task.FromResult(currencyExchangeResponse)); var response = await currencyConversionService.ConvertAsync(currencyRequest); response.Should().NotBeNull(); response.ConvertedAmount.Should().Be(28.08M); response.TargetCurrency.Should().Be("EUR"); }
public HttpResponseMessage GetCurrencyExchange([FromUri] string source = "", string target = "") { var query = _currencyService.GetCurrencyExchange(source, target); if (query.ModelState.HttpStatusCode != HttpStatusCode.OK) { return(ResponseHelper.HttpResponseMessage(this, new StandardResponse(), query.ModelState)); } var response = new CurrencyExchangeResponse { CurrencyExchange = { Source = query.SourceCurrency, Target = query.TargetCurrency, Rate = query.Rate } }; return(ResponseHelper.HttpResponseMessage(this, response, query.ModelState)); }