コード例 #1
0
 public void FixtureSetUp()
 {
     _apropriacaoPremio = ParcelaApropriadaBuilder.UmBuilder().Padrao()
                          .Com(ApropriacaoBuilder.UmBuilder()
                               .Com(PagamentoBuilder.UmBuilder().Padrao()))
                          .Build();
 }
コード例 #2
0
        public void Deve_registrar_que_o_pagamento_foi_aprovado()
        {
            const string bandeiraDoCartaoEsperada = "Master";
            var          pagamento = PagamentoBuilder.Novo().Criar();

            pagamento.Aprovar(bandeiraDoCartaoEsperada);

            Assert.True(pagamento.Aprovado);
        }
コード例 #3
0
        public void Deve_registrar_a_bandeira_do_cartao_ao_aprovar_pagamento()
        {
            const string bandeiraDoCartaoEsperada = "Master";
            var          pagamento = PagamentoBuilder.Novo().Criar();

            pagamento.Aprovar(bandeiraDoCartaoEsperada);

            Assert.Equal(pagamento.BandeiraDoCartao, bandeiraDoCartaoEsperada);
        }
コード例 #4
0
 private IAporte CriaParcela(DateTime dataPagamento, DateTime dataApropriacao, decimal valorPago)
 {
     return(AporteBuilder.UmBuilder().Padrao()
            .Com(PagamentoBuilder.UmBuilder()
                 .ComDataPagamento(dataPagamento)
                 .ComDataApropriacao(dataApropriacao)
                 .ComValorPago(valorPago))
            .Build());
 }
コード例 #5
0
        public void Nao_deve_alterar_o_cartao_de_credito_quando_informar_nome_invalido(string nomeNoCartaoDeCreditoInvalido)
        {
            const string mensagemDeErroEsperada      = "É necessário informar o nome registrado no cartão de crédito";
            var          novoNumeroDoCartaoDeCredito = _faker.Random.Int(1000000).ToString();
            var          pagamento = PagamentoBuilder.Novo().Criar();

            void Acao() => pagamento.AlterarCartaoDeCredito(novoNumeroDoCartaoDeCredito, nomeNoCartaoDeCreditoInvalido);

            Assert.Throws <ExcecaoDeDominio <Pagamento> >(Acao).PossuiErroComAMensagemIgualA(mensagemDeErroEsperada);
        }
コード例 #6
0
        public void DadoUmPremioComValorPagoInvalidoDeveGerarErro()
        {
            _parcela = ApropriacaoBuilder.UmBuilder().Padrao()
                       .Com(PagamentoBuilder.UmBuilder()
                            .ComDataPagamento(DateTime.Now)
                            .ComDataApropriacao(DateTime.Now))
                       .Build();

            Assert.That(() => _parcela.Validar(), GeraErro("O Valor Pago para o ItemCertificadoApolice"));
        }
コード例 #7
0
        public void DadoUmPremioDePortabilidadeComDataApropriacaoInvalidaDeveGerarErro()
        {
            _parcela = PortabilidadeBuilder.UmBuilder().Padrao()
                       .Com(PagamentoBuilder.UmBuilder()
                            .ComDataPagamento(DateTime.Now)
                            .ComValorPago(IdentificadoresPadrao.ValorPago))
                       .Build();

            Assert.That(() => _parcela.Validar(), GeraErro("A Data de Portabilidade para o ItemCertificadoApolice"));
        }
コード例 #8
0
        public void Deve_alterar_o_cartao_de_credito()
        {
            var novoNumeroDoCartaoDeCredito = _faker.Random.Int(1000000).ToString();
            var nomeNoCartaoDeCredito       = _faker.Person.FullName;
            var pagamento = PagamentoBuilder.Novo().Criar();

            pagamento.AlterarCartaoDeCredito(novoNumeroDoCartaoDeCredito, nomeNoCartaoDeCredito);

            Assert.Equal(novoNumeroDoCartaoDeCredito, pagamento.NumeroDoCartaoDeCredito);
            Assert.Equal(nomeNoCartaoDeCredito, pagamento.NomeNoCartaoDeCredito);
        }
コード例 #9
0
        private IParcelaApropriada ObterContratoParcelaApropriada()
        {
            var apropriacao = ApropriacaoBuilder.UmBuilder()
                              .Com(PagamentoBuilder.UmBuilder().Padrao())
                              .ComValorBuilder(ValorBuilder.UmBuilder().Padrao())
                              .ComVigenciaBuilder(VigenciaBuilder.UmBuilder().Padrao())
                              .ComParcelaBuilder(ParcelaIdBuilder.UmBuilder()
                                                 .ComNumeroParcela(12).ComIdentificadorExternoCobertura(cobertura.IdentificadorExterno));

            return(ParcelaApropriadaBuilder.UmBuilder()
                   .ComIdentificador(Guid.NewGuid())
                   .ComIdentificadorNegocio(_proposta.IdentificadorNegocio)
                   .ComDataExecucaoEvento(DateTime.Now)
                   .Com((ApropriacaoBuilder)apropriacao)
                   .Build());
        }
コード例 #10
0
        public async Task Deve_enviar_evento_de_pagamento_negado_ao_negar_o_pagamento_de_um_cartao_no_reprocessamento_de_um_pagamento(string numeroDeCartaoDeCreditoInvalido)
        {
            var id           = _faker.Random.Int(0);
            var nomeDoCartao = _faker.Person.FullName;
            var produto      = _faker.Random.String2(9);
            var valor        = _faker.Random.Decimal();
            var alterouCartaoDeCreditoDoPedidoEvento = new AlterouCartaoDeCreditoDoPedidoEvento(id, nomeDoCartao, numeroDeCartaoDeCreditoInvalido, produto, valor);
            var pagamento = PagamentoBuilder.Novo().Criar();

            _pagamentoRepositorio.Setup(pr => pr.ObterPeloIdDoPedido(id)).ReturnsAsync(pagamento);
            _pagamentoRepositorio.Setup(pr => pr.AtualizarPagamento(It.IsAny <Pagamento>()));
            _mensageria.Setup(m => m.PublishAsync(It.IsAny <PagamentoRecusadoEvento>()));

            await _processamentoDePagamento.ReprocessarPagamentoAsync(alterouCartaoDeCreditoDoPedidoEvento);

            _mensageria.Verify(m => m.PublishAsync(It.Is <PagamentoRecusadoEvento>(p => p.IdDoPedido == pagamento.IdDoPedido)));
        }
コード例 #11
0
        private IAporteApropriado ObterAportePremio()
        {
            var cobertura = _proposta.Produtos.First().Coberturas.First();

            var aporte = AporteBuilder.UmBuilder()
                         .Com(PagamentoBuilder.UmBuilder().Padrao())
                         .ComValorBuilder(ValorBuilder.UmBuilder().Padrao())
                         .ComVigenciaBuilder(VigenciaBuilder.UmBuilder().Padrao())
                         .ComParcelaBuilder(ParcelaIdBuilder.UmBuilder()
                                            .ComNumeroParcela(0).ComIdentificadorExternoCobertura(cobertura.IdentificadorExterno));

            return(AporteApropriadoBuilder.UmBuilder()
                   .ComIdentificador(Guid.NewGuid())
                   .ComIdentificadorNegocio(_proposta.IdentificadorNegocio)
                   .ComDataExecucaoEvento(DateTime.Now)
                   .Com((AporteBuilder)aporte)
                   .Build());
        }
コード例 #12
0
        private IPortabilidadeApropriada ObterPortabilidadeApropriada()
        {
            var cobertura = _proposta.Produtos.First().Coberturas.First();

            var aporte = PortabilidadeBuilder.UmBuilder()
                         .ComCodigoSusep(IdentificadoresPadrao.CodigoSusep)
                         .Com(PagamentoBuilder.UmBuilder().Padrao())
                         .ComValorBuilder(ValorBuilder.UmBuilder().Padrao())
                         .ComVigenciaBuilder(VigenciaBuilder.UmBuilder().Padrao())
                         .ComParcelaBuilder(ParcelaIdBuilder.UmBuilder()
                                            .ComNumeroParcela(0).ComIdentificadorExternoCobertura(cobertura.IdentificadorExterno));

            return(PortabilidadeApropriadaBuilder.UmBuilder()
                   .ComIdentificador(Guid.NewGuid())
                   .ComIdentificadorNegocio(_proposta.IdentificadorNegocio)
                   .ComDataExecucaoEvento(DateTime.Now)
                   .Com((PortabilidadeBuilder)aporte)
                   .Build());
        }
コード例 #13
0
        public async Task Deve_atualizar_informacoes_do_cartao_de_credito_ao_reprocessar_pagamento()
        {
            var id             = _faker.Random.Int(0);
            var nomeDoCartao   = _faker.Person.FullName;
            var numeroDeCartao = _faker.Random.Int(0).ToString();
            var produto        = _faker.Random.String2(9);
            var valor          = _faker.Random.Decimal();
            var alterouCartaoDeCreditoDoPedidoEvento = new AlterouCartaoDeCreditoDoPedidoEvento(id, nomeDoCartao, numeroDeCartao, produto, valor);
            var pagamento = PagamentoBuilder.Novo().Criar();

            _pagamentoRepositorio.Setup(pr => pr.ObterPeloIdDoPedido(id)).ReturnsAsync(pagamento);
            _pagamentoRepositorio.Setup(pr => pr.AtualizarPagamento(It.IsAny <Pagamento>()));

            await _processamentoDePagamento.ReprocessarPagamentoAsync(alterouCartaoDeCreditoDoPedidoEvento);

            _pagamentoRepositorio.Verify(pr
                                         => pr.AtualizarPagamento(It.Is <Pagamento>(p
                                                                                    => p.NumeroDoCartaoDeCredito == numeroDeCartao && p.NomeNoCartaoDeCredito == nomeDoCartao)));
        }
コード例 #14
0
 public void FixtureSetUp()
 {
     _pagamento = PagamentoBuilder.UmBuilder().Build();
 }