Skip to content

Commit

Permalink
fix: correções dos testes automatizados que usam rest (#777)
Browse files Browse the repository at this point in the history
mrglaydson authored and mateussbh committed Jan 29, 2025
1 parent c98bbeb commit 7e44530
Showing 9 changed files with 742 additions and 401 deletions.
6 changes: 3 additions & 3 deletions src/config/ConfiguracaoModPEN.php
Original file line number Diff line number Diff line change
@@ -36,9 +36,9 @@ public function getArrConfiguracoes()
"PEN" => array(
// Endereço do Web Service principal de integração com o Barramento de Serviços do PEN
// Os endereços disponíveis são os seguintes (verifique se houve atualizações durante o procedimento de instalação):
// - Homologação: https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/
// - Produção: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/soap/v3/
"WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/soap/v3/",
// - Homologação: https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/
// - Produção: https://api.conectagov.processoeletronico.gov.br/interoperabilidade/rest/v3/
"WebService" => "https://homolog.api.processoeletronico.gov.br/interoperabilidade/rest/v3/",

// Endereço do Web Service de monitoramente de pendências de trâmite no Barramento de Serviços do PEN
// Configuração necessária para que o envio e recebimento de processos sejam feitas de forma dinâmica pelo sistema
9 changes: 6 additions & 3 deletions src/rn/ExpedirProcedimentoRN.php
Original file line number Diff line number Diff line change
@@ -1080,6 +1080,9 @@ private function atribuirEspecieDocumentalREST($parMetaDocumento, $parDocumentoD

//Atribui espécie documental definida pelo produtor do documento e registrado no PEN, caso exista
if(count($arrMetaDocumentosAnteriorIndexado) > 0 && array_key_exists($parMetaDocumento['ordem'], $arrMetaDocumentosAnteriorIndexado)){
if (is_array($arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie)) {
$arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie = (object) $arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie;
}
$numCodigoEspecie = $arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie->codigo;
$strNomeEspecieProdutor = mb_convert_encoding($arrMetaDocumentosAnteriorIndexado[$parMetaDocumento['ordem']]->especie->nomeNoProdutor, 'UTF-8', 'ISO-8859-1');
}
@@ -1449,12 +1452,12 @@ private function obterDadosArquivo(DocumentoDTO $objDocumentoDTO, $paramStrStaAs
} else {
$strCaminhoAnexo = $this->objAnexoRN->obterLocalizacao($objAnexoDTO);
$strNomeComponenteDigital = $objAnexoDTO->getStrNome();
}
}

$strConteudoAssinatura = null;

$nrTamanhoBytesArquivo = filesize($strCaminhoAnexo);
list($strDadosComplementares, $strMimeType) = $this->obterDadosComplementaresDoTipoDeArquivo($strCaminhoAnexo, $this->arrPenMimeTypes, $strProtocoloDocumentoFormatado);
$nrTamanhoBytesArquivo = filesize($strCaminhoAnexo);
list($strDadosComplementares, $strMimeType) = $this->obterDadosComplementaresDoTipoDeArquivo($strCaminhoAnexo, $this->arrPenMimeTypes, $strProtocoloDocumentoFormatado);

$objInformacaoArquivo['NOME'] = $strNomeComponenteDigital;
$objInformacaoArquivo['CONTEUDO'] = $strConteudoAssinatura;
49 changes: 35 additions & 14 deletions src/rn/ProcessoEletronicoRN.php
Original file line number Diff line number Diff line change
@@ -1622,12 +1622,17 @@ public static function getHashFromMetaDadosREST($objMeta)

private function montarDadosMaisDeUmComponenteDigital($objDocumento, $parStrNumeroRegistro, $parNumIdentificacaoTramite, $parObjProtocolo, $parObjComponentesDigitaisSolicitados)
{
$arrayComponentesDigitais = $objDocumento->componenteDigital;
$arrayComponentesDigitais = $objDocumento->componentesDigitais;
$arrObjComponenteDigitalDTO = array();
$arrayTeste = array();
$contComponentes = 0;

foreach ($arrayComponentesDigitais as $indice => $objComponenteDigital){

if (is_array($objComponenteDigital)) {
$objComponenteDigital = (object) $objComponenteDigital;
}

$contComponentes++;
$objComponenteDigitalDTO = new ComponenteDigitalDTO();
$objComponenteDigitalDTO->setStrNumeroRegistro($parStrNumeroRegistro);
@@ -1646,8 +1651,8 @@ private function montarDadosMaisDeUmComponenteDigital($objDocumento, $parStrNume
}


$objComponenteDigitalDTO->setStrNome($objComponenteDigital->nome);
$strHashConteudo = static::getHashFromMetaDados($objComponenteDigital->hash);
$objComponenteDigitalDTO->setStrNome($objComponenteDigital->nome);
$strHashConteudo = static::getHashFromMetaDados($objComponenteDigital->hash);

$objComponenteDigitalDTO->setStrHashConteudo($strHashConteudo);
$objComponenteDigitalDTO->setStrAlgoritmoHash(self::ALGORITMO_HASH_DOCUMENTO);
@@ -1656,19 +1661,18 @@ private function montarDadosMaisDeUmComponenteDigital($objDocumento, $parStrNume
$objComponenteDigitalDTO->setStrDadosComplementares($objComponenteDigital->dadosComplementaresDoTipoDeArquivo);

//Registrar componente digital necessita ser enviado pelo trâmite específico //TODO: Teste $parObjComponentesDigitaisSolicitados aqui
if(isset($parObjComponentesDigitaisSolicitados)){
$arrObjItensSolicitados = is_array($parObjComponentesDigitaisSolicitados->processo) ? $parObjComponentesDigitaisSolicitados->processo : array($parObjComponentesDigitaisSolicitados->processo);

foreach ($arrObjItensSolicitados as $objItemSolicitado) {
if(!is_null($objItemSolicitado)){
$objItemSolicitado->hash = is_array($objItemSolicitado->hash) ? $objItemSolicitado->hash : array($objItemSolicitado->hash);

if($objItemSolicitado->protocolo == $objComponenteDigitalDTO->getStrProtocolo() && in_array($strHashConteudo, $objItemSolicitado->hash) && !$objDocumento->retirado) {
$objComponenteDigitalDTO->setStrSinEnviar("S");
if(isset($parObjComponentesDigitaisSolicitados)) {
$arrObjItensSolicitados = isset($parObjComponentesDigitaisSolicitados) ? $parObjComponentesDigitaisSolicitados : array($parObjComponentesDigitaisSolicitados);
foreach ($arrObjItensSolicitados as $objItemSolicitado) {
if(!is_null($objItemSolicitado)){
$objItemSolicitado['hashes'] = is_array($objItemSolicitado['hashes']) ? $objItemSolicitado['hashes'] : array($objItemSolicitado['hashes']);

if($objItemSolicitado['protocolo'] == $objComponenteDigitalDTO->getStrProtocolo() && in_array($strHashConteudo, $objItemSolicitado['hashes']) && !$objDocumento->retirado) {
$objComponenteDigitalDTO->setStrSinEnviar("S");
}
}
}
}
}

//TODO: Avaliar dados do tamanho do documento em bytes salvo na base de dados
$objComponenteDigitalDTO->setNumTamanho($objComponenteDigital->tamanhoEmBytes);
@@ -1736,7 +1740,7 @@ private function montarDadosComponenteDigital($parStrNumeroRegistro, $parNumIden

//Registrar componente digital necessita ser enviado pelo trâmite específico //TODO: Teste $parObjComponentesDigitaisSolicitados aqui
if(isset($parObjComponentesDigitaisSolicitados)){
$arrObjItensSolicitados = is_array($parObjComponentesDigitaisSolicitados) ? $parObjComponentesDigitaisSolicitados : array($parObjComponentesDigitaisSolicitados);
$arrObjItensSolicitados = isset($parObjComponentesDigitaisSolicitados) ? $parObjComponentesDigitaisSolicitados : array($parObjComponentesDigitaisSolicitados);
foreach ($arrObjItensSolicitados as $objItemSolicitado) {
if(!is_null($objItemSolicitado)){
$objItemSolicitado['hashes'] = is_array($objItemSolicitado['hashes']) ? $objItemSolicitado['hashes'] : array($objItemSolicitado['hashes']);
@@ -2413,13 +2417,30 @@ public static function comparacaoOrdemAjustadaDocumentos($parDocumento1, $parDoc

public static function comparacaoOrdemDocumentos($parDocumento1, $parDocumento2)
{

if (is_array($parDocumento1)) {
$parDocumento1 = (object) $parDocumento1;
}

if (is_array($parDocumento2)) {
$parDocumento2 = (object) $parDocumento2;
}

$numOrdemDocumento1 = intval($parDocumento1->ordem);
$numOrdemDocumento2 = intval($parDocumento2->ordem);
return $numOrdemDocumento1 - $numOrdemDocumento2;
}

public static function comparacaoOrdemComponenteDigitais($parComponenteDigital1, $parComponenteDigital2)
{
if (is_array($parComponenteDigital1)) {
$parComponenteDigital1 = (object) $parComponenteDigital1;
}

if (is_array($parComponenteDigital2)) {
$parComponenteDigital2 = (object) $parComponenteDigital2;
}

$numOrdemComponenteDigital1 = intval($parComponenteDigital1->ordem);
$numOrdemComponenteDigital2 = intval($parComponenteDigital2->ordem);
return $numOrdemComponenteDigital1 - $numOrdemComponenteDigital2;
6 changes: 5 additions & 1 deletion src/rn/ReceberProcedimentoRN.php
Original file line number Diff line number Diff line change
@@ -2960,10 +2960,14 @@ private static function validaTamanhoMaximoAnexo($nomeArquivo, $nrTamanhMegaByte

private function atribuirTipoProcedimentoRelacinado($numIdTipoProcedimento, $numIdProcedimento, $strProcessoNegocio) {

$origem = null;
if (isset($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura) && !empty($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura)) {
$origem = $this->destinatarioReal->numeroDeIdentificacaoDaEstrutura;
}
$objAtributoAndamentoDTOAnterior = new AtributoAndamentoDTO();
$objAtributoAndamentoDTOAnterior->setStrNome('TIPO_PROCESSO_ANTERIOR');
$objAtributoAndamentoDTOAnterior->setStrValor($strProcessoNegocio);
$objAtributoAndamentoDTOAnterior->setStrIdOrigem($this->destinatarioReal->numeroDeIdentificacaoDaEstrutura);
$objAtributoAndamentoDTOAnterior->setStrIdOrigem($origem );
$arrObjAtributoAndamentoDTO[] = $objAtributoAndamentoDTOAnterior;

$objTipoProcedimentoRN = new TipoProcedimentoRN();
271 changes: 190 additions & 81 deletions tests_sei41/funcional/tests/TramiteRecebimentoDocumentoAnexadoTest.php

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -284,6 +284,7 @@ public function enviarDocumentoAPI($parametros)

} catch (\Exception $e) {
$mensagem = "Falha no envio de documento avulso";
$this->fail($mensagem . " - " . $e->getMessage());
}
}

@@ -324,6 +325,7 @@ public function enviarComponenteDigitalAPI($parametros)

} catch (\Exception $e) {
$mensagem = "Falha no envio de de componentes no documento";
$this->fail($mensagem . " - " . $e->getMessage());
}
}

@@ -343,6 +345,7 @@ public function receberReciboDeEnvioAPI($parNumIdTramite)
return json_decode($response->getBody(), true);
} catch (\Exception $e) {
$mensagem = "Falha no recebimento de recibo de trâmite de envio.";
$this->fail($mensagem . " - " . $e->getMessage());
}
}

@@ -355,7 +358,6 @@ private function instanciarApiDeIntegracao($localCertificado, $senhaCertificado)

$strClientGuzzle = new GuzzleHttp\Client([
'base_uri' => PEN_ENDERECO_WEBSERVICE,
'handler' => GuzzleHttp\HandlerStack::create(),
'timeout' => 5.0,
'headers' => $arrheaders,
'cert' => [$localCertificado, $senhaCertificado],
Original file line number Diff line number Diff line change
@@ -118,6 +118,14 @@ private function receberReciboEnvio($novoTramite)
return $this->receberReciboDeEnvioAPI($idt);
}

private function receberReciboTramite($servicoPEN, $novoTramite)
{
$dadosTramite = $novoTramite->dadosTramiteDeProcessoCriado;
$parametros = new StdClass();
$parametros->IDT = $dadosTramite->IDT;
return $servicoPEN->receberReciboDeTramite($parametros);
}

private function construirCabecalhoTeste($remetente, $destinatario)
{
$cabecalho = [
@@ -267,6 +275,7 @@ public function enviarProcessoAPI($parametros)

} catch (\Exception $e) {
$mensagem = "Falha no envio de processo";
$this->fail($mensagem . " - " . $e->getMessage());
}
}

@@ -307,6 +316,7 @@ public function enviarComponenteDigitalAPI($parametros)

} catch (\Exception $e) {
$mensagem = "Falha no envio de de componentes no documento";
$this->fail($mensagem . " - " . $e->getMessage());
}
}

@@ -325,6 +335,7 @@ public function receberReciboDeEnvioAPI($parNumIdTramite)
return json_decode($response->getBody(), true);
} catch (\Exception $e) {
$mensagem = "Falha no recebimento de recibo de trâmite de envio.";
$this->fail($mensagem . " - " . $e->getMessage());
}
}
}

Large diffs are not rendered by default.

Large diffs are not rendered by default.

0 comments on commit 7e44530

Please sign in to comment.