public void AoDefinirErroTransacaoComStatusDiferenteProcessandoDeveLancarExcecao([Values( StatusTransacaoCartao.Erro, StatusTransacaoCartao.Aprovada)] StatusTransacaoCartao statusAtual) { var transacaoCartao = TransacaoCartaoBuilder.BuildTransacao().ComStatus(statusAtual); Assert.Throws <ImpossivelDefinirErroTransacaoException>(() => transacaoCartao.DefinirErro("Falha")); }
public void AoReprocessarTransacaoComStatusDiferenteErroDeveLancarExcecao([Values( StatusTransacaoCartao.Procesando, StatusTransacaoCartao.Aprovada)] StatusTransacaoCartao statusAtual) { var transacaoCartao = TransacaoCartaoBuilder.BuildTransacao().ComStatus(statusAtual); Assert.Throws <ImpossivelReprocessarTransacaoException>(() => transacaoCartao.Reprocessar(transacaoCartao.Valor)); }
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()); }
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); }
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); }
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); }
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()); }
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); }
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); }