public async Task GetConversionRate_WithInvalidCurrencies() { // arrange var client = new CurrencyServiceClient( _httpClient, "https://free.currconv.com/api/v7/currencies?apiKey=d4cf3228112bfb5a29f5", "https://free.currconv.com/api/v7/convert?compact=y"); // act - assert await Assert.ThrowsAsync <HttpRequestException>(() => client.GetConversionRate("USD", "EUR")); }
public async Task GetConversionRate_WithValidLookup() { // arrange var client = new CurrencyServiceClient(_httpClient); // act var result = await client.GetConversionRate("USD", "CAD"); // assert Assert.NotNull(result); Assert.Equal("USD", result.ConvertFrom); Assert.Equal("CAD", result.ConvertTo); Assert.True(result.Rate >= 1M); }
public async Task GetConversionRate_WithSameCurrency() { // arrange var client = new CurrencyServiceClient(_httpClient); // act var result = await client.GetConversionRate("EUR", "EUR"); // assert Assert.NotNull(result); Assert.Equal("EUR", result.ConvertFrom); Assert.Equal("EUR", result.ConvertTo); Assert.True(result.Rate == 1M); }
public async Task GetCurrencies() { // arrange var client = new CurrencyServiceClient(_httpClient); // act var result = await client.GetCurrencies(); // assert Assert.NotEmpty(result); Assert.Contains <CurrencyDescriptor>(result, p => p.Id == "USD"); Assert.Contains <CurrencyDescriptor>(result, p => p.Id == "EUR"); var usd = result.First(p => p.Id == "USD"); Assert.Equal("United States Dollar", usd.CurrencyName); Assert.Equal("$", usd.CurrencySymbol); }
decimal GetExchangeRate(CurrencyCode fromCurrency, CurrencyCode toCurrency) { decimal d = 0; try { CurrencyServiceClient csc = new CurrencyServiceClient(); var result = csc.GetConversionRate(fromCurrency, toCurrency); if (result != null) { d = (decimal)result.Rate; } } catch (Exception ex) { Debug.WriteLine("BeginGetExchangeRate for " + fromCurrency.ToString() + " threw exception: " + ex.Message); } return d; }