public void Get_currency_currencylayer_success(int cacheSeconds) { Singleton.AppSettings.CacheSeconds = cacheSeconds; var mock = new Mock <IHttpClient>(); mock.Setup(x => x.GetBaseHttpTask <Currency>(Singleton.AppSettings.BaseUrl, "live", $"access_key={Singleton.AppSettings.Token}")) .Returns(new Currency { Success = true }); var service = new CurrencyLayerService(mock.Object); service.ClearCache(); var r1 = service.GetCurrency(); service.GetCurrency(); if (r1.Date >= DateTime.Now.AddSeconds(-cacheSeconds)) { mock.Verify(x => x.GetBaseHttpTask <Currency>(Singleton.AppSettings.BaseUrl, "live", $"access_key={Singleton.AppSettings.Token}"), Times.Once); } else { mock.Verify(x => x.GetBaseHttpTask <Currency>(Singleton.AppSettings.BaseUrl, "live", $"access_key={Singleton.AppSettings.Token}"), Times.Exactly(2)); } }
public void Get_currency_currencylayer_ThrowsDataException_But_InCache() { Singleton.AppSettings.CacheSeconds = 0; var mock = new Mock <IHttpClient>(); mock.Setup(x => x.GetBaseHttpTask <Currency>(Singleton.AppSettings.BaseUrl, "live", $"access_key={Singleton.AppSettings.Token}")) .Returns(new Currency { Success = true }); var service = new CurrencyLayerService(mock.Object); service.ClearCache(); var r1 = service.GetCurrency(); mock.Setup(x => x.GetBaseHttpTask <Currency>(Singleton.AppSettings.BaseUrl, "live", $"access_key={Singleton.AppSettings.Token}")) .Returns(new Currency { Success = false }); var r2 = service.GetCurrency(); Assert.Equal(r1, r2); }
public void ObterListaDeMoedas() { CurrencyLayerService = new CurrencyLayerService(mockConfiguration); var controller = new CurrenciesController(CurrencyLayerService); var result = controller.Get(); var res = Assert.IsType <OkObjectResult>(result); Assert.Equal(200, res.StatusCode); var currenciesResponse = Assert.IsType <ResulteResponse>(res.Value); Assert.NotEmpty(currenciesResponse.currencies); }
public void ConverterRealParaDolar() { CurrencyLayerService = new CurrencyLayerService(mockConfiguration); decimal quote = CurrencyLayerService.GetListQuotes().quotes.FirstOrDefault(x => x.Key == $"USDBRL").Value; var controller = new CurrenciesController(CurrencyLayerService); var result = controller.GetToBRL("USD", 1); var res = Assert.IsType <OkObjectResult>(result); Assert.Equal(200, res.StatusCode); var currenciesResponse = Assert.IsType <ConvertResponse>(res.Value); Assert.Equal(Math.Round(quote), Math.Round(currenciesResponse.result)); }
public void Get_currencies_currencylayer_ThrowsDataException() { var mock = new Mock <IHttpClient>(); mock.Setup(x => x.GetBaseHttpTask <ListCurrencies>(Singleton.AppSettings.BaseUrl, "list", $"access_key={Singleton.AppSettings.Token}")) .Returns(new ListCurrencies { Success = false }); var service = new CurrencyLayerService(mock.Object); service.ClearCache(); Assert.Throws <DataException>(() => service.GetCurrencies()); }
public void Get_currencies_currencylayer_success() { var mock = new Mock <IHttpClient>(); mock.Setup(x => x.GetBaseHttpTask <ListCurrencies>(Singleton.AppSettings.BaseUrl, "list", $"access_key={Singleton.AppSettings.Token}")) .Returns(new ListCurrencies { Success = true }); var service = new CurrencyLayerService(mock.Object); service.ClearCache(); service.GetCurrencies(); mock.Verify(x => x.GetBaseHttpTask <ListCurrencies>(Singleton.AppSettings.BaseUrl, "list", $"access_key={Singleton.AppSettings.Token}"), Times.Once); service.GetCurrencies(); mock.Verify(x => x.GetBaseHttpTask <ListCurrencies>(Singleton.AppSettings.BaseUrl, "list", $"access_key={Singleton.AppSettings.Token}"), Times.Once); }