Ejemplo n.º 1
0
        public async Task <ISaida> CadastrarCartaoCredito(CadastrarCartaoCreditoEntrada cadastroEntrada)
        {
            // Verifica se as informações para cadastro foram informadas corretamente
            if (cadastroEntrada.Invalido)
            {
                return(new Saida(false, cadastroEntrada.Mensagens, null));
            }

            // Verifica se o usuário já possui algum cartão com o nome informado
            this.NotificarSeVerdadeiro(await _cartaoCreditoRepositorio.VerificarExistenciaPorNome(cadastroEntrada.IdUsuario, cadastroEntrada.Nome), CartaoCreditoMensagem.Cartao_Com_Mesmo_Nome);

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

            var cartao = new CartaoCredito(cadastroEntrada);

            await _cartaoCreditoRepositorio.Inserir(cartao);

            await _uow.Commit();

            return(_uow.Invalido
                ? new Saida(false, _uow.Mensagens, null)
                : new Saida(true, new[] { CartaoCreditoMensagem.Cartao_Cadastrado_Com_Sucesso }, new CartaoCreditoSaida(cartao)));
        }
Ejemplo n.º 2
0
        public void Nao_Deve_Cadastrar_Cartao_Credito_Com_Mesmo_Nome_De_Outra_CartaoCredito()
        {
            var idUsuario = 1;

            _cartaoCreditoRepositorio.VerificarExistenciaPorNome(idUsuario, "Cartão 1")
            .Returns(true);

            var cadastroEntrada = new CadastrarCartaoCreditoEntrada(idUsuario, "Cartão 1", 5000, 5);

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

            var saida = _cartaoCreditoServico.CadastrarCartaoCredito(cadastroEntrada).Result;

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