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); }
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); }