public async Task <ISaida> ObterCartoesCreditoPorUsuario(int idUsuario, bool calcularLimiteCreditoDisponivelAtual = true)
        {
            this.NotificarSeMenorOuIgualA(idUsuario, 0, Mensagem.Id_Usuario_Invalido);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            var lstCartoesCredito = await _cartaoCreditoRepositorio.ObterPorUsuario(idUsuario);

            if (!lstCartoesCredito.Any())
            {
                return(new Saida(true, new[] { CartaoCreditoMensagem.Nenhum_Cartao_Encontrado }, null));
            }

            if (!calcularLimiteCreditoDisponivelAtual)
            {
                return(new Saida(true, new[] { CartaoCreditoMensagem.Cartoes_Encontrados_Com_Sucesso }, lstCartoesCredito.Select(x => new CartaoCreditoSaida(x))));
            }

            var cartoes = new List <CartaoCreditoSaida>();

            foreach (var cartao in lstCartoesCredito)
            {
                var limiteCreditoDisponivelAtual = await CalcularLimiteCreditoDisponivelAtual(cartao);

                cartoes.Add(new CartaoCreditoSaida(cartao, limiteCreditoDisponivelAtual));
            }

            return(new Saida(true, new[] { CartaoCreditoMensagem.Cartoes_Encontrados_Com_Sucesso }, cartoes));
        }
        public async Task <ISaida> ObterCartoesCreditoPorUsuario(int idUsuario)
        {
            this.NotificarSeMenorOuIgualA(idUsuario, 0, Mensagem.Id_Usuario_Invalido);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            var lstCartoesCredito = await _cartaoCreditoRepositorio.ObterPorUsuario(idUsuario);

            return(lstCartoesCredito.Any()
                ? new Saida(true, new[] { CartaoCreditoMensagem.Cartoes_Encontrados_Com_Sucesso }, lstCartoesCredito.Select(x => new CartaoCreditoSaida(x)))
                : new Saida(true, new[] { CartaoCreditoMensagem.Nenhum_Cartao_Encontrado }, null));
        }
Beispiel #3
0
        public void Deve_Obter_Cartoes_Credito_Por_Usuario()
        {
            var idUsuario = 1;

            _cartaoCreditoRepositorio.ObterPorUsuario(idUsuario)
            .Returns(new List <CartaoCredito> {
                new CartaoCredito(new CadastrarCartaoCreditoEntrada(idUsuario, "Cartão 1", 5000, 5))
            });

            _cartaoCreditoServico = Substitute.For <CartaoCreditoServico>(_cartaoCreditoRepositorio, _uow);

            var saida = _cartaoCreditoServico.ObterCartoesCreditoPorUsuario(idUsuario).Result;

            Assert.IsTrue(saida.Sucesso && saida.Mensagens.Any(x => x == CartaoCreditoMensagem.Cartoes_Encontrados_Com_Sucesso), string.Join(", ", saida.Mensagens));
        }