public void SeIniciarUmaTransacaoOsEventosDeInicioDevemSerVerificados()
        {
            using (var conexao = CriarConexao())
            {
                var eventosConexao = new GerenciadorEventosConexao(conexao);

                using (var conexaoBanco = conexao.CriarConexaoSemTransacao())
                    eventosConexao.Validar(
                        executarEventoAntesIniciar: false,
                        executarEventoDepoisIniciar: false);

                using (var transacao = conexao.IniciarTransacao() as Transacao)
                {
                    eventosConexao.Validar(
                        executarEventoAntesIniciar: true,
                        executarEventoDepoisIniciar: true);

                    eventosConexao.Validar(
                        sequenciaEventoAntesIniciar: 1,
                        sequenciaEventoDepoisIniciar: 2);

                    transacao.CancelarTransacao();
                }

                using (var transacao = conexao.IniciarTransacao() as Transacao)
                {
                    var eventosTransacao = new GerenciadorEventosTransacao(transacao as Transacao);

                    eventosTransacao.Validar(
                        executarEventoAntesConfirmar: false,
                        executarEventoAoConfirmar: false,
                        executarEventoAntesCancelar: false,
                        executarEventoAoCancelar: false);

                    eventosTransacao.Validar(
                        sequenciaEventoAntesConfirmar: 0,
                        sequenciaEventoAoConfirmar: 0,
                        sequenciaEventoAntesCancelar: 0,
                        sequenciaEventoAoCancelar: 0);
                }
            }
        }
        public void SeCancelarUmaTransacaoOsEventosDeCancelamentoDevemSerVerificados()
        {
            using (var conexao = CriarConexao())
                using (var transacao = conexao.IniciarTransacao() as Transacao)
                {
                    var eventos = new GerenciadorEventosTransacao(transacao as Transacao);

                    transacao.CancelarTransacao();

                    eventos.Validar(
                        executarEventoAntesConfirmar: false,
                        executarEventoAoConfirmar: false,
                        executarEventoAntesCancelar: true,
                        executarEventoAoCancelar: true);

                    eventos.Validar(
                        sequenciaEventoAntesConfirmar: 0,
                        sequenciaEventoAoConfirmar: 0,
                        sequenciaEventoAntesCancelar: 1,
                        sequenciaEventoAoCancelar: 2);
                }
        }