Beispiel #1
0
        public void AoAprovarTransacaoComStatusDiferenteProcessandoDeveLancarExcecao([Values(
                                                                                          StatusTransacaoCartao.Erro, StatusTransacaoCartao.Aprovada)] StatusTransacaoCartao statusAtual)
        {
            var transacaoCartao = TransacaoCartaoBuilder.BuildTransacao().ComStatus(statusAtual);

            Assert.Throws <ImpossivelAprovarTransacaoException>(() => transacaoCartao.Aprovar());
        }
Beispiel #2
0
        public StatusTransacaoCartaoValueObject Aprovar()
        {
            if (Status != StatusTransacaoCartao.Procesando)
            {
                throw new ImpossivelAprovarTransacaoException();
            }

            Status = StatusTransacaoCartao.Aprovada;
            return(this);
        }
Beispiel #3
0
        public StatusTransacaoCartaoValueObject DefinirErro(string mensagemErro)
        {
            if (Status != StatusTransacaoCartao.Procesando)
            {
                throw new ImpossivelDefinirErroTransacaoException();
            }

            Status       = StatusTransacaoCartao.Erro;
            MensagemErro = mensagemErro;
            return(this);
        }
Beispiel #4
0
        public static Transacao ComStatus(this Transacao transacao, StatusTransacaoCartao status)
        {
            if (status == StatusTransacaoCartao.Erro)
            {
                return(transacao.DefinirErro("Falha"));
            }
            else if (status == StatusTransacaoCartao.Aprovada)
            {
                return(transacao.Aprovar());
            }
            else if (status == StatusTransacaoCartao.Procesando)
            {
                return(BuildTransacao());
            }

            return(null);
        }