diff --git a/src/rn/TramiteEmBlocoRN.php b/src/rn/TramiteEmBlocoRN.php index 86604198d..7e7ce4207 100644 --- a/src/rn/TramiteEmBlocoRN.php +++ b/src/rn/TramiteEmBlocoRN.php @@ -359,4 +359,5 @@ protected function cancelarControlado(array $blocoIds) throw new InfraException('Erro cancelando Bloco.', $e); } } + } \ No newline at end of file diff --git a/tests_super/funcional/docker-compose.yml b/tests_super/funcional/docker-compose.yml index 117650542..bec71d25a 100755 --- a/tests_super/funcional/docker-compose.yml +++ b/tests_super/funcional/docker-compose.yml @@ -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 @@ -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} @@ -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" @@ -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} @@ -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} @@ -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} @@ -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} @@ -229,4 +230,4 @@ services: links: - org2-memcached:memcached - smtp:smtp - - org2-database:${ORG2_DATABASE_HOST} + - org2-database:${ORG2_DATABASE_HOST} \ No newline at end of file diff --git a/tests_super/funcional/src/fixtures/AnexoProcessoFixture.php b/tests_super/funcional/src/fixtures/AnexoProcessoFixture.php new file mode 100644 index 000000000..a7ebfb91d --- /dev/null +++ b/tests_super/funcional/src/fixtures/AnexoProcessoFixture.php @@ -0,0 +1,49 @@ +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; + + } +} \ No newline at end of file diff --git a/tests_super/funcional/src/fixtures/Anexofixture.php b/tests_super/funcional/src/fixtures/Anexofixture.php new file mode 100644 index 000000000..746d98dc6 --- /dev/null +++ b/tests_super/funcional/src/fixtures/Anexofixture.php @@ -0,0 +1,74 @@ +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(); + } + } + +} \ No newline at end of file diff --git a/tests_super/funcional/src/fixtures/AtividadeFixture.php b/tests_super/funcional/src/fixtures/AtividadeFixture.php index 8d2d02dd7..ff8b553a5 100644 --- a/tests_super/funcional/src/fixtures/AtividadeFixture.php +++ b/tests_super/funcional/src/fixtures/AtividadeFixture.php @@ -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'); diff --git a/tests_super/funcional/src/fixtures/ContatoFixture.php b/tests_super/funcional/src/fixtures/ContatoFixture.php new file mode 100644 index 000000000..f80e6d891 --- /dev/null +++ b/tests_super/funcional/src/fixtures/ContatoFixture.php @@ -0,0 +1,44 @@ +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; + } + +} \ No newline at end of file diff --git a/tests_super/funcional/src/fixtures/DocumentoFixture.php b/tests_super/funcional/src/fixtures/DocumentoFixture.php index 565b00735..2bbb06c4a 100644 --- a/tests_super/funcional/src/fixtures/DocumentoFixture.php +++ b/tests_super/funcional/src/fixtures/DocumentoFixture.php @@ -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() { @@ -23,8 +24,9 @@ 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, ] ); @@ -32,7 +34,7 @@ protected function cadastrar($dados = []) $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); diff --git a/tests_super/funcional/src/fixtures/FixtureBase.php b/tests_super/funcional/src/fixtures/FixtureBase.php index 9d4501dd5..310964f32 100644 --- a/tests_super/funcional/src/fixtures/FixtureBase.php +++ b/tests_super/funcional/src/fixtures/FixtureBase.php @@ -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 + ]); + } } diff --git a/tests_super/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php b/tests_super/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php index bfa76e256..4f40f3628 100644 --- a/tests_super/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php +++ b/tests_super/funcional/src/paginas/PaginaCadastrarProcessoEmBloco.php @@ -81,29 +81,17 @@ private function selectUnidade($nomeUnidade, $origemDestino, $hierarquia = null) return $this->unidadeInput->value(); } - /** - * Seleciona botão novo da página - * - * @return void - */ public function novoBlocoDeTramite() { $this->test->byId("bntNovo")->click(); } - /** - * @return void - */ + public function criarNovoBloco() { $this->test->byId('txtDescricao')->value('Bloco para teste automatizado'); } - /** - * Seleciona botão editar da primeira linha de tabela - * - * @return void - */ public function editarBlocoDeTramite($descricao = null) { $this->test->byXPath("(//img[@title='Alterar Bloco'])[1]")->click(); @@ -114,13 +102,6 @@ public function editarBlocoDeTramite($descricao = null) } } - /** - * Selecionar primeira checkbox de exclusão - * Seleciona botão excluir - * Seleciona botão de confirmação - * - * @return void - */ public function selecionarExcluirBloco() { $this->test->byXPath("(//label[@for='chkInfraItem0'])[1]")->click(); @@ -128,21 +109,12 @@ public function selecionarExcluirBloco() $this->test->acceptAlert(); } - /** - * Buscar mensagem de alerta da página - * - * @return string - */ public function buscarMensagemAlerta() { $alerta = $this->test->byXPath("(//div[@id='divInfraMsg0'])[1]"); return !empty($alerta->text()) ? $alerta->text() : ""; } - /** - * Tramitar Bloco Externamente - * - */ public function tramitarProcessoExternamente($repositorio, $unidadeDestino, $unidadeDestinoHierarquia, $urgente = false, $callbackEnvio = null, $timeout = PEN_WAIT_TIMEOUT) { // Preencher parâmetros do trâmite @@ -201,25 +173,49 @@ public function tramitarProcessoExternamente($repositorio, $unidadeDestino, $uni sleep(1); } + public function retornarTextoColunaDaTabelaDeBlocos() + { + $tabela = $this->test->byXPath('//tr[@class="infraTrClara odd"]'); + $terceiraColuna = $tabela->byXPath('./td[3]'); + + return $terceiraColuna->text(); + } + + public function retornarQuantidadeDeProcessosNoBloco() + { + + // $linhasDaTabela = $this->test->elements($this->test->using('xpath')->value('//table[@id="tblBlocos"]//tr[@class="infraTrClara odd"]')); + // // $tabela = $this->test->byXPath('//tr[@class="infraTrClara odd"]'); + // $count = $linhasDaTabela[0]->byXPath('./td'); + // $numeroDeLinhas = count($count); + + // return $linhasDaTabela[0]; + + + // Localiza todas as linhas da tabela com o XPath + $linhasDaTabela = $this->test->elements($this->test->using('xpath')->value('//table[@id="tblBlocos"]/tbody/tr')); + + // Obtém o número de linhas + return count($linhasDaTabela); + } + + public function bntTramitarBloco() { $this->test->byXPath("(//img[@title='Tramitar Bloco'])[1]")->click(); } - /** - * Selecionar Botão de salvar - * @return void - */ + public function bntVisualizarProcessos() + { + $this->test->byXPath("(//img[@title='Visualizar Processos'])[1]")->click(); + } + public function btnSalvar() { $buttonElement = $this->test->byXPath("//button[@type='submit' and @value='Salvar']"); $buttonElement->click(); } - /** - * Selecionar Botão de enviar - * @return void - */ public function btnEnviar() { $buttonElement = $this->test->byXPath("//button[@type='button' and @value='Enviar']"); diff --git a/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php b/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php new file mode 100644 index 000000000..650d6bb3a --- /dev/null +++ b/tests_super/funcional/tests/TramiteBlocoExternoLimiteAnexoTest.php @@ -0,0 +1,158 @@ +definirContextoTeste(CONTEXTO_ORGAO_A); + self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + // $penMapUnidadesFixture = new \PenMapUnidadesFixture(CONTEXTO_ORGAO_A, [ + // 'id' => self::$remetente['ID_ESTRUTURA'], + // 'sigla' => self::$remetente['SIGLA_ESTRUTURA'], + // 'nome' => self::$remetente['NOME_UNIDADE'] + // ]); + // $penMapUnidadesFixture->cadastrar(); + + } + + /** + * Teste inicial de trâmite de um processo contendo outro anexado + * + * @group envio + * @large + * + * @return void + */ + public function test_tramitar_processo_anexado_da_origem() + { + + // Definição de dados de teste do processo principal + self::$documentoTeste1 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_pequeno_A.pdf'); + self::$documentoTeste2 = $this->gerarDadosDocumentoExternoTeste(self::$remetente, 'arquivo_pequeno_A.pdf'); + + $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); + $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); + + for ($i = 0; $i < self::$numQtyProcessos; $i++) { + $objProtocoloFixture = new \ProtocoloFixture(); + $objProtocoloFixtureDTO = $objProtocoloFixture->carregar(); + + $objProcedimentoFixture = new \ProcedimentoFixture(); + $objProcedimentoDTO = $objProcedimentoFixture->carregar([ + 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo() + ]); + + $objAtividadeFixture = new \AtividadeFixture(); + $objAtividadeDTO = $objAtividadeFixture->carregar([ + 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), + 'IdTarefa' => TarefaRN::$TI_GERACAO_PROCEDIMENTO, + ]); + + $objParticipanteFixture = new \ParticipanteFixture(); + $objParticipanteFixture->carregar([ + 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), + ]); + + $objProtocoloAssuntoFixture = new \RelProtocoloAssuntoFixture(); + $objProtocoloAssuntoFixture->carregar([ + 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo() + ]); + + $objAtributoAndamentoFixture = new \AtributoAndamentoFixture(); + $objAtributoAndamentoFixture->carregar([ + 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade() + ]); + + //Incluir novos documentos relacionados + $objDocumentoFixture = new \DocumentoFixture(); + $objDocumentoDTO = $objDocumentoFixture->carregar([ + 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), + 'IdProcedimento' => $objProcedimentoDTO->getDblIdProcedimento(), + 'Descricao' => self::$documentoTeste1['DESCRICAO'], + 'StaProtocolo' => \ProtocoloRN::$TP_DOCUMENTO_RECEBIDO, + 'StaDocumento' => \DocumentoRN::$TD_EXTERNO, + 'IdConjuntoEstilos' => NULL, + ]); + + //Adicionar anexo ao documento + $objAnexoFixture = new \AnexoFixture(); + $objAnexoFixture->carregar([ + 'IdProtocolo' => $objDocumentoDTO->getDblIdDocumento(), + 'Nome' => basename(self::$documentoTeste1['ARQUIVO']), + ]); + + // $objAssinaturaFixture = new \AssinaturaFixture(); + // $objAssinaturaFixture->carregar([ + // 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), + // 'IdDocumento' => $objDocumentoDTO->getDblIdDocumento(), + // 'IdAtividade' => $objAtividadeDTO->getNumIdAtividade(), + // ]); + + $objBlocoDeTramiteProtocoloFixture = new \BlocoDeTramiteProtocoloFixture(); + $objBlocoDeTramiteProtocoloFixtureDTO = $objBlocoDeTramiteProtocoloFixture->carregar([ + 'IdProtocolo' => $objProtocoloFixtureDTO->getDblIdProtocolo(), + 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), + 'IdxRelBlocoProtocolo' => $objProtocoloFixtureDTO->getStrProtocoloFormatado() + ]); + + self::$protocoloTestePrincipal = $objProtocoloFixtureDTO->getStrProtocoloFormatado(); + } + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); + if (self::$tramitar == true) { + $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); + $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( + self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], + self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + sleep(10); + } else { + $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); + $qtyProcessos = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); + + $this->assertEquals($qtyProcessos, self::$numQtyProcessos); + } + } + + public function test_verificar_envio_tramite_em_bloco() + { + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); + self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + + $orgaosDiferentes = self::$remetente['URL'] != self::$destinatario['URL']; + + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); + $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); + + if (self::$tramitar == true) { + $this->assertNotEquals('Aberto', $novoStatus); + } else { + $this->assertEquals('Aberto', $novoStatus); + } + } + +} \ No newline at end of file diff --git a/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php b/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php index 7fc70c3be..81c5fdb0d 100644 --- a/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php +++ b/tests_super/funcional/tests/TramiteBlocoExternoLimiteTest.php @@ -1,16 +1,14 @@ cadastrar(); + } + + public function teste_tramite_bloco_externo() + { + $objBlocoDeTramiteFixture = new \BlocoDeTramiteFixture(); $objBlocoDeTramiteDTO = $objBlocoDeTramiteFixture->carregar(); - for ($i = 0; $i < self::$strQtyProcessos; $i++) { + for ($i = 0; $i < self::$numQtyProcessos; $i++) { $objProtocoloFixture = new \ProtocoloFixture(); $objProtocoloFixtureDTO = $objProtocoloFixture->carregar(); @@ -77,28 +80,59 @@ function setUp(): void 'IdTramitaEmBloco' => $objBlocoDeTramiteDTO->getNumId(), 'IdxRelBlocoProtocolo' => $objProtocoloFixtureDTO->getStrProtocoloFormatado() ]); + + self::$protocoloTestePrincipal = $objProtocoloFixtureDTO->getStrProtocoloFormatado(); } + $this->acessarSistema( + self::$remetente['URL'], + self::$remetente['SIGLA_UNIDADE'], + self::$remetente['LOGIN'], + self::$remetente['SENHA'] + ); + + $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); + + if (self::$tramitar == true) { + $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); + $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( + self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], + self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false + ); + sleep(10); + } else { + $this->paginaCadastrarProcessoEmBloco->bntVisualizarProcessos(); + $qtyProcessos = $this->paginaCadastrarProcessoEmBloco->retornarQuantidadeDeProcessosNoBloco(); + + $this->assertEquals($qtyProcessos, self::$numQtyProcessos); + } } - public function teste_tramite_bloco_externo() + /** + * Verificar se o bloco foi enviado + * + * + * @return void + */ + public function test_verificar_envio_tramite_em_bloco() { - // Configuração do dados para teste do cenário + self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A); self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B); + $this->acessarSistema( self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA'] ); - $this->paginaCadastrarProcessoEmBloco->navegarListagemBlocoDeTramite(); - // $this->paginaCadastrarProcessoEmBloco->bntTramitarBloco(); - // $this->paginaCadastrarProcessoEmBloco->tramitarProcessoExternamente( - // self::$destinatario['REP_ESTRUTURAS'], self::$destinatario['NOME_UNIDADE'], - // self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'], false - // ); - sleep(10); + $novoStatus = $this->paginaCadastrarProcessoEmBloco->retornarTextoColunaDaTabelaDeBlocos(); + + if (self::$tramitar == true) { + $this->assertNotEquals('Aberto', $novoStatus); + } else { + $this->assertEquals('Aberto', $novoStatus); + } } } \ No newline at end of file