Example #1
0
        public IActionResult Get(string moeda, int valorEmCentavos)
        {
            //Validar as entradas
            if (valorEmCentavos < 0)
            {
                return(BadRequest("Valor em centavos inválido"));
            }

            if (moeda == null || moeda.Length != 3)
            {
                return(BadRequest("Moeda inválida"));
            }

            ICurrency currency = FactoryCurrency.Create(moeda);

            IAPIExternalController apilayer = _APIExternalController;
            var taxas = apilayer.Live(currency.GetMoedas().ToArray());

            if (taxas == null)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, "Erro interno, verificar logs ou solicitar ajuda ao administrador do sistema"));
            }
            if (!currency.IsValid(taxas))
            {
                return(BadRequest("Moeda desconhecida"));
            }

            double taxaUSD   = currency.GetTaxaUSD(taxas);
            double taxaMoeda = currency.GetTaxaMoeda(taxas);

            return(base.Ok(CalcularRetorno(valorEmCentavos, taxaUSD, taxaMoeda)));
        }
        public void CreateDefaultTest()
        {
            //Act
            var classeCriada = FactoryCurrency.Create("AUS");

            //Assert
            Assert.IsInstanceOfType(classeCriada, typeof(DefaultCurrency));
        }
        public void CreateUSDTest()
        {
            //Act
            var classeCriada = FactoryCurrency.Create("USD");

            //Assert
            Assert.IsInstanceOfType(classeCriada, typeof(USDCurrency));
        }