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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }