Skip to content

Commit

Permalink
tests: adicionar tests funcionais e testes de carga
Browse files Browse the repository at this point in the history
  • Loading branch information
mrglaydson committed Feb 9, 2024
1 parent 81b8c43 commit 5e5f195
Show file tree
Hide file tree
Showing 11 changed files with 446 additions and 69 deletions.
1 change: 1 addition & 0 deletions src/rn/TramiteEmBlocoRN.php
Original file line number Diff line number Diff line change
Expand Up @@ -359,4 +359,5 @@ protected function cancelarControlado(array $blocoIds)
throw new InfraException('Erro cancelando Bloco.', $e);
}
}

}
25 changes: 13 additions & 12 deletions tests_super/funcional/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,21 +44,23 @@ services:
php-test-functional:
image: processoeletronico/vagrant_super4_httpd:${ENVIRONMENT_VERSION}
depends_on:
- org2-database
- org1-database
- org2-database
- selenium
volumes:
- ${SEI_PATH}/sei:/opt/sei
- ${SEI_PATH}/sip:/opt/sip
- ${SEI_PATH}/infra:/opt/infra
- ./assets/config:/opt/sei/config/mod-pen
- .:/tests
- ${SEI_PATH}/../tests:/tests/sei
- ${SEI_PATH}/../src:/tests/sei/src
- ../../src/bd:/tests/sei/modpen/bd
- ./src/fixtures:/tests/sei/modpen/fixtures
- ../../src/dto:/tests/sei/modpen/dto
- ../../src/rn:/tests/sei/modpen/rn
- ../../src/bd:/tests/sei/modpen/bd
- ./assets/config:/opt/sei/config/mod-pen
- /tmp:/tmp
- /tmp/sei_arquivos_1:/var/sei/arquivos/${ORG1_DATABASE_HOST}
- /tmp/sei_arquivos_2:/var/sei/arquivos/${ORG2_DATABASE_HOST}
environment:
- XDEBUG_CONFIG=client_host=host.docker.internal client_port=9003 start_with_request=0
- XDEBUG_SESSION=default
Expand All @@ -71,9 +73,10 @@ services:
- ORG1_CERTIFICADO_SENHA=${ORG1_CERTIFICADO_SENHA}
- ORG2_CERTIFICADO=${ORG2_CERTIFICADO}
- ORG2_CERTIFICADO_SENHA=${ORG2_CERTIFICADO_SENHA}
- DATABASE_IMAGE=${ORG1_DATABASE_IMAGE}
- DATABASE_TYPE=${ORG1_DATABASE_TYPE}
- DATABASE_HOST=${ORG1_DATABASE_HOST}
- DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT}
- DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT}
- SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO}
- SEI_DATABASE_NAME=${SEI_DATABASE_NAME}
- SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO}
Expand All @@ -83,8 +86,8 @@ services:
extra_hosts:
- "host.docker.internal:host-gateway"
links:
- org2-database:${ORG1_DATABASE_HOST}
- org1-database:${ORG2_DATABASE_HOST}
- org1-database:${ORG1_DATABASE_HOST}
- org2-database:${ORG2_DATABASE_HOST}
- selenium:selenium
command: "true"

Expand Down Expand Up @@ -142,6 +145,7 @@ services:
- ../../src/scripts:/opt/sip/scripts/mod-pen
- ../../src/bin:/opt/sei/bin/mod-pen
- ../../src:/opt/sei/web/modulos/pen
- /tmp/sei_arquivos_1:/var/sei/arquivos
environment:
- LANG=pt_BR.ISO-8859-1
- HOST_URL=http://${ORG1_HOSTNAME}:${ORG1_PORT}
Expand All @@ -156,12 +160,10 @@ services:
- DATABASE_HOST=${ORG1_DATABASE_HOST}
- DATABASE_PORT=${ORG1_DATABASE_GUEST_PORT}
- CONTEXTO_ORGAO_A_DB_SEI_DSN=${CONTEXTO_ORGAO_A_DB_SEI_DSN}

- SEI_CHAVE_ACESSO=${ORG1_APP_SEI_CHAVE_ACESSO}
- SEI_DATABASE_NAME=${SEI_DATABASE_NAME}
- SEI_DATABASE_USER=${SEI_DATABASE_USER}
- SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD}

- SIP_CHAVE_ACESSO=${ORG1_APP_SIP_CHAVE_ACESSO}
- SIP_DATABASE_NAME=${SIP_DATABASE_NAME}
- SIP_DATABASE_USER=${SIP_DATABASE_USER}
Expand Down Expand Up @@ -200,6 +202,7 @@ services:
- ../../src:/opt/sei/web/modulos/pen
- ./assets/config/ConfiguracaoSEI.php:/opt/sei/config/ConfiguracaoSEI.php:ro
- ./assets/config/ConfiguracaoSip.php:/opt/sip/config/ConfiguracaoSip.php:ro
- /tmp/sei_arquivos_2:/var/sei/arquivos
environment:
- LANG=pt_BR.ISO-8859-1
- HOST_URL=http://${ORG2_HOSTNAME}:${ORG2_PORT}
Expand All @@ -214,12 +217,10 @@ services:
- DATABASE_HOST=${ORG2_DATABASE_HOST}
- DATABASE_PORT=${ORG2_DATABASE_GUEST_PORT}
- CONTEXTO_ORGAO_B_DB_SEI_DSN=${CONTEXTO_ORGAO_B_DB_SEI_DSN}

- SEI_CHAVE_ACESSO=${ORG2_APP_SEI_CHAVE_ACESSO}
- SEI_DATABASE_NAME=${SEI_DATABASE_NAME}
- SEI_DATABASE_USER=${SEI_DATABASE_USER}
- SEI_DATABASE_PASSWORD=${SEI_DATABASE_PASSWORD}

- SIP_CHAVE_ACESSO=${ORG2_APP_SIP_CHAVE_ACESSO}
- SIP_DATABASE_NAME=${SIP_DATABASE_NAME}
- SIP_DATABASE_USER=${SIP_DATABASE_USER}
Expand All @@ -229,4 +230,4 @@ services:
links:
- org2-memcached:memcached
- smtp:smtp
- org2-database:${ORG2_DATABASE_HOST}
- org2-database:${ORG2_DATABASE_HOST}
49 changes: 49 additions & 0 deletions tests_super/funcional/src/fixtures/AnexoProcessoFixture.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

class AnexoProcessoFixture extends FixtureBase
{
protected $objAssinaturaDTO;

protected function inicializarObjInfraIBanco()
{
return \BancoSEI::getInstance();
}

protected function cadastrar($dados = [])
{
$objAtividadeFixture = new AtividadeFixture();
$objAtividadeFixture->cadastrar(
[
'IdProtocolo' => $dados['IdProtocolo'],
'IdTarefa' => \TarefaRN::$TI_ANEXADO_PROCESSO,//101
]
);
$objAtividadeFixture->cadastrar(
[
'IdProtocolo' => $dados['IdDocumento'],
'IdTarefa' => \TarefaRN::$TI_ANEXADO_AO_PROCESSO,//102
'IdUsuarioConclusao' => $dados['IdUsuarioConclusao'] ?: 100000001,
'Conclusao' => InfraData::getStrDataHoraAtual(),

]
);
$objAtividadeFixture->cadastrar(
[
'IdProtocolo' => $dados['IdDocumento'],
'IdTarefa' => \TarefaRN::$TI_CONCLUSAO_AUTOMATICA_UNIDADE,//41
'IdUsuarioConclusao' => $dados['IdUsuarioConclusao'] ?: 100000001,
'Conclusao' => InfraData::getStrDataHoraAtual(),
]
);

$parametros = [
'IdProtocolo' => $dados['IdProtocolo'], // idprotocolo1
'IdDocumento' => $dados['IdDocumento'], // idprotocolo2
'Associacao' => 2,
];
$objRelProtocoloProtocoloFixture = new RelProtocoloProtocoloFixture();
$objRelProtocoloProtocoloFixtureDTO = $objRelProtocoloProtocoloFixture->carregar($parametros);
return $objRelProtocoloProtocoloFixtureDTO;

}
}
74 changes: 74 additions & 0 deletions tests_super/funcional/src/fixtures/Anexofixture.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<?php

class AnexoFixture extends FixtureBase
{
protected $objAnexoDTO;

protected function inicializarObjInfraIBanco()
{
return \BancoSEI::getInstance();
}

protected function cadastrar($dados = [])
{
$dados['Nome'] = $dados['Nome'] ?: 'arquivo_pequeno_A.pdf';

$objAnexoDTO = new \AnexoDTO();
$objAnexoDTO->setNumIdUnidade($dados['IdUnidade'] ?: '110000001');
$objAnexoDTO->setDblIdProtocolo($dados['IdProtocolo']);
$objAnexoDTO->setNumTamanho($dados['Tamanho'] ?: 16);
$objAnexoDTO->setNumIdBaseConhecimento($dados['IdBaseConhecimento'] ?: null);
$objAnexoDTO->setStrNome($dados['Nome']);
$objAnexoDTO->setDthInclusao($dados['Inclusao'] ?: \InfraData::getStrDataHoraAtual());
$objAnexoDTO->setNumIdUsuario($dados['IdUsuario'] ?: 100000001);
$objAnexoDTO->setStrSinAtivo($dados['SinAtivo'] ?: 'S');
$objAnexoDTO->setStrHash($dados['Hash'] ?: 'e307098a01b40de6183583f3163ac6ed');

$objAnexoBD = new \AnexoBD(\BancoSEI::getInstance());
$objAnexoDTO = $objAnexoBD->cadastrar($objAnexoDTO);
$this->realizarUpload($dados['Nome'],$objAnexoDTO->getNumIdAnexo());

return $objAnexoDTO;
}

public function realizarUpload($caminhoOrigem, $nomeDestino)
{

// Obtém a orgão atual
$org = getenv('DATABASE_HOST');

// Obtém a data atual
$dataAtual = date('Y/m/d');

// Define os caminhos de destino baseado na data atual e no orgão que será feito o upload
$caminhoDestinoBase = "/var/sei/arquivos/{$org}/{$dataAtual}/";
$caminhoOrigemBase = '/tmp/';

// Cria o diretório de destino se não existir
if (!file_exists($caminhoDestinoBase)) {
mkdir($caminhoDestinoBase, 0777, true); // Cria diretórios recursivamente com permissão 0777
}

// Cria o caminho completo de destino
$caminhoDestinoCompleto = $caminhoDestinoBase.$nomeDestino;

// Cria o caminho completo de origem
$caminhoOrigemCompleto = $caminhoOrigemBase.$caminhoOrigem;

try {
// Verifica se o arquivo de origem existe
if (!file_exists($caminhoOrigemCompleto)) {
throw new \Exception("O arquivo de origem não existe.\nArquivo=".$caminhoOrigemCompleto);
}

// Copia o arquivo para o destino
if (!copy($caminhoOrigemCompleto, $caminhoDestinoCompleto)) {
throw new \Exception("Falha ao copiar o arquivo para o destino.\nArquivo=".$caminhoOrigemCompleto."\nDestino=".$caminhoDestinoCompleto);
}

} catch (\Exception $e) {
echo "\nErro: " . $e->getMessage();
}
}

}
2 changes: 1 addition & 1 deletion tests_super/funcional/src/fixtures/AtividadeFixture.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ protected function cadastrar($dados = [])
$this->objAtividadeDTO->setNumIdUsuarioOrigem($dados['IdUsuarioOrigem'] ?: 100000001);
$this->objAtividadeDTO->setDthAbertura($dados['Abertura'] ?: InfraData::getStrDataHoraAtual());
$this->objAtividadeDTO->setDthConclusao($dados['Conclusao'] ?: null);
$this->objAtividadeDTO->setNumIdTarefa($dados['IdTarefa'] ?: 1);
$this->objAtividadeDTO->setNumIdTarefa($dados['IdTarefa'] ?: null);
$this->objAtividadeDTO->setNumIdUsuarioAtribuicao($dados['IdUsuarioAtribuicao'] ?: null);
$this->objAtividadeDTO->setNumIdUsuarioConclusao($dados['IdUsuarioConclusao'] ?: null);
$this->objAtividadeDTO->setStrSinInicial($dados['SinInicial'] ?: 'S');
Expand Down
44 changes: 44 additions & 0 deletions tests_super/funcional/src/fixtures/ContatoFixture.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php

class ContatoFixture extends FixtureBase
{
protected $objContatoDTO;

public function __construct()
{
$this->objContatoDTO = new \ContatoDTO();
}

protected function inicializarObjInfraIBanco()
{
return \BancoSEI::getInstance();
}

protected function cadastrar($dados = [])
{

$dados['IdContato'] = $this->getObjInfraIBanco()->getValorSequencia('seq_contato');
$dados['Nome'] = $dados['Nome'] ?: 'teste';

$this->objContatoDTO->setNumIdContato($dados['IdContato']);
$this->objContatoDTO->setNumIdContatoAssociado($dados['IdContatoAssociado'] ?: $dados['IdContato']);
$this->objContatoDTO->setStrNome($dados['Nome']);
$this->objContatoDTO->setStrNomeRegistroCivil($dados['NomeRegistroCivil'] ?: $dados['Nome']);
// $this->objContatoDTO->setNumIdCargo($dados['IdCargo'] ?: 0);
// $this->objContatoDTO->setNumIdCategoria($dados['IdCategoria'] ?: 110000001);
$this->objContatoDTO->setStrSinAtivo($dados['SinAtivo'] ?: 'S');
$this->objContatoDTO->setStrIdxContato($dados['IdxContato'] ?: strtolower($dados['Nome']));
$this->objContatoDTO->setNumIdUnidadeCadastro($dados['IdUnidadeCadastro'] ?: 110000001);
$this->objContatoDTO->setNumIdUsuarioCadastro($dados['IdUsuarioCadastro'] ?: 100000001);
$this->objContatoDTO->setDthCadastro($dados['Cadastro'] ?: \InfraData::getStrDataHoraAtual());
$this->objContatoDTO->setNumIdTipoContato($dados['IdTipoContato'] ?: 4);
$this->objContatoDTO->setStrStaNatureza($dados['StaNatureza'] ?: 'F');
$this->objContatoDTO->setStrSinEnderecoAssociado($dados['SinEnderecoAssociado'] ?: 'N');

$objContatoBD = new \ContatoBD(\BancoSEI::getInstance());
$objContatoBD->cadastrar($this->objContatoDTO);

return $this->objContatoDTO;
}

}
10 changes: 6 additions & 4 deletions tests_super/funcional/src/fixtures/DocumentoFixture.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ class DocumentoFixture extends \FixtureBase
{
protected $objDocumentoDTO;

const MODELO_ACORDAO = 43;
const MODELO_ACORDAO = 8;
const MODELO_AVISO = 121;

public function __construct()
{
Expand All @@ -23,16 +24,17 @@ protected function cadastrar($dados = [])

$protocoloFixture = new \ProtocoloFixture();
$protocoloDTO = $protocoloFixture->cadastrar(
[
'StaProtocolo' => \ProtocoloRN::$TP_DOCUMENTO_GERADO,
[
'StaProtocolo' => $dados['StaProtocolo'] ?: \ProtocoloRN::$TP_DOCUMENTO_GERADO,
'Descricao' => $dados['Descricao'],
'documento' => true,
]
);

$this->objDocumentoDTO->setDblIdDocumento($protocoloDTO->getDblIdProtocolo());
$this->objDocumentoDTO->setDblIdDocumentoEdoc($dados['IdDocumentoEdoc'] ?: null);
$this->objDocumentoDTO->setDblIdProcedimento($dados['IdProcedimento']);
$this->objDocumentoDTO->setNumIdSerie($dados['IdSerie'] ?: 8);
$this->objDocumentoDTO->setNumIdSerie($dados['IdSerie'] ?: self::MODELO_ACORDAO);
$this->objDocumentoDTO->setNumIdUnidadeResponsavel($dados['IdUnidadeResponsavel'] ?: 110000001);
$this->objDocumentoDTO->setNumIdConjuntoEstilos($dados['IdConjuntoEstilos'] ?: 81);
$this->objDocumentoDTO->setNumIdTipoConferencia($dados['IdTipoConferencia'] ?: null);
Expand Down
18 changes: 18 additions & 0 deletions tests_super/funcional/src/fixtures/FixtureBase.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,22 @@ public function carregarVariados($dados){

return $resultado;
}

protected function listarInternoControlado($parametros){
$dto = $this->listar($parametros["dados"]);

if (isset($parametros["callback"])) {
$parametros["callback"]($dto);
}

return $dto;
}

public function buscar($dados = null, $callback = null){
$dados = $dados ?: [];
return $this->listarInterno([
'dados' => $dados,
'callback' => $callback
]);
}
}
Loading

0 comments on commit 5e5f195

Please sign in to comment.