Exemplo n.º 1
0
        public void OperacaoCambio_ObterValorCotacao()
        {
            //arrange
            var operacaoCambio = new OperacaoCambio(new Cliente(1, "Teste", "012345678901", Domain.Enums.Segmento.Varejo), new TaxaCambio(Domain.Enums.Segmento.Varejo, 0.1M));

            //act
            operacaoCambio.DefinirMoedaOperacao("USD", 2m);
            operacaoCambio.CalcularValorOperacao(100);

            //assert
            Assert.Equal(220, operacaoCambio.ValorOperacao);
        }
Exemplo n.º 2
0
        public async Task <ObterCotacaoMoedaResponse> ObterCotacaoMoeda(ObterCotacaoMoedaRequest request)
        {
            if (new ObterCotacaoMoedaValidation(_clienteRepository, _notificacoes).Validar(request))
            {
                var cliente    = _clienteRepository.ObterClientePorId(request.IdCliente);
                var taxa       = _taxaRepository.ObterTaxaCambioPorSegmento(cliente.Segmento);
                var valorMoeda = await _exchangeRatesApiProxy.ObterUltimaCotacaoMoeda(request.Moeda);

                var operacao = new OperacaoCambio(cliente, taxa);

                operacao.DefinirMoedaOperacao(request.Moeda, valorMoeda);

                operacao.CalcularValorOperacao(request.QuantidadeMoeda);

                return(operacao.ToResponse(request.QuantidadeMoeda));
            }
            return(null);
        }