diff --git a/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php b/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php index d506307f3..50b563bff 100755 --- a/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php +++ b/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php @@ -1,12 +1,13 @@ gerarDadosDocumentoInternoTeste($remetente); $documentoTeste2 = $this->gerarDadosDocumentoExternoTeste($remetente); - $novosDocumentos = array($documentoTeste1, $documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar([ + 'ProtocoloFormatado' => self::$processoTeste['PROTOCOLO'], + ])[0]; + + $this->cadastrarDocumentoInternoFixture($documentoTeste1, $objProtocoloDTO->getDblIdProtocolo()); + $this->cadastrarDocumentoExternoFixture($documentoTeste2, $objProtocoloDTO->getDblIdProtocolo()); + + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + $this->abrirProcesso(self::$processoTeste['PROTOCOLO']); + + $this->tramitarProcessoExternamente( + self::$processoTeste['PROTOCOLO'], $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], + $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + + $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", self::$processoTeste['PROTOCOLO'], $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite($destinatario['NOME_UNIDADE'], true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $this->validarProcessosTramitados(self::$processoTeste['PROTOCOLO'], $orgaosDiferentes); + $totalDdocumentos = array(self::$documentoZip, $documentoTeste1, $documentoTeste2); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $totalDdocumentos, $destinatario); } diff --git a/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php b/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php index bbd299c90..8d49462cf 100755 --- a/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php +++ b/tests_sei4/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php @@ -1,8 +1,9 @@ gerarDadosDocumentoInternoTeste($remetente); - $novosDocumentos = array($documentoTesteInterno); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + putenv("DATABASE_HOST=org2-database"); + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar([ + 'ProtocoloFormatado' => self::$processoTeste['PROTOCOLO'], + ])[0]; + + $this->cadastrarDocumentoInternoFixture($documentoTesteInterno, $objProtocoloDTO->getDblIdProtocolo()); + + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + $this->abrirProcesso(self::$processoTeste['PROTOCOLO']); + + $this->tramitarProcessoExternamente( + self::$processoTeste['PROTOCOLO'], $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], + $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + + $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", self::$processoTeste['PROTOCOLO'], $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite($destinatario['NOME_UNIDADE'], true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $this->validarProcessosTramitados(self::$processoTeste['PROTOCOLO'], $orgaosDiferentes); + self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteInterno)); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); } @@ -111,14 +149,48 @@ public function test_devolucao_processo_para_destino_2() // Configuração do dados para teste do cenário $remetente = self::$contextoOrgaoA; $destinatario = array_slice(self::$contextoOrgaoB, 0); - $destinatario['SIGLA_UNIDADE'] = $destinatario['SIGLA_UNIDADE_SECUNDARIA']; - $destinatario['NOME_UNIDADE'] = $destinatario['NOME_UNIDADE_SECUNDARIA']; - $destinatario['SIGLA_UNIDADE_HIERARQUIA'] = $destinatario['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; + $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; $documentoTesteExterno = $this->gerarDadosDocumentoExternoTeste($remetente, self::CONTEUDO_DOCUMENTO_A); - $novosDocumentos = array($documentoTesteExterno); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + putenv("DATABASE_HOST=org1-database"); + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar([ + 'ProtocoloFormatado' => self::$processoTeste['PROTOCOLO'], + ])[0]; + + $this->cadastrarDocumentoExternoFixture($documentoTesteExterno, $objProtocoloDTO->getDblIdProtocolo()); + + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + $this->abrirProcesso(self::$processoTeste['PROTOCOLO']); + + $this->tramitarProcessoExternamente( + self::$processoTeste['PROTOCOLO'], $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], + $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + + $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", self::$processoTeste['PROTOCOLO'], $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite($destinatario['NOME_UNIDADE'], true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $this->validarProcessosTramitados(self::$processoTeste['PROTOCOLO'], $orgaosDiferentes); + self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteExterno)); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); } diff --git a/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php b/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php index d506307f3..50b563bff 100755 --- a/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php +++ b/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php @@ -1,12 +1,13 @@ gerarDadosDocumentoInternoTeste($remetente); $documentoTeste2 = $this->gerarDadosDocumentoExternoTeste($remetente); - $novosDocumentos = array($documentoTeste1, $documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar([ + 'ProtocoloFormatado' => self::$processoTeste['PROTOCOLO'], + ])[0]; + + $this->cadastrarDocumentoInternoFixture($documentoTeste1, $objProtocoloDTO->getDblIdProtocolo()); + $this->cadastrarDocumentoExternoFixture($documentoTeste2, $objProtocoloDTO->getDblIdProtocolo()); + + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + $this->abrirProcesso(self::$processoTeste['PROTOCOLO']); + + $this->tramitarProcessoExternamente( + self::$processoTeste['PROTOCOLO'], $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], + $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + + $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", self::$processoTeste['PROTOCOLO'], $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite($destinatario['NOME_UNIDADE'], true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $this->validarProcessosTramitados(self::$processoTeste['PROTOCOLO'], $orgaosDiferentes); + $totalDdocumentos = array(self::$documentoZip, $documentoTeste1, $documentoTeste2); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $totalDdocumentos, $destinatario); } diff --git a/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php b/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php index bbd299c90..8d49462cf 100755 --- a/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php +++ b/tests_sei41/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php @@ -1,8 +1,9 @@ gerarDadosDocumentoInternoTeste($remetente); - $novosDocumentos = array($documentoTesteInterno); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + putenv("DATABASE_HOST=org2-database"); + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar([ + 'ProtocoloFormatado' => self::$processoTeste['PROTOCOLO'], + ])[0]; + + $this->cadastrarDocumentoInternoFixture($documentoTesteInterno, $objProtocoloDTO->getDblIdProtocolo()); + + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + $this->abrirProcesso(self::$processoTeste['PROTOCOLO']); + + $this->tramitarProcessoExternamente( + self::$processoTeste['PROTOCOLO'], $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], + $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + + $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", self::$processoTeste['PROTOCOLO'], $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite($destinatario['NOME_UNIDADE'], true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $this->validarProcessosTramitados(self::$processoTeste['PROTOCOLO'], $orgaosDiferentes); + self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteInterno)); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); } @@ -111,14 +149,48 @@ public function test_devolucao_processo_para_destino_2() // Configuração do dados para teste do cenário $remetente = self::$contextoOrgaoA; $destinatario = array_slice(self::$contextoOrgaoB, 0); - $destinatario['SIGLA_UNIDADE'] = $destinatario['SIGLA_UNIDADE_SECUNDARIA']; - $destinatario['NOME_UNIDADE'] = $destinatario['NOME_UNIDADE_SECUNDARIA']; - $destinatario['SIGLA_UNIDADE_HIERARQUIA'] = $destinatario['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; + $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; $documentoTesteExterno = $this->gerarDadosDocumentoExternoTeste($remetente, self::CONTEUDO_DOCUMENTO_A); - $novosDocumentos = array($documentoTesteExterno); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + putenv("DATABASE_HOST=org1-database"); + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar([ + 'ProtocoloFormatado' => self::$processoTeste['PROTOCOLO'], + ])[0]; + + $this->cadastrarDocumentoExternoFixture($documentoTesteExterno, $objProtocoloDTO->getDblIdProtocolo()); + + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + $this->abrirProcesso(self::$processoTeste['PROTOCOLO']); + + $this->tramitarProcessoExternamente( + self::$processoTeste['PROTOCOLO'], $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], + $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + + $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", self::$processoTeste['PROTOCOLO'], $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite($destinatario['NOME_UNIDADE'], true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $this->validarProcessosTramitados(self::$processoTeste['PROTOCOLO'], $orgaosDiferentes); + self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteExterno)); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); } diff --git a/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php b/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php index a2089734a..ac20cb311 100755 --- a/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php +++ b/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitais.php @@ -1,12 +1,13 @@ gerarDadosDocumentoInternoTeste($remetente); $documentoTeste2 = $this->gerarDadosDocumentoExternoTeste($remetente); - $novosDocumentos = array($documentoTeste1, $documentoTeste2); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar([ + 'ProtocoloFormatado' => self::$processoTeste['PROTOCOLO'], + ])[0]; + + $this->cadastrarDocumentoInternoFixture($documentoTeste1, $objProtocoloDTO->getDblIdProtocolo()); + $this->cadastrarDocumentoExternoFixture($documentoTeste2, $objProtocoloDTO->getDblIdProtocolo()); + + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + $this->abrirProcesso(self::$processoTeste['PROTOCOLO']); + + $this->tramitarProcessoExternamente( + self::$processoTeste['PROTOCOLO'], $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], + $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + + $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", self::$processoTeste['PROTOCOLO'], $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite($destinatario['NOME_UNIDADE'], true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $this->validarProcessosTramitados(self::$processoTeste['PROTOCOLO'], $orgaosDiferentes); + $totalDdocumentos = array(self::$documentoZip, $documentoTeste1, $documentoTeste2); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $totalDdocumentos, $destinatario); } diff --git a/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php b/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php index bbd299c90..8d49462cf 100755 --- a/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php +++ b/tests_super/funcional/tests/TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes.php @@ -1,8 +1,9 @@ gerarDadosDocumentoInternoTeste($remetente); - $novosDocumentos = array($documentoTesteInterno); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + putenv("DATABASE_HOST=org2-database"); + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar([ + 'ProtocoloFormatado' => self::$processoTeste['PROTOCOLO'], + ])[0]; + + $this->cadastrarDocumentoInternoFixture($documentoTesteInterno, $objProtocoloDTO->getDblIdProtocolo()); + + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + $this->abrirProcesso(self::$processoTeste['PROTOCOLO']); + + $this->tramitarProcessoExternamente( + self::$processoTeste['PROTOCOLO'], $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], + $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + + $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", self::$processoTeste['PROTOCOLO'], $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite($destinatario['NOME_UNIDADE'], true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $this->validarProcessosTramitados(self::$processoTeste['PROTOCOLO'], $orgaosDiferentes); + self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteInterno)); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); } @@ -111,14 +149,48 @@ public function test_devolucao_processo_para_destino_2() // Configuração do dados para teste do cenário $remetente = self::$contextoOrgaoA; $destinatario = array_slice(self::$contextoOrgaoB, 0); - $destinatario['SIGLA_UNIDADE'] = $destinatario['SIGLA_UNIDADE_SECUNDARIA']; - $destinatario['NOME_UNIDADE'] = $destinatario['NOME_UNIDADE_SECUNDARIA']; - $destinatario['SIGLA_UNIDADE_HIERARQUIA'] = $destinatario['SIGLA_UNIDADE_SECUNDARIA_HIERARQUIA']; + $orgaosDiferentes = $remetente['URL'] != $destinatario['URL']; $documentoTesteExterno = $this->gerarDadosDocumentoExternoTeste($remetente, self::CONTEUDO_DOCUMENTO_A); - $novosDocumentos = array($documentoTesteExterno); - $this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $novosDocumentos, $remetente, $destinatario); + putenv("DATABASE_HOST=org1-database"); + $objProtocoloFixture = new ProtocoloFixture(); + $objProtocoloDTO = $objProtocoloFixture->buscar([ + 'ProtocoloFormatado' => self::$processoTeste['PROTOCOLO'], + ])[0]; + + $this->cadastrarDocumentoExternoFixture($documentoTesteExterno, $objProtocoloDTO->getDblIdProtocolo()); + + $this->acessarSistema($remetente['URL'], $remetente['SIGLA_UNIDADE'], $remetente['LOGIN'], $remetente['SENHA']); + $this->abrirProcesso(self::$processoTeste['PROTOCOLO']); + + $this->tramitarProcessoExternamente( + self::$processoTeste['PROTOCOLO'], $destinatario['REP_ESTRUTURAS'], $destinatario['NOME_UNIDADE'], + $destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + + $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", self::$processoTeste['PROTOCOLO'], $unidade); + $this->validarRecibosTramite($mensagemRecibo, true, true); + + // 8 - Validar histórico de trâmite do processo + $this->validarHistoricoTramite($destinatario['NOME_UNIDADE'], true, true); + + // 9 - Verificar se processo está na lista de Processos Tramitados Externamente + $this->validarProcessosTramitados(self::$processoTeste['PROTOCOLO'], $orgaosDiferentes); + self::$totalDocumentos = array_merge(self::$totalDocumentos, array($documentoTesteExterno)); $this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, self::$totalDocumentos, $destinatario); }