Skip to content

Commit

Permalink
feat: refatoracao de testes utilizando fixtures e dtos (#618)
Browse files Browse the repository at this point in the history
Co-authored-by: Paul Richard Pereira Martins dos Anjos <[email protected]>
  • Loading branch information
NinetiesPaul and Paul Richard Pereira Martins dos Anjos authored Sep 6, 2024
1 parent a1c9c78 commit d5917ca
Show file tree
Hide file tree
Showing 6 changed files with 363 additions and 33 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<?php

use \utilphp\util;
use Tests\Funcional\Sei\Fixtures\{ProtocoloFixture,ProcedimentoFixture,AtividadeFixture,ParticipanteFixture,RelProtocoloAssuntoFixture,AtributoAndamentoFixture,DocumentoFixture,AssinaturaFixture};

/**
* Execution Groups
* @group execute_alone_group1
*/
class TramiteRecebimentoMultiplosComponentesDigitais extends CenarioBaseTestCase
class TramiteRecebimentoMultiplosComponentesDigitais extends FixtureCenarioBaseTestCase
{
const ALGORITMO_HASH_DOCUMENTO = 'SHA256';
const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA';
Expand Down Expand Up @@ -94,12 +95,49 @@ public function test_devolucao_processo_para_origem()
// Configuração do dados para teste do cenário
$remetente = self::$contextoOrgaoA;
$destinatario = self::$contextoOrgaoB;
$orgaosDiferentes = $remetente['URL'] != $destinatario['URL'];

$documentoTeste1 = $this->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);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<?php

use \utilphp\util;
use Tests\Funcional\Sei\Fixtures\{ProtocoloFixture,ProcedimentoFixture,AtividadeFixture,ParticipanteFixture,RelProtocoloAssuntoFixture,AtributoAndamentoFixture,DocumentoFixture,AssinaturaFixture};

class TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes extends CenarioBaseTestCase
class TramiteRecebimentoMultiplosComponentesDigitaisApenasPendentes extends FixtureCenarioBaseTestCase
{
const ALGORITMO_HASH_DOCUMENTO = 'SHA256';
const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA';
Expand Down Expand Up @@ -90,11 +91,48 @@ public function test_devolucao_processo_para_origem_1()
// Configuração do dados para teste do cenário
$remetente = self::$contextoOrgaoB;
$destinatario = self::$contextoOrgaoA;
$orgaosDiferentes = $remetente['URL'] != $destinatario['URL'];

$documentoTesteInterno = $this->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);
}
Expand All @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<?php

use \utilphp\util;
use Tests\Funcional\Sei\Fixtures\{ProtocoloFixture,ProcedimentoFixture,AtividadeFixture,ParticipanteFixture,RelProtocoloAssuntoFixture,AtributoAndamentoFixture,DocumentoFixture,AssinaturaFixture};

/**
* Execution Groups
* @group execute_alone_group1
*/
class TramiteRecebimentoMultiplosComponentesDigitais extends CenarioBaseTestCase
class TramiteRecebimentoMultiplosComponentesDigitais extends FixtureCenarioBaseTestCase
{
const ALGORITMO_HASH_DOCUMENTO = 'SHA256';
const ALGORITMO_HASH_ASSINATURA = 'SHA256withRSA';
Expand Down Expand Up @@ -94,12 +95,49 @@ public function test_devolucao_processo_para_origem()
// Configuração do dados para teste do cenário
$remetente = self::$contextoOrgaoA;
$destinatario = self::$contextoOrgaoB;
$orgaosDiferentes = $remetente['URL'] != $destinatario['URL'];

$documentoTeste1 = $this->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);
}
Expand Down
Loading

0 comments on commit d5917ca

Please sign in to comment.