public void ValidandoAutenticacaoePermissoes()
        {
            // VALIDAÇÃO INICIAL: NEGAR TODAS
            this.Funcionalidade.Habilitado = Valor.Inativo;
            AcessoController.Manter(this.Funcionalidade, "usuario.testes", null);
            Assert.IsFalse(this.ValidarControledeAcessoStub(), "A funcionalidade está habilitada para uso quando não deveria estar.");
            Assert.IsFalse(this.ValidarAutenticacaoStub(), "O usuário está autenticado quando não deveria estar.");
            Assert.IsFalse(this.ValidarPermissoesStub(), "O usuário possui permissão de acesso quando não deveria possuir.");

            // APESAR DE AUTENTICADO É NECESSÁRIO INFORMAR O ENVIRONMENT ENVOLVIDO
            UsuarioCorrenteFacade.Autenticar("usuario.teste", "testes");
            Assert.IsFalse(this.ValidarAutenticacaoStub(), "O Environment foi informado quando não deveria está preenchido.");
            Assert.IsFalse(this.ValidarPermissoesStub(), "O Environment foi informado quando não deveria está preenchido.");
            UsuarioCorrenteFacade.Environment = this.Ambiente.GUID;

            // UMA VEZ AUTENTICADO, SETADO O ENVIRONMENT E DEFINIDO A FUNCIONALIDADE ENVOLVIDA COMO ATIVA DEVE APROVAR DUAS DAS TRÊS CHECAGENS,
            // MAS DEVE NEGAR A CHECAGEM DE PERMISSÃO, POIS A MESMA AINDA NÃO FOI GERADA
            this.Funcionalidade.Habilitado = Valor.Ativo;
            AcessoController.Manter(this.Funcionalidade, "usuario.testes", null);
            Assert.IsTrue(this.ValidarControledeAcessoStub(), "A funcionalidade não está habilitada para uso quando deveria estar.");
            Assert.IsTrue(this.ValidarAutenticacaoStub(), "O usuário não está autenticado no sistema.");
            Assert.IsFalse(this.ValidarPermissoesStub(), "O usuário não deveria possui permissão de acesso a PÁGINA MAPEADA.");

            // COM A PERMISSÃO GERADA, A ÚLTIMA VALIDAÇÃO TAMBÉM DEVE SER APROVADA
            this.Permissao.Usuario = this.Usuario;
            this.Permissao.GUID    = this.Funcionalidade.GUID;
            PermissaoController.Manter(this.Permissao, "usuario.teste", null);
            Assert.IsTrue(this.ValidarPermissoesStub(), "O usuário deveria possui permissão de acesso a PÁGINA MAPEADA.");
        }
        public void ValidandoAcessoaUmaHomePage()
        {
            ColecaoPersistencia colecao = new ColecaoPersistencia();

            this.Usuario.Tipo  = EnumAutenticacao.TipodeUsuario.Usuario;
            this.Usuario.Login = "******";
            this.Usuario.Senha = "bnkGt/s/jhxjZsCRAFDllQ=="; // testes
            UsuarioController.Manter(this.Usuario, colecao);

            this.Ambiente.Titulo     = "Portal (Homologação)";
            this.Ambiente.Habilitado = Valor.Ativo;
            this.Ambiente.Restrito   = Valor.Ativo;
            AcessoController.Manter(this.Ambiente, "usuario.testes", colecao);

            colecao.Persistir();

            this.Mapeamento.Tipo      = EnumAcesso.TipodeAcesso.Ambiente;
            this.Mapeamento.IdAcesso  = this.Ambiente.ID;
            this.Mapeamento.UrlMapID  = PAGINA_ID;
            this.Mapeamento.Principal = Valor.Ativo;
            AcessoController.Manter(this.Mapeamento, "usuario.testes", null);

            bool isHomePage = HomePageFacade.IsTrue(PAGINA_ID);

            Assert.IsTrue(isHomePage, "Não foi possível localizar a associação com o cenário HOME.");

            try { UsuarioCorrenteFacade.Desconectar(); }
            catch { /* Prevenção */ }
        }
        public void InicializarObjetosEnvolvidos()
        {
            ColecaoPersistencia colecao = new ColecaoPersistencia();

            this.Usuario       = UsuarioController.Create();
            this.Usuario.Tipo  = EnumAutenticacao.TipodeUsuario.Usuario;
            this.Usuario.Login = "******";
            this.Usuario.Senha = "bnkGt/s/jhxjZsCRAFDllQ=="; // testes
            UsuarioController.Manter(this.Usuario, colecao);

            this.Ambiente            = new Ambiente();
            this.Ambiente.Titulo     = "Portal (Homologação)";
            this.Ambiente.Habilitado = Valor.Ativo;
            this.Ambiente.Restrito   = Valor.Ativo;
            AcessoController.Manter(this.Ambiente, "usuario.testes", colecao);

            // INÍCIO: A exclusão do ambiente irá efetuar o processo de limpeza automática dos registros associados (cascata)
            SuperGrupo objSuperGrupo = new SuperGrupo();

            objSuperGrupo.Titulo        = "Aninhamento Padrão - Nível 1 (Homologação)";
            objSuperGrupo.Ambiente      = this.Ambiente;
            objSuperGrupo.Habilitado    = Valor.Ativo;
            objSuperGrupo.CodigoInterno = EnumAcesso.CodigoInterno_Grupo.Individual;
            AcessoController.Manter(objSuperGrupo, "usuario.testes", colecao);

            Grupo objGrupo = new Grupo();

            objGrupo.Titulo        = "Aninhamento Padrão - Nível 2 (Homologação)";
            objGrupo.SuperGrupo    = objSuperGrupo;
            objGrupo.Habilitado    = Valor.Ativo;
            objGrupo.CodigoInterno = EnumAcesso.CodigoInterno_Grupo.Individual;
            AcessoController.Manter(objGrupo, "usuario.testes", colecao);
            // FIM: A exclusão do ambiente irá efetuar o processo de limpeza automática dos registros associados (cascata)

            this.Funcionalidade            = new Funcionalidade();
            this.Funcionalidade.Titulo     = "Validação de Página Mapeada (Homologação)";
            this.Funcionalidade.Grupo      = objGrupo;
            this.Funcionalidade.Habilitado = Valor.Ativo;
            AcessoController.Manter(this.Funcionalidade, "usuario.testes", colecao);

            colecao.Persistir();

            this.Mapeamento           = new AcessoMap();
            this.Mapeamento.Tipo      = EnumAcesso.TipodeAcesso.Funcionalidade;
            this.Mapeamento.IdAcesso  = this.Funcionalidade.ID;
            this.Mapeamento.UrlMapID  = PAGINA_ID;
            this.Mapeamento.Principal = Valor.Ativo;
            AcessoController.Manter(this.Mapeamento, "usuario.testes", null);

            this.Permissao = PermissaoController.Create();

            try { UsuarioCorrenteFacade.Desconectar(); }
            catch { /* Prevenção */ }
        }
        public void ValidandoAutenticacaoePermissoes()
        {
            Assert.IsFalse(this.ValidarAutenticacaoStub(), "O usuário está autenticado quando não deveria estar.");
            Assert.IsFalse(this.ValidarPermissoesStub(), "O usuário está autenticado quando não deveria estar.");

            UsuarioCorrenteFacade.Autenticar("usuario.teste", "testes");
            Assert.IsTrue(this.ValidarAutenticacaoStub(), "O usuário não está autenticado no sistema.");
            Assert.IsFalse(this.ValidarPermissoesStub(), "O usuário não deveria possui permissão de acesso a HOME.");

            this.Permissao.Usuario = this.Usuario;
            this.Permissao.GUID    = this.Ambiente.FindGUID(PAGINA_ID);
            PermissaoController.Manter(this.Permissao, "usuario.teste", null);

            Assert.IsTrue(this.ValidarPermissoesStub(), "O usuário deveria possui permissão de acesso a HOME.");
        }