コード例 #1
0
        public async Task <ISaida> ObterCartaoCreditoPorId(int idCartao, int idUsuario)
        {
            this.NotificarSeMenorOuIgualA(idCartao, 0, CartaoCreditoMensagem.Id_Cartao_Invalido);
            this.NotificarSeMenorOuIgualA(idUsuario, 0, Mensagem.Id_Usuario_Invalido);

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

            var cartao = await _cartaoCreditoRepositorio.ObterPorId(idCartao);

            // Verifica se o cartão existe
            this.NotificarSeNulo(cartao, CartaoCreditoMensagem.Id_Cartao_Nao_Existe);

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

            // Verifica se o cartão pertece ao usuário informado.
            this.NotificarSeDiferentes(cartao.IdUsuario, idUsuario, CartaoCreditoMensagem.Cartao_Nao_Pertence_Usuario);

            return(this.Invalido
                ? new Saida(false, this.Mensagens, null)
                : new Saida(true, new[] { CartaoCreditoMensagem.Cartao_Encontrado_Com_Sucesso }, new CartaoCreditoSaida(cartao)));
        }
コード例 #2
0
        public async Task <ISaida> ObterCartaoCreditoPorId(int idCartao, int idUsuario, bool calcularLimiteCreditoDisponivelAtual = true)
        {
            this
            .NotificarSeMenorOuIgualA(idCartao, 0, CartaoCreditoMensagem.Id_Cartao_Invalido)
            .NotificarSeMenorOuIgualA(idUsuario, 0, Mensagem.Id_Usuario_Invalido);

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

            var cartao = await _cartaoCreditoRepositorio.ObterPorId(idCartao);

            if (cartao == null)
            {
                return(new Saida(true, new[] { CartaoCreditoMensagem.Id_Cartao_Nao_Existe }, null));
            }

            // Verifica se o cartão pertece ao usuário informado.
            this.NotificarSeDiferentes(cartao.IdUsuario, idUsuario, CartaoCreditoMensagem.Cartao_Nao_Pertence_Usuario);

            return(this.Invalido
                ? new Saida(false, this.Mensagens, null)
                : new Saida(true, new[] { CartaoCreditoMensagem.Cartao_Encontrado_Com_Sucesso }, new CartaoCreditoSaida(cartao, calcularLimiteCreditoDisponivelAtual
                    ? await CalcularLimiteCreditoDisponivelAtual(cartao)
                    : (decimal?)null)));
        }
コード例 #3
0
        public void Nao_Deve_Obter_Cartao_Credito_Por_Id_De_Outro_Usuario()
        {
            var idCartaoCredito = 1;
            var idUsuario       = 1;

            _cartaoCreditoRepositorio.ObterPorId(idCartaoCredito)
            .Returns(new CartaoCredito(new CadastrarCartaoCreditoEntrada(idUsuario, "Cartão 1", 5000, 5)));

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

            var saida = _cartaoCreditoServico.ObterCartaoCreditoPorId(idCartaoCredito, 2).Result;

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