コード例 #1
0
        public void AoCriarCobrancaCartaoOsValoresDevemSerSetadosCorretamente()
        {
            var valor                 = 20;
            var vencimento            = DateTime.Today.AddDays(10);
            var tenantIdCliente       = Guid.NewGuid().ToString();
            var cartaoCreditoId       = Guid.NewGuid().ToString();
            var configuracaoEmissaoId = Guid.NewGuid().ToString();
            var nomeCliente           = "Nome cliente teste 123";
            var cpfCnpjCliente        = "123457822333";
            var emailCliente          = "*****@*****.**";
            var telefoneCliente       = new Telefone("ddd", "4477885522");
            var cartaoCreditoCliente  = new CartaoCreditoCobranca("Nome clçiente 12313213", "numero 4455888", cartaoCreditoId);
            var descricao             = "Teste Desc";

            var novaCobranca = CobrancaBuilder.BuildCobrancaCartao(descricao, valor, vencimento, configuracaoEmissaoId, nomeCliente, cpfCnpjCliente, emailCliente, telefoneCliente, cartaoCreditoCliente, tenantIdCliente);

            Assert.AreEqual(novaCobranca.Valor, valor);
            Assert.AreEqual(novaCobranca.Descricao, descricao);
            Assert.AreEqual(novaCobranca.Vencimento, vencimento);
            Assert.AreEqual(novaCobranca.ClienteCobranca.TenantId, tenantIdCliente);
            Assert.AreEqual(novaCobranca.ClienteCobranca.CartaoCreditoCobranca.TenantId, cartaoCreditoId);
            Assert.AreEqual(novaCobranca.ClienteCobranca.Telefone.Ddd, telefoneCliente.Ddd);
            Assert.AreEqual(novaCobranca.ClienteCobranca.Telefone.Numero, telefoneCliente.Numero);
            Assert.AreEqual(novaCobranca.ClienteCobranca.CartaoCreditoCobranca.Nome, cartaoCreditoCliente.Nome);
            Assert.AreEqual(novaCobranca.ClienteCobranca.CartaoCreditoCobranca.Numero, cartaoCreditoCliente.Numero);
            Assert.AreEqual(novaCobranca.ClienteCobranca.CartaoCreditoCobranca.TenantId, cartaoCreditoCliente.TenantId);
            Assert.AreEqual(novaCobranca.ConfiguracaoEmissaoId, configuracaoEmissaoId);
        }
コード例 #2
0
        public void AoCriarClienteSemCartaoCreditoECobrancaDeCartaoDeveLancarExcecao()
        {
            var cobrancaCartao = CobrancaBuilder.BuildCobrancaCartao();

            Assert.Throws <CobrancasComCartaoDevemPossuirClienteComCartaoCreditoVinculadoException>(()
                                                                                                    => new ClienteCobranca(cobrancaCartao, "Bla bla", "cpf", "emailbla@email", Guid.NewGuid().ToString(),
                                                                                                                           ClienteCobrancaBuilder.BuildTelefone(), ClienteCobrancaBuilder.BuildEndereco(), null));
        }
コード例 #3
0
        public void AoAlterarClienteComCobrancaProcessandoDeveLancarExcecao()
        {
            var cobranca = CobrancaBuilder.BuildCobrancaCartao();
            var cliente  = ClienteCobrancaBuilder.BuildCliente(cobranca);

            Assert.Throws <ImpossivelAlterarDadosClienteQuandoCobrancaEstaEmProcessamentoException>(() => cliente.Alterar(Guid.NewGuid().ToString(), "teste", "1234", "*****@*****.**",
                                                                                                                          ClienteCobrancaBuilder.BuildTelefone(), ClienteCobrancaBuilder.BuildEndereco()));
        }
コード例 #4
0
        public void AoAlterarCartaoClienteComCobrancaBoletoDeveLancarExcecao()
        {
            var cobranca = CobrancaBuilder.BuildCobrancaBoleto().ComTransacaoFinalizada();

            var cliente = ClienteCobrancaBuilder.BuildCliente(cobranca);

            Assert.Throws <CobrancaBoletoNaoDeveConterCartaoNoClienteException>(() => cliente.AlterarCartaoCredito(new CartaoCreditoCobranca("bla", "bla", "bla")));
        }
コード例 #5
0
        public void AoAlterarCartaoClienteComCobrancaPagaDeveLancarExcecao()
        {
            var cobranca = CobrancaBuilder.BuildCobrancaCartao().ComTransacaoFinalizada();

            var cliente = ClienteCobrancaBuilder.BuildCliente(cobranca);

            Assert.Throws <ImpossivelAlterarDadosClienteQuandoCobrancaJaEstaPagaException>(() => cliente.AlterarCartaoCredito(new CartaoCreditoCobranca("bla", "bla", "bla")));
        }
コード例 #6
0
        public void AoCriarClienteComCartaoCreditoECobrancaNaoCartaoDeveLancarExcecao()
        {
            var cobrancaCartao = CobrancaBuilder.BuildCobrancaBoleto();

            Assert.Throws <CobrancaBoletoNaoDeveConterCartaoNoClienteException>(()
                                                                                => new ClienteCobranca(cobrancaCartao, "Bla bla", "cpf", "emailbla@email", Guid.NewGuid().ToString(),
                                                                                                       ClienteCobrancaBuilder.BuildTelefone(), ClienteCobrancaBuilder.BuildEndereco(), ClienteCobrancaBuilder.BuildCartaoCredito()));
        }
コード例 #7
0
 public void Setup()
 {
     _cobrancaBoleto = CobrancaBuilder.BuildCobrancaBoleto();
     _cobrancaCartao = CobrancaBuilder.BuildCobrancaCartao();
     _cobrancaBoletoFormaPagamentoFinalizada = CobrancaBuilder
                                               .BuildCobrancaBoleto()
                                               .ComTransacaoFinalizada();
 }
コード例 #8
0
        public static ClienteCobranca BuildCliente(FormaPagamento formaPagamentoCobranca)
        {
            var cobranca = formaPagamentoCobranca == FormaPagamento.Boleto
                ? CobrancaBuilder.BuildCobrancaBoleto()
                : CobrancaBuilder.BuildCobrancaCartao();
            var cartaoCredito = cobranca.FormaPagamentoCartao ? ClienteCobrancaBuilder.BuildCartaoCredito() : null;

            return(new ClienteCobranca(cobranca, "Bla bla", "cpf", "emailbla@email", Guid.NewGuid().ToString(),
                                       BuildTelefone(), BuildEndereco(), cartaoCredito));
        }
コード例 #9
0
        public void AoCriarUmaCobrancaDeveCriarEventoNaCobranca()
        {
            var novaCobranca = CobrancaBuilder.BuildCobrancaCartao();

            var cobrancaEvent = novaCobranca.Events
                                .Where(e => e is CobrancaCriadaEvent)
                                .Cast <CobrancaCriadaEvent>().SingleOrDefault();

            Assert.AreEqual(cobrancaEvent.CobrancaId, novaCobranca.Id.ToString());
        }
コード例 #10
0
        public void AoAlterarCartaoClienteDeveSetarCartaoCorretamente()
        {
            var cobranca = CobrancaBuilder.BuildCobrancaCartao().ComErroTransacao();

            var cliente = ClienteCobrancaBuilder.BuildCliente(cobranca);

            var novoCartaoCredito = ClienteCobrancaBuilder.BuildCartaoCredito();

            cliente.AlterarCartaoCredito(novoCartaoCredito);
            Assert.AreSame(cliente.CartaoCreditoCobranca, novoCartaoCredito);
        }
コード例 #11
0
        public void AoAlterarCobrancaCartaoNaoDeveRegerarTransacao()
        {
            var cobrancaCartao = CobrancaBuilder.BuildCobrancaCartao().ComErroTransacao();

            var transacaoBoletoReprocessadaEvent = cobrancaCartao.Events.Where(e => e is TransacaoCobrancaReprocessandodoEvent)
                                                   .Cast <TransacaoCobrancaReprocessandodoEvent>();

            Assert.IsNull(transacaoBoletoReprocessadaEvent.SingleOrDefault());

            cobrancaCartao.AlterarCobranca(22, DateTime.Today, Guid.NewGuid().ToString());

            Assert.IsNull(transacaoBoletoReprocessadaEvent.SingleOrDefault());
        }
コード例 #12
0
        public void StatusProcessamentoDeveSerIgualDeAcordoComSolicitado([Values(StatusTransacao.Processando,
                                                                                 StatusTransacao.Processado, StatusTransacao.Erro)] StatusTransacao statusTransacao)
        {
            var cobranca = _cobrancaBoleto;

            if (statusTransacao == StatusTransacao.Processando)
            {
                cobranca = CobrancaBuilder.BuildCobrancaCartao();
            }
            else if (statusTransacao == StatusTransacao.Processado)
            {
                _cobrancaBoleto.FinalizaProcessamentoFormaPagamento();
            }
            else if (statusTransacao == StatusTransacao.Erro)
            {
                _cobrancaBoleto.ErroCriarTransacao();
            }

            Assert.AreEqual(cobranca.Transacao.Status, statusTransacao);
        }
コード例 #13
0
        public void AoAlterarClienteDeveSetarDadosCorretamente()
        {
            var cobranca = CobrancaBuilder.BuildCobrancaCartao().ComErroTransacao();
            var cliente  = ClienteCobrancaBuilder.BuildCliente(cobranca);

            var tenantId = Guid.NewGuid().ToString();
            var nome     = Guid.NewGuid().ToString();
            var email    = Guid.NewGuid().ToString();
            var cpfCnpj  = Guid.NewGuid().ToString();
            var telefone = ClienteCobrancaBuilder.BuildTelefone();
            var endereco = ClienteCobrancaBuilder.BuildEndereco();

            cliente.Alterar(tenantId, nome, cpfCnpj, email, telefone, endereco);

            Assert.AreEqual(tenantId, cliente.TenantId);
            Assert.AreEqual(nome, cliente.Nome);
            Assert.AreEqual(cpfCnpj, cliente.CpfCnpj);
            Assert.AreEqual(email, cliente.Email);
            Assert.AreSame(telefone, cliente.Telefone);
            Assert.AreSame(endereco, cliente.Endereco);
        }
コード例 #14
0
        public void AoCriarClienteDeveSetarValoresCorretamente()
        {
            var cobrancaCartao = CobrancaBuilder.BuildCobrancaCartao();
            var telefone       = ClienteCobrancaBuilder.BuildTelefone();
            var endereco       = ClienteCobrancaBuilder.BuildEndereco();
            var nome           = Guid.NewGuid().ToString();
            var cpfCnpj        = Guid.NewGuid().ToString();
            var email          = Guid.NewGuid().ToString();
            var tenantId       = Guid.NewGuid().ToString();
            var cartaoCredito  = ClienteCobrancaBuilder.BuildCartaoCredito();

            var cliente = new ClienteCobranca(cobrancaCartao, nome, cpfCnpj, email, tenantId, telefone, endereco, cartaoCredito);


            Assert.AreEqual(cliente.Nome, nome);
            Assert.AreEqual(cliente.CpfCnpj, cpfCnpj);
            Assert.AreEqual(cliente.Email, email);
            Assert.AreEqual(cliente.TenantId, tenantId);
            Assert.AreSame(cliente.Telefone, telefone);
            Assert.AreSame(cliente.Endereco, endereco);
            Assert.AreEqual(cliente.CartaoCreditoCobranca.TenantId, cartaoCredito.TenantId);
            Assert.AreEqual(cliente.CartaoCreditoCobranca.Nome, cartaoCredito.Nome);
            Assert.AreEqual(cliente.CartaoCreditoCobranca.Numero, cartaoCredito.Numero);
        }
コード例 #15
0
 public void ConsigoCriarCobrancaDeBoleto()
 {
     Assert.DoesNotThrow(() => CobrancaBuilder.BuildCobrancaBoleto());
 }