Exemplo n.º 1
0
        public void AoDefinirErroTransacaoComStatusDiferenteProcessandoDeveLancarExcecao([Values(
                                                                                              StatusTransacaoCartao.Erro, StatusTransacaoCartao.Aprovada)] StatusTransacaoCartao statusAtual)
        {
            var transacaoCartao = TransacaoCartaoBuilder.BuildTransacao().ComStatus(statusAtual);

            Assert.Throws <ImpossivelDefinirErroTransacaoException>(() => transacaoCartao.DefinirErro("Falha"));
        }
Exemplo n.º 2
0
        public void AoReprocessarTransacaoComStatusDiferenteErroDeveLancarExcecao([Values(
                                                                                       StatusTransacaoCartao.Procesando, StatusTransacaoCartao.Aprovada)]
                                                                                  StatusTransacaoCartao statusAtual)
        {
            var transacaoCartao = TransacaoCartaoBuilder.BuildTransacao().ComStatus(statusAtual);

            Assert.Throws <ImpossivelReprocessarTransacaoException>(() => transacaoCartao.Reprocessar(transacaoCartao.Valor));
        }
Exemplo n.º 3
0
        public void AoCriarTransacaoCartaoDeveAdicionarEventoTransacaoCartao()
        {
            var transacao            = TransacaoCartaoBuilder.BuildTransacao();
            var transacaoCartaoEvent = transacao.Events
                                       .Where(e => e is TransacaoCartaoCriadaEvent)
                                       .Cast <TransacaoCartaoCriadaEvent>();

            Assert.AreEqual(transacaoCartaoEvent.SingleOrDefault()?.TransacaoId, transacao.Id.ToString());
        }
Exemplo n.º 4
0
        public void AoDefinirTransacaoComoErroDeveSetarIdTransacaoEMensagemCorretamente()
        {
            var mensagemErro = "Sem limite";
            var idTransacao  = Guid.NewGuid().ToString();
            var transacao    = TransacaoCartaoBuilder.BuildTransacao().ComStatus(StatusTransacaoCartao.Procesando);

            transacao.DefinirErro(mensagemErro);

            Assert.AreEqual(transacao.Status.MensagemErro, mensagemErro);
        }
Exemplo n.º 5
0
        public void AoReprocessarTransacaoDeveCriarNovaTransacaoComDadosCorretos()
        {
            var transacao = TransacaoCartaoBuilder.BuildTransacao().ComStatus(StatusTransacaoCartao.Erro);
            var valor     = 223;

            var novaTransacao = transacao.Reprocessar(valor);

            Assert.AreEqual(valor, novaTransacao.Valor);
            Assert.AreEqual(transacao.CobrancaId, novaTransacao.CobrancaId);
            Assert.AreEqual(StatusTransacaoCartao.Procesando, novaTransacao.Status.Status);
        }
Exemplo n.º 6
0
        public void AoCriarTransacaoCartaoTodosOsCamposDeveSerSetadosCorretamente()
        {
            var idCobranca    = Guid.NewGuid().ToString();
            var valor         = 200;
            var cartaoCredito = CartaoCreditoBuilder.BuildCartaoCredito().ComStatus(StatusCartao.Processado);

            var transacaoCartao = TransacaoCartaoBuilder.BuildTransacao(idCobranca, cartaoCredito, valor);

            Assert.AreEqual(transacaoCartao.CobrancaId, idCobranca);
            Assert.AreEqual(transacaoCartao.Valor, valor);
        }
Exemplo n.º 7
0
        public void AoDefinirTransacaoCartaoComoErroDeveAdicionarEventoTransacaoCartao()
        {
            var transacao             = TransacaoCartaoBuilder.BuildTransacao().ComStatus(StatusTransacaoCartao.Procesando);
            var transacaoCartaoEvents = transacao
                                        .Events
                                        .Where(e => e is ErroTransacaoCartaoEvent)
                                        .Cast <ErroTransacaoCartaoEvent>();

            Assert.IsNull(transacaoCartaoEvents.SingleOrDefault());

            transacao.DefinirErro("Sem limite");

            Assert.AreEqual(transacaoCartaoEvents.SingleOrDefault().TransacaoId, transacao.Id.ToString());
        }
Exemplo n.º 8
0
        public void AoAprovarTransacaoCartaoDeveAdicionarEventoTransacaoCartao()
        {
            var transacao             = TransacaoCartaoBuilder.BuildTransacao().ComStatus(StatusTransacaoCartao.Procesando);
            var transacaoCartaoEvents = transacao
                                        .Events
                                        .Where(e => e is TransacaoCartaoAprovadaEvent)
                                        .Cast <TransacaoCartaoAprovadaEvent>();

            Assert.IsNull(transacaoCartaoEvents.SingleOrDefault());

            transacao.Aprovar();

            Assert.AreEqual(transacaoCartaoEvents.SingleOrDefault().TransacaoId, transacao.Id.ToString());
            Assert.AreEqual(transacaoCartaoEvents.SingleOrDefault().CobrancaId, transacao.CobrancaId);
        }
Exemplo n.º 9
0
        public void AoReprocessarTransacaoCartaoDeveAdicionarEventoATranscaoCartao()
        {
            var transacao             = TransacaoCartaoBuilder.BuildTransacao().ComStatus(StatusTransacaoCartao.Erro);
            var transacaoCartaoEvents = transacao
                                        .Events
                                        .Where(e => e is ReprocessandoTransacaoCartaoEvent)
                                        .Cast <ReprocessandoTransacaoCartaoEvent>();

            Assert.IsNull(transacaoCartaoEvents.SingleOrDefault());

            var novaTransacao = transacao.Reprocessar(22);
            var transacaoCartaoEventsNovaTransacao = novaTransacao
                                                     .Events
                                                     .Where(e => e is ReprocessandoTransacaoCartaoEvent)
                                                     .Cast <ReprocessandoTransacaoCartaoEvent>();

            Assert.IsNull(transacaoCartaoEvents.SingleOrDefault());

            Assert.AreSame(transacaoCartaoEventsNovaTransacao.SingleOrDefault().Transacao, novaTransacao);
            Assert.AreSame(transacaoCartaoEventsNovaTransacao.SingleOrDefault().TransacaoAnterior, transacao);
        }