From 82151ec089b6aaf9e5023f62e897101b22e8d501 Mon Sep 17 00:00:00 2001 From: Paul Richard Pereira Martins dos Anjos Date: Mon, 30 Sep 2024 10:52:33 -0300 Subject: [PATCH] feat: adicionado metodo na classe PaginaProcesso; adicionado teste pra validar botoes do tramite em bloco (super) --- .../funcional/src/paginas/PaginaProcesso.php | 11 +++ ...amiteProcessoValidacaoBotaoIncluirTest.php | 78 +++++++++++++++++++ ...ProcessoValidacaoBotoesAposIncluirTest.php | 57 ++++++++++++++ 3 files changed, 146 insertions(+) create mode 100755 tests_super/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php create mode 100755 tests_super/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php diff --git a/tests_super/funcional/src/paginas/PaginaProcesso.php b/tests_super/funcional/src/paginas/PaginaProcesso.php index 40d2ef462..12464c5de 100755 --- a/tests_super/funcional/src/paginas/PaginaProcesso.php +++ b/tests_super/funcional/src/paginas/PaginaProcesso.php @@ -241,4 +241,15 @@ private function listarArvoreProcesso() return array_map(function($item) {return $item->text();}, $itens); } + public function validarBotaoExiste($botao) + { + try { + $this->test->frame(null); + $this->test->frame("ifrVisualizacao"); + $botao = $this->test->byXPath("//img[@alt='$botao']"); + return true; + } catch (\Exception $e) { + return false; + } + } } diff --git a/tests_super/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php b/tests_super/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php new file mode 100755 index 000000000..b55f4e5cc --- /dev/null +++ b/tests_super/funcional/tests/TramiteProcessoValidacaoBotaoIncluirTest.php @@ -0,0 +1,78 @@ +execute("update md_pen_bloco set sta_estado=? where sta_estado=?;", array('C', 'A')); + + // Limpa os mapeamentos de unidade + $bancoOrgaoA->execute("delete from md_pen_unidade;", array()); + } + + public static function tearDownAfterClass() :void { + + // Recadastra os mapeamentos da unidade + putenv("DATABASE_HOST=org1-database"); + $penMapUnidadesFixture = new \PenMapUnidadesFixture(); + $penMapUnidadesFixture->carregar([ + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA, + 'Sigla' => CONTEXTO_ORGAO_A_SIGLA_ESTRUTURA, + 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE, + ]); + + $bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A); + $bancoOrgaoA->execute("insert into md_pen_unidade(id_unidade, id_unidade_rh) values (?, ?)", array('110000002', CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA)); + } + + /** + * Teste de trâmite externo de processo com restrição de acesso + * + * @group envio + * @large + * + * + * @return void + */ + public function test_tramitar_processo_restrito() + { + // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); + self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); + + // Cadastrar novo processo de teste + $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); + self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); + + // Incluir e assinar documento no processo + $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); + + // Acessar sistema do this->REMETENTE do processo + $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); + + // Abrir processo + $this->abrirProcesso(self::$protocoloTeste); + + $this->assertNotTrue($this->paginaProcesso->validarBotaoExiste(utf8_encode("Incluir Processo no Bloco de Trâmite"))); + } +} diff --git a/tests_super/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php b/tests_super/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php new file mode 100755 index 000000000..7bea8cbf6 --- /dev/null +++ b/tests_super/funcional/tests/TramiteProcessoValidacaoBotoesAposIncluirTest.php @@ -0,0 +1,57 @@ +definirContextoTeste(CONTEXTO_ORGAO_A); + self::$processoTeste = $this->gerarDadosProcessoTeste(self::$remetente); + self::$documentoTeste = $this->gerarDadosDocumentoInternoTeste(self::$remetente); + + // Cadastrar novo processo de teste + $objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTeste); + self::$protocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); + + // Incluir e assinar documento no processo + $this->cadastrarDocumentoInternoFixture(self::$documentoTeste, $objProtocoloDTO->getDblIdProtocolo()); + + $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); + $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); + + $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); + $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ + 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), + 'IdBloco' => $objBlocoDeTramiteDTO->getNumId() + ]); + + // Acessar sistema do this->REMETENTE do processo + $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); + + // Abrir processo + $this->abrirProcesso(self::$protocoloTeste); + + $this->assertNotTrue($this->paginaProcesso->validarBotaoExiste("Envio Externo de Processo")); + $this->assertNotTrue($this->paginaProcesso->validarBotaoExiste(utf8_encode("Incluir Processo no Bloco de Trâmite"))); + $this->assertTrue($this->paginaProcesso->validarBotaoExiste(utf8_encode("Remover Processo do Bloco de Trâmite"))); + } +}