From af91e42a1dfd9249142a106c4556c1412780d9a4 Mon Sep 17 00:00:00 2001 From: Marcus Dias Date: Wed, 27 Mar 2024 09:51:46 -0300 Subject: [PATCH] test: refatoracao do teste funcional TramiteProcessoComDevolucaoAnexoOutroTest --- .../funcional/tests/CenarioBaseTestCase.php | 177 +++++++++++++++++ ...teProcessoComDevolucaoAnexadoOutroTest.php | 44 +++-- .../funcional/tests/CenarioBaseTestCase.php | 178 ++++++++++++++++++ ...teProcessoComDevolucaoAnexadoOutroTest.php | 44 +++-- 4 files changed, 419 insertions(+), 24 deletions(-) diff --git a/tests_sei4/funcional/tests/CenarioBaseTestCase.php b/tests_sei4/funcional/tests/CenarioBaseTestCase.php index 78145de31..731b94880 100755 --- a/tests_sei4/funcional/tests/CenarioBaseTestCase.php +++ b/tests_sei4/funcional/tests/CenarioBaseTestCase.php @@ -2,6 +2,7 @@ use \utilphp\util; use PHPUnit\Extensions\Selenium2TestCase; +use Tests\Funcional\Sei\Fixtures\{ProtocoloFixture,ProcedimentoFixture,AtividadeFixture,ContatoFixture,ParticipanteFixture,RelProtocoloAssuntoFixture,AtributoAndamentoFixture,DocumentoFixture,AssinaturaFixture,AnexoFixture,AnexoProcessoFixture}; use function PHPSTORM_META\map; @@ -634,6 +635,182 @@ public function gerarDadosDocumentoExternoGrandeTeste($contextoProducao, $nomesA "ORIGEM" => $contextoProducao['URL'], ); } + + protected function cadastrarProcessoFixture(&$dadosProcesso) + { + $parametros = [ + 'Descricao' => $dadosProcesso['DESCRICAO'], + 'Interessados' => $dadosProcesso['INTERESSADOS'], + ]; + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->carregar($parametros); + $objProcedimentoFixture = new ProcedimentoFixture(); + + $objProcedimentoDTO = $objProcedimentoFixture->carregar([ + 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo() + ]); + + $objAtividadeFixture = new AtividadeFixture(); + $objAtividadeDTO = $objAtividadeFixture->carregar([ + 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), + 'Conclusao' => \InfraData::getStrDataHoraAtual(), + 'IdTarefa' => \TarefaRN::$TI_GERACAO_PROCEDIMENTO, + 'IdUsuarioConclusao' => 100000001 + ]); + + $objContatoFixture = new ContatoFixture(); + $objContatoDTO = $objContatoFixture->carregar([ + 'Nome' => $parametros['Interessados'] + ]); + + $objParticipanteFixture = new ParticipanteFixture(); + $objParticipanteDTO = $objParticipanteFixture->carregar([ + 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), + 'IdContato' => $objContatoDTO->getNumIdContato() + ]); + + $objProtocoloAssuntoFixture = new RelProtocoloAssuntoFixture(); + $objProtocoloAssuntoFixture->carregar([ + 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo() + ]); + + $objAtributoAndamentoFixture = new AtributoAndamentoFixture(); + $objAtributoAndamentoFixture->carregar([ + 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade() + ]); + + $dadosProcesso['PROTOCOLO'] = $protocoloGerado; + + return $objProtocoloDTO; + } + + protected function cadastrarDocumentoInternoFixture($dadosDocumentoInterno, $idProtocolo) + { + $objDocumentoFixture = new DocumentoFixture(); + $objDocumentoDTO = $objDocumentoFixture->carregar([ + 'IdProtocolo' => $idProtocolo, + 'IdProcedimento' => $idProtocolo, + 'Descricao' => $dadosDocumentoInterno['DESCRICAO'], + ]); + + //Adicionar assinatura ao documento + $objAssinaturaFixture = new AssinaturaFixture(); + $objAssinaturaFixture->carregar([ + 'IdProtocolo' => $idProtocolo, + 'IdDocumento' => $objDocumentoDTO->getDblIdDocumento(), + ]); + + } + + protected function cadastrarDocumentoExternoFixture($dadosDocumentoExterno, $idProtocolo) + { + $objDocumentoFixture = new DocumentoFixture(); + $objDocumentoDTO = $objDocumentoFixture->carregar([ + 'IdProtocolo' => $idProtocolo, + 'IdProcedimento' => $idProtocolo, + 'Descricao' => $dadosDocumentoExterno['DESCRICAO'], + 'StaProtocolo' => \ProtocoloRN::$TP_DOCUMENTO_RECEBIDO, + 'StaDocumento' => \DocumentoRN::$TD_EXTERNO, + 'IdConjuntoEstilos' => NULL, + ]); + + //Adicionar anexo ao documento + $objAnexoFixture = new AnexoFixture(); + $objAnexoFixture->carregar([ + 'IdProtocolo' => $objDocumentoDTO->getDblIdDocumento(), + 'Nome' => basename($dadosDocumentoExterno['ARQUIVO']), + ]); + + } + + protected function anexarProcessoFixture($protocoloPrincipalId, $protocoloProcessoAnexadoId) + { + // Realizar a anexação de processos + $objAnexoProcessoFixture = new AnexoProcessoFixture(); + $objAnexoProcessoFixture->carregar([ + 'IdProtocolo' => $protocoloPrincipalId, + 'IdDocumento' => $protocoloProcessoAnexadoId, + ]); + } + + protected function realizarTramiteExternoFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario, $validarTramite) + { + $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; + + $buscar = false; + // 1 - Cadastrar novo processo de teste + if (isset($processoTeste['PROTOCOLO'])) { + $strProtocoloTeste = $processoTeste['PROTOCOLO']; + + $parametros = [ + 'ProtocoloFormatado' => $strProtocoloTeste, + ]; + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar($parametros)[0]; + + } else { + $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); + $strProtocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); + $processoTeste['PROTOCOLO'] = $strProtocoloTeste; + } + + // 2 - Incluir Documentos no Processo + $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; + foreach ($documentosTeste as $doc) { + if ($doc['TIPO'] == 'G') { + // cadastra e assina documento interno + $this->cadastrarDocumentoInternoFixture($doc,$objProtocoloDTO->getDblIdProtocolo()); + } else if ($doc['TIPO'] == 'R') { + $this->cadastrarDocumentoExternoFixture($doc, $objProtocoloDTO->getDblIdProtocolo()); + } + } + + // 3 - Acessar sistema do REMETENTE do processo + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + + // 4 - Abrir processo + $this->abrirProcesso($strProtocoloTeste); + + // 5 - Trâmitar Externamento processo para órgão/unidade destinatária + $paginaTramitar = $this->paginaTramitar; + $this->tramitarProcessoExternamente($strProtocoloTeste, $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); + + if ($validarTramite) { + // 6 - Verificar se situação atual do processo está como bloqueado + $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { + sleep(5); + $this->atualizarTramitesPEN(); + $testCase->refresh(); + $paginaProcesso = new PaginaProcesso($testCase); + $testCase->assertStringNotContainsString(utf8_encode("Processo em trâmite externo para "), $paginaProcesso->informacao()); + $testCase->assertFalse($paginaProcesso->processoAberto()); + $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); + return true; + }, PEN_WAIT_TIMEOUT); + + // 7 - Validar se recibo de trâmite foi armazenado para o processo (envio e conclusão) + $unidade = mb_convert_encoding($destinatario['NOME_UNIDADE'], "ISO-8859-1"); + $mensagemRecibo = sprintf("Trâmite externo do Processo %s para %s", $strProtocoloTeste, $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite(self::$nomeUnidadeDestinatario, true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $deveExistir = $remetente['URL'] != $destinatario['URL']; + $this->validarProcessosTramitados($strProtocoloTeste, $deveExistir); + } + } + + public function realizarTramiteExternoComValidacaoNoRemetenteFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario) + { + $this->realizarTramiteExternoFixture($processoTeste, $documentosTeste, $remetente, $destinatario, true); + } + + public function realizarTramiteExternoSemvalidacaoNoRemetenteFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario) + { + $this->realizarTramiteExternoFixture($processoTeste, $documentosTeste, $remetente, $destinatario, false); + } protected function realizarTramiteExterno(&$processoTeste, $documentosTeste, $remetente, $destinatario, $validarTramite) { diff --git a/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php b/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php index 4774100f4..ba992b755 100755 --- a/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php +++ b/tests_sei4/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php @@ -1,5 +1,7 @@ gerarDadosDocumentoExternoTeste(self::$remetente); $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); + + $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; } @@ -84,15 +87,18 @@ public function test_devolucao_processo_anexado_em_outro_para_origem() { self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + // Selecionar banco do org2 para fazer inserção dos documentos + putenv("DATABASE_HOST=org2-database"); self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Incluir novos documentos relacionados no processo anexado - $this->abrirProcesso(self::$protocoloTesteAnexado); - $this->cadastrarDocumentoExterno(self::$documentoTeste3); + // Busca ID que Protocolo principal recebeu no org2 + $parametros = [ + 'ProtocoloFormatado' => self::$protocoloTesteAnexado, + ]; + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloAnexadoDTO = $objProtocoloFixture->buscar($parametros)[0]; + $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloAnexadoDTO->getDblIdProtocolo()); // Gerar dados de testes para representar o processo principal self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); @@ -100,14 +106,28 @@ public function test_devolucao_processo_anexado_em_outro_para_origem() self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); // Cadastra processo principal, seus documentos e anexa processo recebido anteriormente - self::$protocoloTestePrincipal = $this->cadastrarProcesso(self::$processoTestePrincipal); - $this->cadastrarDocumentoInterno(self::$documentoTeste4); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); + $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); + // $objProtocoloPrincipalDTO = $DTOs['Protocolo']; + // $objProcedimentoPrincipalDTO = $DTOs['Procedimento']; + self::$protocoloTestePrincipal = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); + + // Cadastra e assina + $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4,$objProtocoloPrincipalDTO->getDblIdProtocolo()); - $this->anexarProcesso(self::$protocoloTesteAnexado); + // $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - $this->cadastrarDocumentoExterno(self::$documentoTeste5); + $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); + // $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5); + $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloPrincipalDTO->getDblIdProtocolo()); + + putenv("DATABASE_HOST=org1-database"); + + // Acessar sistema do this->REMETENTE do processo + $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); + + // Abre processo principal para tramitar + $this->abrirProcesso(self::$protocoloTestePrincipal); // Trâmitar Externamento processo para órgão/unidade destinatária $this->tramitarProcessoExternamente( diff --git a/tests_super/funcional/tests/CenarioBaseTestCase.php b/tests_super/funcional/tests/CenarioBaseTestCase.php index df5709f26..82f43cc4e 100755 --- a/tests_super/funcional/tests/CenarioBaseTestCase.php +++ b/tests_super/funcional/tests/CenarioBaseTestCase.php @@ -2,6 +2,7 @@ use \utilphp\util; use PHPUnit\Extensions\Selenium2TestCase; +use Tests\Funcional\Sei\Fixtures\{ProtocoloFixture,ProcedimentoFixture,AtividadeFixture,ContatoFixture,ParticipanteFixture,RelProtocoloAssuntoFixture,AtributoAndamentoFixture,DocumentoFixture,AssinaturaFixture,AnexoFixture,AnexoProcessoFixture}; use function PHPSTORM_META\map; @@ -684,6 +685,183 @@ public function gerarDadosDocumentoExternoGrandeTeste($contextoProducao, $nomesA ); } + protected function cadastrarProcessoFixture(&$dadosProcesso) + { + $parametros = [ + 'Descricao' => $dadosProcesso['DESCRICAO'], + 'Interessados' => $dadosProcesso['INTERESSADOS'], + ]; + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->carregar($parametros); + $objProcedimentoFixture = new ProcedimentoFixture(); + + $objProcedimentoDTO = $objProcedimentoFixture->carregar([ + 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo() + ]); + + $objAtividadeFixture = new AtividadeFixture(); + $objAtividadeDTO = $objAtividadeFixture->carregar([ + 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), + 'Conclusao' => \InfraData::getStrDataHoraAtual(), + 'IdTarefa' => \TarefaRN::$TI_GERACAO_PROCEDIMENTO, + 'IdUsuarioConclusao' => 100000001 + ]); + + $objContatoFixture = new ContatoFixture(); + $objContatoDTO = $objContatoFixture->carregar([ + 'Nome' => $parametros['Interessados'] + ]); + + $objParticipanteFixture = new ParticipanteFixture(); + $objParticipanteDTO = $objParticipanteFixture->carregar([ + 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo(), + 'IdContato' => $objContatoDTO->getNumIdContato() + ]); + + $objProtocoloAssuntoFixture = new RelProtocoloAssuntoFixture(); + $objProtocoloAssuntoFixture->carregar([ + 'IdProtocolo' => $objProtocoloDTO->getDblIdProtocolo() + ]); + + $objAtributoAndamentoFixture = new AtributoAndamentoFixture(); + $objAtributoAndamentoFixture->carregar([ + 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade() + ]); + + $dadosProcesso['PROTOCOLO'] = $protocoloGerado; + + return $objProtocoloDTO; + } + + protected function cadastrarDocumentoInternoFixture($dadosDocumentoInterno, $idProtocolo) + { + $objDocumentoFixture = new DocumentoFixture(); + $objDocumentoDTO = $objDocumentoFixture->carregar([ + 'IdProtocolo' => $idProtocolo, + 'IdProcedimento' => $idProtocolo, + 'Descricao' => $dadosDocumentoInterno['DESCRICAO'], + ]); + + //Adicionar assinatura ao documento + $objAssinaturaFixture = new AssinaturaFixture(); + $objAssinaturaFixture->carregar([ + 'IdProtocolo' => $idProtocolo, + 'IdDocumento' => $objDocumentoDTO->getDblIdDocumento(), + ]); + + } + + protected function cadastrarDocumentoExternoFixture($dadosDocumentoExterno, $idProtocolo) + { + $objDocumentoFixture = new DocumentoFixture(); + $objDocumentoDTO = $objDocumentoFixture->carregar([ + 'IdProtocolo' => $idProtocolo, + 'IdProcedimento' => $idProtocolo, + 'Descricao' => $dadosDocumentoExterno['DESCRICAO'], + 'StaProtocolo' => \ProtocoloRN::$TP_DOCUMENTO_RECEBIDO, + 'StaDocumento' => \DocumentoRN::$TD_EXTERNO, + 'IdConjuntoEstilos' => NULL, + ]); + + //Adicionar anexo ao documento + $objAnexoFixture = new AnexoFixture(); + $objAnexoFixture->carregar([ + 'IdProtocolo' => $objDocumentoDTO->getDblIdDocumento(), + 'Nome' => basename($dadosDocumentoExterno['ARQUIVO']), + ]); + + } + + protected function anexarProcessoFixture($protocoloPrincipalId, $protocoloProcessoAnexadoId) + { + // Realizar a anexação de processos + $objAnexoProcessoFixture = new AnexoProcessoFixture(); + $objAnexoProcessoFixture->carregar([ + 'IdProtocolo' => $protocoloPrincipalId, + 'IdDocumento' => $protocoloProcessoAnexadoId, + ]); + } + + + protected function realizarTramiteExternoFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario, $validarTramite) + { + $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; + + $buscar = false; + // 1 - Cadastrar novo processo de teste + if (isset($processoTeste['PROTOCOLO'])) { + $strProtocoloTeste = $processoTeste['PROTOCOLO']; + + $parametros = [ + 'ProtocoloFormatado' => $strProtocoloTeste, + ]; + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar($parametros)[0]; + + } else { + $objProtocoloDTO = $this->cadastrarProcessoFixture($processoTeste); + $strProtocoloTeste = $objProtocoloDTO->getStrProtocoloFormatado(); + $processoTeste['PROTOCOLO'] = $strProtocoloTeste; + } + + // 2 - Incluir Documentos no Processo + $documentosTeste = array_key_exists('TIPO', $documentosTeste) ? array($documentosTeste) : $documentosTeste; + foreach ($documentosTeste as $doc) { + if ($doc['TIPO'] == 'G') { + // cadastra e assina documento interno + $this->cadastrarDocumentoInternoFixture($doc,$objProtocoloDTO->getDblIdProtocolo()); + } else if ($doc['TIPO'] == 'R') { + $this->cadastrarDocumentoExternoFixture($doc, $objProtocoloDTO->getDblIdProtocolo()); + } + } + + // 3 - Acessar sistema do REMETENTE do processo + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + + // 4 - Abrir processo + $this->abrirProcesso($strProtocoloTeste); + + // 5 - Trâmitar Externamento processo para órgão/unidade destinatária + $paginaTramitar = $this->paginaTramitar; + $this->tramitarProcessoExternamente($strProtocoloTeste, $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false); + + if ($validarTramite) { + // 6 - Verificar se situação atual do processo está como bloqueado + $this->waitUntil(function ($testCase) use (&$orgaosDiferentes) { + sleep(5); + $this->atualizarTramitesPEN(); + $testCase->refresh(); + $paginaProcesso = new PaginaProcesso($testCase); + $testCase->assertStringNotContainsString(utf8_encode("Processo em trâmite externo para "), $paginaProcesso->informacao()); + $testCase->assertFalse($paginaProcesso->processoAberto()); + $testCase->assertEquals($orgaosDiferentes, $paginaProcesso->processoBloqueado()); + return true; + }, PEN_WAIT_TIMEOUT); + + // 7 - Validar se recibo de trâmite foi armazenado para o processo (envio e conclusão) + $unidade = mb_convert_encoding($destinatario['NOME_UNIDADE'], "ISO-8859-1"); + $mensagemRecibo = sprintf("Trâmite externo do Processo %s para %s", $strProtocoloTeste, $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite(self::$nomeUnidadeDestinatario, true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $deveExistir = $remetente['URL'] != $destinatario['URL']; + $this->validarProcessosTramitados($strProtocoloTeste, $deveExistir); + } + } + + public function realizarTramiteExternoComValidacaoNoRemetenteFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario) + { + $this->realizarTramiteExternoFixture($processoTeste, $documentosTeste, $remetente, $destinatario, true); + } + + public function realizarTramiteExternoSemvalidacaoNoRemetenteFixture(&$processoTeste, $documentosTeste, $remetente, $destinatario) + { + $this->realizarTramiteExternoFixture($processoTeste, $documentosTeste, $remetente, $destinatario, false); + } + protected function realizarTramiteExterno(&$processoTeste, $documentosTeste, $remetente, $destinatario, $validarTramite) { $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; diff --git a/tests_super/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php b/tests_super/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php index 4774100f4..ba992b755 100755 --- a/tests_super/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php +++ b/tests_super/funcional/tests/TramiteProcessoComDevolucaoAnexadoOutroTest.php @@ -1,5 +1,7 @@ gerarDadosDocumentoExternoTeste(self::$remetente); $documentos = array(self::$documentoTeste1, self::$documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); + + $this->realizarTramiteExternoComValidacaoNoRemetenteFixture(self::$processoTesteAnexado, $documentos, self::$remetente, self::$destinatario); self::$protocoloTesteAnexado = self::$processoTesteAnexado["PROTOCOLO"]; } @@ -84,15 +87,18 @@ public function test_devolucao_processo_anexado_em_outro_para_origem() { self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B); self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + // Selecionar banco do org2 para fazer inserção dos documentos + putenv("DATABASE_HOST=org2-database"); self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); - // Acessar sistema do this->REMETENTE do processo - $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); - - // Incluir novos documentos relacionados no processo anexado - $this->abrirProcesso(self::$protocoloTesteAnexado); - $this->cadastrarDocumentoExterno(self::$documentoTeste3); + // Busca ID que Protocolo principal recebeu no org2 + $parametros = [ + 'ProtocoloFormatado' => self::$protocoloTesteAnexado, + ]; + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloAnexadoDTO = $objProtocoloFixture->buscar($parametros)[0]; + $this->cadastrarDocumentoExternoFixture(self::$documentoTeste3, $objProtocoloAnexadoDTO->getDblIdProtocolo()); // Gerar dados de testes para representar o processo principal self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente); @@ -100,14 +106,28 @@ public function test_devolucao_processo_anexado_em_outro_para_origem() self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente); // Cadastra processo principal, seus documentos e anexa processo recebido anteriormente - self::$protocoloTestePrincipal = $this->cadastrarProcesso(self::$processoTestePrincipal); - $this->cadastrarDocumentoInterno(self::$documentoTeste4); - $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); + $objProtocoloPrincipalDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal); + // $objProtocoloPrincipalDTO = $DTOs['Protocolo']; + // $objProcedimentoPrincipalDTO = $DTOs['Procedimento']; + self::$protocoloTestePrincipal = $objProtocoloPrincipalDTO->getStrProtocoloFormatado(); + + // Cadastra e assina + $this->cadastrarDocumentoInternoFixture(self::$documentoTeste4,$objProtocoloPrincipalDTO->getDblIdProtocolo()); - $this->anexarProcesso(self::$protocoloTesteAnexado); + // $this->assinarDocumento(self::$remetente['ORGAO'], self::$remetente['CARGO_ASSINATURA'], self::$remetente['SENHA']); - $this->cadastrarDocumentoExterno(self::$documentoTeste5); + $this->anexarProcessoFixture($objProtocoloPrincipalDTO->getDblIdProtocolo(), $objProtocoloAnexadoDTO->getDblIdProtocolo()); + // $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5); + $this->cadastrarDocumentoExternoFixture(self::$documentoTeste5, $objProtocoloPrincipalDTO->getDblIdProtocolo()); + + putenv("DATABASE_HOST=org1-database"); + + // Acessar sistema do this->REMETENTE do processo + $this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']); + + // Abre processo principal para tramitar + $this->abrirProcesso(self::$protocoloTestePrincipal); // Trâmitar Externamento processo para órgão/unidade destinatária $this->tramitarProcessoExternamente(