From 59365ad9c4580da96d1dfdc6c90af857637f22ad Mon Sep 17 00:00:00 2001 From: Marcus Dias Date: Mon, 25 Nov 2024 16:19:36 -0300 Subject: [PATCH] test: cadastro de mapeamento de unidades --- .../src/fixtures/PenMapUnidadesFixture.php | 40 +++- .../src/paginas/PaginaMapUnidades.php | 160 +++++++++++++++- .../tests/MapeamentoDeUnidadesTest.php | 179 ++++++++++++++++++ .../src/fixtures/PenMapUnidadesFixture.php | 40 +++- .../src/paginas/PaginaMapUnidades.php | 160 +++++++++++++++- .../tests/MapeamentoDeUnidadesTest.php | 179 ++++++++++++++++++ .../src/fixtures/PenMapUnidadesFixture.php | 37 +++- .../src/paginas/PaginaMapUnidades.php | 160 +++++++++++++++- .../tests/MapeamentoDeUnidadesTest.php | 179 ++++++++++++++++++ 9 files changed, 1107 insertions(+), 27 deletions(-) create mode 100644 tests_sei4/funcional/tests/MapeamentoDeUnidadesTest.php create mode 100644 tests_sei41/funcional/tests/MapeamentoDeUnidadesTest.php create mode 100644 tests_super/funcional/tests/MapeamentoDeUnidadesTest.php diff --git a/tests_sei4/funcional/src/fixtures/PenMapUnidadesFixture.php b/tests_sei4/funcional/src/fixtures/PenMapUnidadesFixture.php index ea698cb2..d6b9c8ef 100644 --- a/tests_sei4/funcional/src/fixtures/PenMapUnidadesFixture.php +++ b/tests_sei4/funcional/src/fixtures/PenMapUnidadesFixture.php @@ -20,7 +20,17 @@ protected function inicializarObjInfraIBanco() public function cadastrar($dados = []) { $objPenUnidadeDTO = $this->consultar($dados); + $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); + if ($objPenUnidadeDTO) { + if ($objPenUnidadeDTO->getNumIdUnidadeRH() != $dados['Id'] || + $objPenUnidadeDTO->getStrNomeUnidadeRH() != $dados['Nome'] || + $objPenUnidadeDTO->getStrSiglaUnidadeRH() != $dados['Sigla']) { + $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); + $objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); + $objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); + $objPenUnidadeDTO = $objPenUnidadeBD->alterar($objPenUnidadeDTO); + } return $objPenUnidadeDTO; } @@ -29,7 +39,6 @@ public function cadastrar($dados = []) $this->objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); $this->objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); - $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objPenUnidadeBD->cadastrar($this->objPenUnidadeDTO); } @@ -37,12 +46,35 @@ public function consultar($dados = []) { $objPenUnidadeDTO = new \PenUnidadeDTO(); $objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); - $objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); - $objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); $objPenUnidadeDTO->retTodos(); $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objPenUnidadeBD->consultar($objPenUnidadeDTO); } + + protected function listar($dados = []) + { + $this->objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade']); + $this->objPenUnidadeDTO->retTodos(); + + $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); + return $objPenUnidadeBD->listar($this->objPenUnidadeDTO); + } + + public function excluir($dados = []) + { + if (is_numeric($dados['Id'])){ + $objPenUnidadeDTO = new \PenUnidadeDTO(); + $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); + $objPenUnidadeDTO->retTodos(); + + $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); + $objPenUnidadeDTO = $objPenUnidadeBD->consultar($objPenUnidadeDTO); + if ($objPenUnidadeDTO != null) { + return $objPenUnidadeBD->excluir($objPenUnidadeDTO); + } + } + return false; + } + } \ No newline at end of file diff --git a/tests_sei4/funcional/src/paginas/PaginaMapUnidades.php b/tests_sei4/funcional/src/paginas/PaginaMapUnidades.php index 28306007..8224f482 100644 --- a/tests_sei4/funcional/src/paginas/PaginaMapUnidades.php +++ b/tests_sei4/funcional/src/paginas/PaginaMapUnidades.php @@ -89,16 +89,166 @@ public function selecionarUnidade($textoUnidade) $this->test->assertTrue($sucesso); } - /** - * Selcionar botão salvar da página - * - * @return void - */ + /** + * Clica em botão salvar da página + * + * @return void + */ public function salvar() { $this->test->byId("btnSalvar")->click(); } + /** + * Clica em botão novo da página + * + * @return void + */ + public function btnNovo() + { + $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Novo']"); + $buttonElement->click(); + } + + /** + * Seleciona a unidade na pagina de cadastro + * + * @return void + */ + public function selecionarUnidadeCadastro($numUnidade = '110000001'){ + + $select = $this->test->byId('selUnidadeSei'); + $this->test->select($select)->selectOptionByValue($numUnidade); + sleep(2); + $selectedOption = $this->test->select($select)->selectedValue(); + $this->test->assertEquals($numUnidade, $selectedOption); + + } + /** + * Seleciona a unidade PEN na pagina de cadastro + * + * @return void + */ + public function selecionarUnidadePenCadastro($textoUnidade) + { + $this->repoUnidadeInput = $this->test->byId('txtUnidadePen'); + $this->repoUnidadeInput->clear(); + $this->repoUnidadeInput->value($textoUnidade); + $this->test->keys(Keys::ENTER); + $sucesso = $this->test->waitUntil(function($testCase) { + $bolExisteAlerta=null; + $nomeUnidade = $testCase->byId('txtUnidadePen')->value(); + + try{ + $bolExisteAlerta = $this->alertTextAndClose(); + if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); + } + }catch(Exception $e){} + $testCase->byPartialLinkText($nomeUnidade)->click(); + return true; + }, PEN_WAIT_TIMEOUT); + + $this->test->assertTrue($sucesso); + } + + /** + * Cadastrar novo mapeamento + * + * @return void + */ + public function cadastrarNovoMapeamento($dados = []){ + $this->btnNovo(); + $this->selecionarUnidadeCadastro($dados['numUnidade']); + $this->selecionarUnidadePenCadastro($dados['nomeUnidade']); + $this->salvar(); + + sleep(2); + + $mensagem = $this->buscarMensagemAlerta(); + $this->test->assertStringContainsString( + mb_convert_encoding('Mapeamento de Unidade gravado com sucesso.', 'UTF-8', 'ISO-8859-1'), + $mensagem + ); + } + + /** + * Excluir mapeamentos existentes + * + * @return void + */ + public function excluirMapeamentosExistentes() + { + try{ + $lnkInfraCheck=$this->test->byXPath('//*[@id="lnkInfraCheck"]'); + $lnkInfraCheck->click(); + $this->excluir(); + sleep(1); + $mensagem = $this->buscarMensagemAlerta(); + $this->test->assertStringContainsString( + mb_convert_encoding('Mapeamento de Unidades foi excluido com sucesso.', 'UTF-8', 'ISO-8859-1'), + $mensagem + ); + } catch (Exception $e) { + } + } + + public function listarMapeamentos() + { + $this->test->refresh(); + + $this->test->assertTrue($this->existeTabela()); + + $linhasListagem = $this->test->elements($this->test->using('xpath')->value('//table[@class="infraTable"]/tbody/tr')); + unset($linhasListagem[0]); + unset($linhasListagem[1]); + + return $linhasListagem; + } + + /** + * Valida mapeamentos existentes + * + * @return void + */ + public function validarMapeamentoExistente($mapeamento) + { + + $linhasDaTabela = $this->listarMapeamentos(); + foreach ($linhasDaTabela as $linha) { + $td = $linha->byXPath('./td[6]'); + if ($td->text() == $mapeamento) { + return true; + } + } + return false; + } + + /** + * btn Excluir + * + * @return void + */ + public function excluir() + { + $this->test->byXPath("//button[@type='button' and @value='Excluir']")->click(); + $this->test->acceptAlert(); + } + + /** + * Verificar se a tabela de hipótese legal é exibida + * + * @return bool + */ + public function existeTabela() + { + try { + $trTh = $this->test->byXPath('//*[@id="divInfraAreaTabela"]/table/tbody/tr[1]/th[2]')->text(); + return !empty($trTh) && !is_null($trTh) && count($trTh) >= 1; + } catch (Exception $ex) { + return false; + } + } + public function limparRestricoes() { $options = $this->test->byId('selRepoEstruturas') diff --git a/tests_sei4/funcional/tests/MapeamentoDeUnidadesTest.php b/tests_sei4/funcional/tests/MapeamentoDeUnidadesTest.php new file mode 100644 index 00000000..a70ac7ee --- /dev/null +++ b/tests_sei4/funcional/tests/MapeamentoDeUnidadesTest.php @@ -0,0 +1,179 @@ +remover([ + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA + ]); + $penMapUnidadesFixture->remover([ + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA + ]); + + putenv("DATABASE_HOST=org2-database"); + $penMapUnidadesFixture->remover([ + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA + ]); + $penMapUnidadesFixture->remover([ + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA + ]); + + + } + + /** + * Volta para default + */ + public static function tearDownAfterClass() : void { + + 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, + ]); + $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000002, + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA, + 'Sigla' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + ]); + putenv("DATABASE_HOST=org2-database"); + $penMapUnidadesFixture->carregar([ + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA, + 'Sigla' => CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA, + 'Nome' => CONTEXTO_ORGAO_B_NOME_UNIDADE, + ]); + } + + /** + * Teste cadastro de mapeamento de unidades no org1 + * + * @return void + */ + public function test_mapeamento_unidades_org1() + { + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + + $this->paginaMapUnidades->cadastrarNovoMapeamento([ + 'numUnidade' => '110000001', + 'nomeUnidade' => CONTEXTO_ORGAO_A_NOME_UNIDADE + ]); + + $this->paginaMapUnidades->cadastrarNovoMapeamento([ + 'numUnidade' => '110000002', + 'nomeUnidade' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA + ]); + + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_A_NOME_UNIDADE)); + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA)); + + $this->sairSistema(); + } + + /** + * Teste cadastro de mapeamento de unidades no org2 + * + * @return void + */ + public function test_mapeamento_unidades_org2() + { + + $this->acessarSistema( + self::$destinatario['URL'], + self::$destinatario['SIGLA_UNIDADE'], + self::$destinatario['LOGIN'], + self::$destinatario['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + + $this->paginaMapUnidades->cadastrarNovoMapeamento([ + 'numUnidade' => '110000001', + 'nomeUnidade' => CONTEXTO_ORGAO_B_NOME_UNIDADE + ]); + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_B_NOME_UNIDADE)); + + $this->sairSistema(); + } + + /** + * Teste cadastro de mapeamento de unidades no org2 + * + * @return void + */ + public function test_altera_e_valida_mapeamento_unidades() + { + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + $this->paginaMapUnidades->selecionarEditar(); + $this->paginaMapUnidades->selecionarUnidadePenCadastro(CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA); + $this->paginaMapUnidades->salvar(); + + sleep(2); + + $mensagem = $this->paginaMapUnidades->buscarMensagemAlerta(); + $this->assertStringContainsString( + mb_convert_encoding('Mapeamento de Unidade gravado com sucesso.', 'UTF-8', 'ISO-8859-1'), + $mensagem + ); + + + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA)); + + $this->sairSistema(); + } + + public function test_excluir_mapeamento_unidades() + { + + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + + $this->paginaMapUnidades->excluirMapeamentosExistentes(); + + sleep(2); + + $this->assertFalse($this->paginaMapUnidades->existeTabela()); + + $this->sairSistema(); + + } + + +} diff --git a/tests_sei41/funcional/src/fixtures/PenMapUnidadesFixture.php b/tests_sei41/funcional/src/fixtures/PenMapUnidadesFixture.php index ea698cb2..d6b9c8ef 100644 --- a/tests_sei41/funcional/src/fixtures/PenMapUnidadesFixture.php +++ b/tests_sei41/funcional/src/fixtures/PenMapUnidadesFixture.php @@ -20,7 +20,17 @@ protected function inicializarObjInfraIBanco() public function cadastrar($dados = []) { $objPenUnidadeDTO = $this->consultar($dados); + $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); + if ($objPenUnidadeDTO) { + if ($objPenUnidadeDTO->getNumIdUnidadeRH() != $dados['Id'] || + $objPenUnidadeDTO->getStrNomeUnidadeRH() != $dados['Nome'] || + $objPenUnidadeDTO->getStrSiglaUnidadeRH() != $dados['Sigla']) { + $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); + $objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); + $objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); + $objPenUnidadeDTO = $objPenUnidadeBD->alterar($objPenUnidadeDTO); + } return $objPenUnidadeDTO; } @@ -29,7 +39,6 @@ public function cadastrar($dados = []) $this->objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); $this->objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); - $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objPenUnidadeBD->cadastrar($this->objPenUnidadeDTO); } @@ -37,12 +46,35 @@ public function consultar($dados = []) { $objPenUnidadeDTO = new \PenUnidadeDTO(); $objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); - $objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); - $objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); $objPenUnidadeDTO->retTodos(); $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objPenUnidadeBD->consultar($objPenUnidadeDTO); } + + protected function listar($dados = []) + { + $this->objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade']); + $this->objPenUnidadeDTO->retTodos(); + + $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); + return $objPenUnidadeBD->listar($this->objPenUnidadeDTO); + } + + public function excluir($dados = []) + { + if (is_numeric($dados['Id'])){ + $objPenUnidadeDTO = new \PenUnidadeDTO(); + $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); + $objPenUnidadeDTO->retTodos(); + + $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); + $objPenUnidadeDTO = $objPenUnidadeBD->consultar($objPenUnidadeDTO); + if ($objPenUnidadeDTO != null) { + return $objPenUnidadeBD->excluir($objPenUnidadeDTO); + } + } + return false; + } + } \ No newline at end of file diff --git a/tests_sei41/funcional/src/paginas/PaginaMapUnidades.php b/tests_sei41/funcional/src/paginas/PaginaMapUnidades.php index 28306007..8224f482 100644 --- a/tests_sei41/funcional/src/paginas/PaginaMapUnidades.php +++ b/tests_sei41/funcional/src/paginas/PaginaMapUnidades.php @@ -89,16 +89,166 @@ public function selecionarUnidade($textoUnidade) $this->test->assertTrue($sucesso); } - /** - * Selcionar botão salvar da página - * - * @return void - */ + /** + * Clica em botão salvar da página + * + * @return void + */ public function salvar() { $this->test->byId("btnSalvar")->click(); } + /** + * Clica em botão novo da página + * + * @return void + */ + public function btnNovo() + { + $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Novo']"); + $buttonElement->click(); + } + + /** + * Seleciona a unidade na pagina de cadastro + * + * @return void + */ + public function selecionarUnidadeCadastro($numUnidade = '110000001'){ + + $select = $this->test->byId('selUnidadeSei'); + $this->test->select($select)->selectOptionByValue($numUnidade); + sleep(2); + $selectedOption = $this->test->select($select)->selectedValue(); + $this->test->assertEquals($numUnidade, $selectedOption); + + } + /** + * Seleciona a unidade PEN na pagina de cadastro + * + * @return void + */ + public function selecionarUnidadePenCadastro($textoUnidade) + { + $this->repoUnidadeInput = $this->test->byId('txtUnidadePen'); + $this->repoUnidadeInput->clear(); + $this->repoUnidadeInput->value($textoUnidade); + $this->test->keys(Keys::ENTER); + $sucesso = $this->test->waitUntil(function($testCase) { + $bolExisteAlerta=null; + $nomeUnidade = $testCase->byId('txtUnidadePen')->value(); + + try{ + $bolExisteAlerta = $this->alertTextAndClose(); + if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); + } + }catch(Exception $e){} + $testCase->byPartialLinkText($nomeUnidade)->click(); + return true; + }, PEN_WAIT_TIMEOUT); + + $this->test->assertTrue($sucesso); + } + + /** + * Cadastrar novo mapeamento + * + * @return void + */ + public function cadastrarNovoMapeamento($dados = []){ + $this->btnNovo(); + $this->selecionarUnidadeCadastro($dados['numUnidade']); + $this->selecionarUnidadePenCadastro($dados['nomeUnidade']); + $this->salvar(); + + sleep(2); + + $mensagem = $this->buscarMensagemAlerta(); + $this->test->assertStringContainsString( + mb_convert_encoding('Mapeamento de Unidade gravado com sucesso.', 'UTF-8', 'ISO-8859-1'), + $mensagem + ); + } + + /** + * Excluir mapeamentos existentes + * + * @return void + */ + public function excluirMapeamentosExistentes() + { + try{ + $lnkInfraCheck=$this->test->byXPath('//*[@id="lnkInfraCheck"]'); + $lnkInfraCheck->click(); + $this->excluir(); + sleep(1); + $mensagem = $this->buscarMensagemAlerta(); + $this->test->assertStringContainsString( + mb_convert_encoding('Mapeamento de Unidades foi excluido com sucesso.', 'UTF-8', 'ISO-8859-1'), + $mensagem + ); + } catch (Exception $e) { + } + } + + public function listarMapeamentos() + { + $this->test->refresh(); + + $this->test->assertTrue($this->existeTabela()); + + $linhasListagem = $this->test->elements($this->test->using('xpath')->value('//table[@class="infraTable"]/tbody/tr')); + unset($linhasListagem[0]); + unset($linhasListagem[1]); + + return $linhasListagem; + } + + /** + * Valida mapeamentos existentes + * + * @return void + */ + public function validarMapeamentoExistente($mapeamento) + { + + $linhasDaTabela = $this->listarMapeamentos(); + foreach ($linhasDaTabela as $linha) { + $td = $linha->byXPath('./td[6]'); + if ($td->text() == $mapeamento) { + return true; + } + } + return false; + } + + /** + * btn Excluir + * + * @return void + */ + public function excluir() + { + $this->test->byXPath("//button[@type='button' and @value='Excluir']")->click(); + $this->test->acceptAlert(); + } + + /** + * Verificar se a tabela de hipótese legal é exibida + * + * @return bool + */ + public function existeTabela() + { + try { + $trTh = $this->test->byXPath('//*[@id="divInfraAreaTabela"]/table/tbody/tr[1]/th[2]')->text(); + return !empty($trTh) && !is_null($trTh) && count($trTh) >= 1; + } catch (Exception $ex) { + return false; + } + } + public function limparRestricoes() { $options = $this->test->byId('selRepoEstruturas') diff --git a/tests_sei41/funcional/tests/MapeamentoDeUnidadesTest.php b/tests_sei41/funcional/tests/MapeamentoDeUnidadesTest.php new file mode 100644 index 00000000..a70ac7ee --- /dev/null +++ b/tests_sei41/funcional/tests/MapeamentoDeUnidadesTest.php @@ -0,0 +1,179 @@ +remover([ + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA + ]); + $penMapUnidadesFixture->remover([ + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA + ]); + + putenv("DATABASE_HOST=org2-database"); + $penMapUnidadesFixture->remover([ + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA + ]); + $penMapUnidadesFixture->remover([ + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA + ]); + + + } + + /** + * Volta para default + */ + public static function tearDownAfterClass() : void { + + 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, + ]); + $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000002, + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA, + 'Sigla' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + ]); + putenv("DATABASE_HOST=org2-database"); + $penMapUnidadesFixture->carregar([ + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA, + 'Sigla' => CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA, + 'Nome' => CONTEXTO_ORGAO_B_NOME_UNIDADE, + ]); + } + + /** + * Teste cadastro de mapeamento de unidades no org1 + * + * @return void + */ + public function test_mapeamento_unidades_org1() + { + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + + $this->paginaMapUnidades->cadastrarNovoMapeamento([ + 'numUnidade' => '110000001', + 'nomeUnidade' => CONTEXTO_ORGAO_A_NOME_UNIDADE + ]); + + $this->paginaMapUnidades->cadastrarNovoMapeamento([ + 'numUnidade' => '110000002', + 'nomeUnidade' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA + ]); + + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_A_NOME_UNIDADE)); + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA)); + + $this->sairSistema(); + } + + /** + * Teste cadastro de mapeamento de unidades no org2 + * + * @return void + */ + public function test_mapeamento_unidades_org2() + { + + $this->acessarSistema( + self::$destinatario['URL'], + self::$destinatario['SIGLA_UNIDADE'], + self::$destinatario['LOGIN'], + self::$destinatario['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + + $this->paginaMapUnidades->cadastrarNovoMapeamento([ + 'numUnidade' => '110000001', + 'nomeUnidade' => CONTEXTO_ORGAO_B_NOME_UNIDADE + ]); + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_B_NOME_UNIDADE)); + + $this->sairSistema(); + } + + /** + * Teste cadastro de mapeamento de unidades no org2 + * + * @return void + */ + public function test_altera_e_valida_mapeamento_unidades() + { + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + $this->paginaMapUnidades->selecionarEditar(); + $this->paginaMapUnidades->selecionarUnidadePenCadastro(CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA); + $this->paginaMapUnidades->salvar(); + + sleep(2); + + $mensagem = $this->paginaMapUnidades->buscarMensagemAlerta(); + $this->assertStringContainsString( + mb_convert_encoding('Mapeamento de Unidade gravado com sucesso.', 'UTF-8', 'ISO-8859-1'), + $mensagem + ); + + + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA)); + + $this->sairSistema(); + } + + public function test_excluir_mapeamento_unidades() + { + + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + + $this->paginaMapUnidades->excluirMapeamentosExistentes(); + + sleep(2); + + $this->assertFalse($this->paginaMapUnidades->existeTabela()); + + $this->sairSistema(); + + } + + +} diff --git a/tests_super/funcional/src/fixtures/PenMapUnidadesFixture.php b/tests_super/funcional/src/fixtures/PenMapUnidadesFixture.php index ea698cb2..bb85dc7a 100644 --- a/tests_super/funcional/src/fixtures/PenMapUnidadesFixture.php +++ b/tests_super/funcional/src/fixtures/PenMapUnidadesFixture.php @@ -20,7 +20,14 @@ protected function inicializarObjInfraIBanco() public function cadastrar($dados = []) { $objPenUnidadeDTO = $this->consultar($dados); + $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); + if ($objPenUnidadeDTO) { + $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); + $objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); + $objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); + $objPenUnidadeDTO = $objPenUnidadeBD->alterar($objPenUnidadeDTO); + return $objPenUnidadeDTO; } @@ -29,7 +36,6 @@ public function cadastrar($dados = []) $this->objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); $this->objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); - $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objPenUnidadeBD->cadastrar($this->objPenUnidadeDTO); } @@ -37,12 +43,35 @@ public function consultar($dados = []) { $objPenUnidadeDTO = new \PenUnidadeDTO(); $objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade'] ?: 110000001); - $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); - $objPenUnidadeDTO->setStrNomeUnidadeRH($dados['Nome']); - $objPenUnidadeDTO->setStrSiglaUnidadeRH($dados['Sigla']); $objPenUnidadeDTO->retTodos(); $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); return $objPenUnidadeBD->consultar($objPenUnidadeDTO); } + + protected function listar($dados = []) + { + $this->objPenUnidadeDTO->setNumIdUnidade($dados['IdUnidade']); + $this->objPenUnidadeDTO->retTodos(); + + $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); + return $objPenUnidadeBD->listar($this->objPenUnidadeDTO); + } + + public function excluir($dados = []) + { + if (is_numeric($dados['Id'])){ + $objPenUnidadeDTO = new \PenUnidadeDTO(); + $objPenUnidadeDTO->setNumIdUnidadeRH($dados['Id']); + $objPenUnidadeDTO->retTodos(); + + $objPenUnidadeBD = new \PenUnidadeBD($this->inicializarObjInfraIBanco()); + $objPenUnidadeDTO = $objPenUnidadeBD->consultar($objPenUnidadeDTO); + if ($objPenUnidadeDTO != null) { + return $objPenUnidadeBD->excluir($objPenUnidadeDTO); + } + } + return false; + } + } \ No newline at end of file diff --git a/tests_super/funcional/src/paginas/PaginaMapUnidades.php b/tests_super/funcional/src/paginas/PaginaMapUnidades.php index 28306007..8224f482 100644 --- a/tests_super/funcional/src/paginas/PaginaMapUnidades.php +++ b/tests_super/funcional/src/paginas/PaginaMapUnidades.php @@ -89,16 +89,166 @@ public function selecionarUnidade($textoUnidade) $this->test->assertTrue($sucesso); } - /** - * Selcionar botão salvar da página - * - * @return void - */ + /** + * Clica em botão salvar da página + * + * @return void + */ public function salvar() { $this->test->byId("btnSalvar")->click(); } + /** + * Clica em botão novo da página + * + * @return void + */ + public function btnNovo() + { + $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Novo']"); + $buttonElement->click(); + } + + /** + * Seleciona a unidade na pagina de cadastro + * + * @return void + */ + public function selecionarUnidadeCadastro($numUnidade = '110000001'){ + + $select = $this->test->byId('selUnidadeSei'); + $this->test->select($select)->selectOptionByValue($numUnidade); + sleep(2); + $selectedOption = $this->test->select($select)->selectedValue(); + $this->test->assertEquals($numUnidade, $selectedOption); + + } + /** + * Seleciona a unidade PEN na pagina de cadastro + * + * @return void + */ + public function selecionarUnidadePenCadastro($textoUnidade) + { + $this->repoUnidadeInput = $this->test->byId('txtUnidadePen'); + $this->repoUnidadeInput->clear(); + $this->repoUnidadeInput->value($textoUnidade); + $this->test->keys(Keys::ENTER); + $sucesso = $this->test->waitUntil(function($testCase) { + $bolExisteAlerta=null; + $nomeUnidade = $testCase->byId('txtUnidadePen')->value(); + + try{ + $bolExisteAlerta = $this->alertTextAndClose(); + if($bolExisteAlerta!=null) { $this->test->keys(Keys::ENTER); + } + }catch(Exception $e){} + $testCase->byPartialLinkText($nomeUnidade)->click(); + return true; + }, PEN_WAIT_TIMEOUT); + + $this->test->assertTrue($sucesso); + } + + /** + * Cadastrar novo mapeamento + * + * @return void + */ + public function cadastrarNovoMapeamento($dados = []){ + $this->btnNovo(); + $this->selecionarUnidadeCadastro($dados['numUnidade']); + $this->selecionarUnidadePenCadastro($dados['nomeUnidade']); + $this->salvar(); + + sleep(2); + + $mensagem = $this->buscarMensagemAlerta(); + $this->test->assertStringContainsString( + mb_convert_encoding('Mapeamento de Unidade gravado com sucesso.', 'UTF-8', 'ISO-8859-1'), + $mensagem + ); + } + + /** + * Excluir mapeamentos existentes + * + * @return void + */ + public function excluirMapeamentosExistentes() + { + try{ + $lnkInfraCheck=$this->test->byXPath('//*[@id="lnkInfraCheck"]'); + $lnkInfraCheck->click(); + $this->excluir(); + sleep(1); + $mensagem = $this->buscarMensagemAlerta(); + $this->test->assertStringContainsString( + mb_convert_encoding('Mapeamento de Unidades foi excluido com sucesso.', 'UTF-8', 'ISO-8859-1'), + $mensagem + ); + } catch (Exception $e) { + } + } + + public function listarMapeamentos() + { + $this->test->refresh(); + + $this->test->assertTrue($this->existeTabela()); + + $linhasListagem = $this->test->elements($this->test->using('xpath')->value('//table[@class="infraTable"]/tbody/tr')); + unset($linhasListagem[0]); + unset($linhasListagem[1]); + + return $linhasListagem; + } + + /** + * Valida mapeamentos existentes + * + * @return void + */ + public function validarMapeamentoExistente($mapeamento) + { + + $linhasDaTabela = $this->listarMapeamentos(); + foreach ($linhasDaTabela as $linha) { + $td = $linha->byXPath('./td[6]'); + if ($td->text() == $mapeamento) { + return true; + } + } + return false; + } + + /** + * btn Excluir + * + * @return void + */ + public function excluir() + { + $this->test->byXPath("//button[@type='button' and @value='Excluir']")->click(); + $this->test->acceptAlert(); + } + + /** + * Verificar se a tabela de hipótese legal é exibida + * + * @return bool + */ + public function existeTabela() + { + try { + $trTh = $this->test->byXPath('//*[@id="divInfraAreaTabela"]/table/tbody/tr[1]/th[2]')->text(); + return !empty($trTh) && !is_null($trTh) && count($trTh) >= 1; + } catch (Exception $ex) { + return false; + } + } + public function limparRestricoes() { $options = $this->test->byId('selRepoEstruturas') diff --git a/tests_super/funcional/tests/MapeamentoDeUnidadesTest.php b/tests_super/funcional/tests/MapeamentoDeUnidadesTest.php new file mode 100644 index 00000000..a70ac7ee --- /dev/null +++ b/tests_super/funcional/tests/MapeamentoDeUnidadesTest.php @@ -0,0 +1,179 @@ +remover([ + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA + ]); + $penMapUnidadesFixture->remover([ + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA + ]); + + putenv("DATABASE_HOST=org2-database"); + $penMapUnidadesFixture->remover([ + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA + ]); + $penMapUnidadesFixture->remover([ + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA_SECUNDARIA + ]); + + + } + + /** + * Volta para default + */ + public static function tearDownAfterClass() : void { + + 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, + ]); + $penMapUnidadesFixture->carregar([ + 'IdUnidade' => 110000002, + 'Id' => CONTEXTO_ORGAO_A_ID_ESTRUTURA_SECUNDARIA, + 'Sigla' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + 'Nome' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA, + ]); + putenv("DATABASE_HOST=org2-database"); + $penMapUnidadesFixture->carregar([ + 'Id' => CONTEXTO_ORGAO_B_ID_ESTRUTURA, + 'Sigla' => CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA, + 'Nome' => CONTEXTO_ORGAO_B_NOME_UNIDADE, + ]); + } + + /** + * Teste cadastro de mapeamento de unidades no org1 + * + * @return void + */ + public function test_mapeamento_unidades_org1() + { + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + + $this->paginaMapUnidades->cadastrarNovoMapeamento([ + 'numUnidade' => '110000001', + 'nomeUnidade' => CONTEXTO_ORGAO_A_NOME_UNIDADE + ]); + + $this->paginaMapUnidades->cadastrarNovoMapeamento([ + 'numUnidade' => '110000002', + 'nomeUnidade' => CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA + ]); + + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_A_NOME_UNIDADE)); + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_A_NOME_UNIDADE_SECUNDARIA)); + + $this->sairSistema(); + } + + /** + * Teste cadastro de mapeamento de unidades no org2 + * + * @return void + */ + public function test_mapeamento_unidades_org2() + { + + $this->acessarSistema( + self::$destinatario['URL'], + self::$destinatario['SIGLA_UNIDADE'], + self::$destinatario['LOGIN'], + self::$destinatario['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + + $this->paginaMapUnidades->cadastrarNovoMapeamento([ + 'numUnidade' => '110000001', + 'nomeUnidade' => CONTEXTO_ORGAO_B_NOME_UNIDADE + ]); + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_B_NOME_UNIDADE)); + + $this->sairSistema(); + } + + /** + * Teste cadastro de mapeamento de unidades no org2 + * + * @return void + */ + public function test_altera_e_valida_mapeamento_unidades() + { + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + $this->paginaMapUnidades->selecionarEditar(); + $this->paginaMapUnidades->selecionarUnidadePenCadastro(CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA); + $this->paginaMapUnidades->salvar(); + + sleep(2); + + $mensagem = $this->paginaMapUnidades->buscarMensagemAlerta(); + $this->assertStringContainsString( + mb_convert_encoding('Mapeamento de Unidade gravado com sucesso.', 'UTF-8', 'ISO-8859-1'), + $mensagem + ); + + + $this->assertTrue($this->paginaMapUnidades->validarMapeamentoExistente(CONTEXTO_ORGAO_B_SIGLA_ESTRUTURA)); + + $this->sairSistema(); + } + + public function test_excluir_mapeamento_unidades() + { + + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaMapUnidades->navegarPenMapeamentoUnidades(); + + $this->paginaMapUnidades->excluirMapeamentosExistentes(); + + sleep(2); + + $this->assertFalse($this->paginaMapUnidades->existeTabela()); + + $this->sairSistema(); + + } + + +}