Skip to content

Commit

Permalink
chore: Adição de cenário para devolução de documento avulso
Browse files Browse the repository at this point in the history
  • Loading branch information
higodf committed Nov 7, 2023
1 parent 9f0a506 commit 3eb217f
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 11 deletions.
12 changes: 11 additions & 1 deletion tests_super/funcional/tests/CenarioBaseTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -707,7 +707,7 @@ public function realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($docum
$this->acessarSistema($destinatario['URL'], $destinatario['SIGLA_UNIDADE'], $destinatario['LOGIN'], $destinatario['SENHA']);

// Abrir protocolo na tela de controle de processos pelo texto da descrição
$this->waitUntil(function ($testCase) use ($strDescricao, &$strProtocoloProcesso) {
$this->waitUntil(function ($testCase) use ($strDescricao, &$strProtocoloTeste) {
sleep(5);
$strProtocoloTeste = $this->abrirProcessoPelaDescricao($strDescricao);
$this->assertNotFalse($strProtocoloTeste);
Expand All @@ -729,6 +729,16 @@ public function realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($docum
for ($i = 0; $i < count($listaDocumentos); $i++) {
$this->validarDadosDocumento($listaDocumentos[$i], $documentosTeste[$i], $destinatario, $unidadeSecundaria);
}

return array(
"TIPO_PROCESSO" => $destinatario['TIPO_PROCESSO'],
"DESCRICAO" => $documentosTeste[0]['DESCRICAO'],
"OBSERVACOES" => null,
"INTERESSADOS" => $documentosTeste[0]['INTERESSADOS'],
"RESTRICAO" => $documentosTeste[0]['RESTRICAO'],
"ORIGEM" => $destinatario['URL'],
"PROTOCOLO" => $strProtocoloTeste
);
}

public function realizarValidacaoNAORecebimentoProcessoNoDestinatario($destinatario, $processoTeste)
Expand Down
103 changes: 93 additions & 10 deletions tests_super/funcional/tests/TramiteRecebimentoDocumentoAvulsoTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,15 @@ class TramiteRecebimentoDocumentoAvulsoTest extends CenarioBaseTestCase
const CONTEUDO_DOCUMENTO_B = "arquivo_pequeno_B.pdf";
const CONTEUDO_DOCUMENTO_C = "arquivo_pequeno_C.pdf";

protected $remetente;
protected $destinatario;
protected $servicoPEN;
public static $remetente;
public static $destinatario;
public static $processoTeste;
public static $documentoTeste1;
public static $documentoTeste2;
public static $documentoTeste3;
public static $documentoTeste4;
public static $documentoTeste5;

/**
* Teste de recebimento dedocumento avulso com 2 componentes digitais
Expand All @@ -27,12 +33,12 @@ public function setUp(): void
parent::setup();

// Carregar contexto de testes e dados sobre certificado digital
$this->remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B);
$this->destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A);
self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B);
self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A);

// Instanciar objeto de teste utilizando o BeSimpleSoap
$localCertificado = $this->remetente['LOCALIZACAO_CERTIFICADO_DIGITAL'];
$senhaCertificado = $this->remetente['SENHA_CERTIFICADO_DIGITAL'];
$localCertificado = self::$remetente['LOCALIZACAO_CERTIFICADO_DIGITAL'];
$senhaCertificado = self::$remetente['SENHA_CERTIFICADO_DIGITAL'];
$this->servicoPEN = $this->instanciarApiDeIntegracao($localCertificado, $senhaCertificado);
}

Expand All @@ -44,20 +50,97 @@ public function setUp(): void
public function test_recebimento_documento_avulso()
{
// Simular um trâmite chamando a API do Barramento diretamente
$documentoTeste = $this->gerarDadosDocumentoExternoTeste($this->remetente, array(self::CONTEUDO_DOCUMENTO_A));
self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, array(self::CONTEUDO_DOCUMENTO_A));

$metadadosDocumentoTeste = $this->construirMetadadosDocumentoTeste($documentoTeste);
$novoTramite = $this->enviarMetadadosDocumento($this->servicoPEN, $this->remetente, $this->destinatario, $metadadosDocumentoTeste);
$metadadosDocumentoTeste = $this->construirMetadadosDocumentoTeste(self::$documentoTeste1);
$novoTramite = $this->enviarMetadadosDocumento($this->servicoPEN, self::$remetente, self::$destinatario, $metadadosDocumentoTeste);
$this->enviarComponentesDigitaisDoTramite($this->servicoPEN, $novoTramite, $metadadosDocumentoTeste);
$reciboTramite = $this->receberReciboEnvio($this->servicoPEN, $novoTramite);
$this->atualizarTramitesPEN(true,false);

//Verificar recebimento de novo processo administrativo contendo documento avulso enviado
$this->assertNotNull($novoTramite);
$this->assertNotNull($reciboTramite);
$this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario($documentoTeste, $this->destinatario);
self::$processoTeste = $this->realizarValidacaoRecebimentoDocumentoAvulsoNoDestinatario(self::$documentoTeste1, self::$destinatario);
}

/**
* Teste de trâmite externo de processo com devolução para a mesma unidade de origem
*
* @group envio
* @large
*
* @depends test_recebimento_documento_avulso
*
* @return void
*/
public function test_devolucao_processo_para_origem()
{
// Configuração do dados para teste do cenário
self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A);
self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B);
self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente);
self::$documentoTeste3 = $this->gerarDadosDocumentoExternoTeste(self::$remetente);

$documentos = array(self::$documentoTeste2, self::$documentoTeste3);
$this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario);
}

/**
* Teste de verificação do correto recebimento do processo no destino
*
* @group verificacao_recebimento
* @large
*
* @depends test_devolucao_processo_para_origem
*
* @return void
*/
public function test_verificar_recebimento_processo_destino()
{
self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B);
$documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3);
$this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario);
}

/**
* Teste de trâmite externo de processo com devolução para a mesma unidade de origem
*
* @group envio
* @large
*
* @depends test_verificar_recebimento_processo_destino
*
* @return void
*/
public function test_devolucao_processo_para_origem_documento_avulso()
{
// Configuração do dados para teste do cenário
self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_B);
self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A);
self::$documentoTeste4 = $this->gerarDadosDocumentoInternoTeste(self::$remetente);
self::$documentoTeste5 = $this->gerarDadosDocumentoExternoTeste(self::$remetente);

$documentos = array(self::$documentoTeste4, self::$documentoTeste5);
$this->realizarTramiteExternoComValidacaoNoRemetente(self::$processoTeste, $documentos, self::$remetente, self::$destinatario);
}

/**
* Teste de verificação do correto recebimento do processo no destino
*
* @group verificacao_recebimento
* @large
*
* @depends test_devolucao_processo_para_origem_documento_avulso
*
* @return void
*/
public function test_verificar_recebimento_processo_destino_documento_avulso()
{
self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_A);
$documentos = array(self::$documentoTeste1, self::$documentoTeste2, self::$documentoTeste3, self::$documentoTeste4, self::$documentoTeste5);
$this->realizarValidacaoRecebimentoProcessoNoDestinatario(self::$processoTeste, $documentos, self::$destinatario);
}

private function receberReciboEnvio($servicoPEN, $novoTramite)
{
Expand Down

0 comments on commit 3eb217f

Please sign in to comment.