Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: adiciona teste de cancelamento tramite individual #709

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions tests_sei4/funcional/src/paginas/PaginaAgendamentos.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?php

use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys;

class PaginaAgendamentos extends PaginaTeste
{
/**
* Método contrutor
*
* @return void
*/
public function __construct($test)
{
parent::__construct($test);
}

public function navegarAgendamento()
{
$this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Agendamentos', 'UTF-8', 'ISO-8859-1'));
$this->test->byXPath("//a[@link='infra_agendamento_tarefa_listar']")->click();
}

public function acaoAgendamento($strAgendamento, $acao)
{

$linhasAgendamentos = $this->test->elements($this->test->using('xpath')->value('//table[@class="infraTable"]/tbody/tr'));
unset($linhasAgendamentos[0]);

foreach($linhasAgendamentos as $idx => $linha) {
$colunaComando = $linha->byXPath('./td[2]');

if ($colunaComando->text() === $strAgendamento) {
$this->test->byXPath("(//img[@title='$acao'])[$idx]")->click();
$bolExisteAlerta = $this->alertTextAndClose();
if ($bolExisteAlerta != null) { $this->test->keys(Keys::ENTER);
}
}
}

}

public function executarAgendamento($strAgendamento)
{
$this->acaoAgendamento($strAgendamento, 'Executar Agendamento');
sleep(2);
}

public function desativarAgendamento($strAgendamento)
{
$this->acaoAgendamento($strAgendamento, 'Desativar Agendamento');
sleep(2);
}

public function reativarAgendamento($strAgendamento)
{
$this->acaoAgendamento($strAgendamento, 'Reativar Agendamento');
sleep(2);
}

}
150 changes: 150 additions & 0 deletions tests_sei4/funcional/tests/CancelamentoTramiteIndividualTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
<?php

/**
* Teste que cadastra um processo via fixture, loga no sistema e arquiva esse processo, em seguida manipula as datas de guarda antes de executar o agendamento de verificar
* se o tempo de guarda venceu e em seguida navega até a tela de Avaliacao de Processo para validar que o processo consta nessa tela
*
*/
class CancelamentoTramiteIndividualTest extends FixtureCenarioBaseTestCase
{
public static $remetente;
public static $destinatario;
public static $processoTestePrincipal;
public static $protocoloTestePrincipal;
public static $documentoTeste1;
public static $documentoTeste2;

/**
* @inheritdoc
* @return void
*/
function setUp(): void
{
parent::setUp();

$bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A);
$bancoOrgaoA->execute("update infra_agendamento_tarefa set sin_ativo = ? where comando = ?", array('N', 'PENAgendamentoRN::processarTarefasEnvioPEN'));
$bancoOrgaoA->execute("update infra_agendamento_tarefa set sin_ativo = ? where comando = ?", array('N', 'PENAgendamentoRN::processarTarefasRecebimentoPEN'));

$bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B);
$bancoOrgaoB->execute("update infra_agendamento_tarefa set sin_ativo = ? where comando = ?", array('N', 'PENAgendamentoRN::processarTarefasEnvioPEN'));
$bancoOrgaoB->execute("update infra_agendamento_tarefa set sin_ativo = ? where comando = ?", array('N', 'PENAgendamentoRN::processarTarefasRecebimentoPEN'));

}

/**
* @return void
*/
public function test_tramitar_processo()
{
self::$remetente = $this->definirContextoTeste(CONTEXTO_ORGAO_A);
self::$destinatario = $this->definirContextoTeste(CONTEXTO_ORGAO_B);


// Definição de dados de teste do processo principal
self::$processoTestePrincipal = $this->gerarDadosProcessoTeste(self::$remetente);
self::$documentoTeste1 = $this->gerarDadosDocumentoInternoTeste(self::$remetente);
self::$documentoTeste2 = $this->gerarDadosDocumentoInternoTeste(self::$remetente);

$objProtocoloDTO = $this->cadastrarProcessoFixture(self::$processoTestePrincipal);
$this->cadastrarDocumentoInternoFixture(self::$documentoTeste1, $objProtocoloDTO->getDblIdProtocolo());
$this->cadastrarDocumentoInternoFixture(self::$documentoTeste2, $objProtocoloDTO->getDblIdProtocolo());

// Preencher variaveis que serão usadas posteriormente nos testes
self::$protocoloTestePrincipal = $objProtocoloDTO->getStrProtocoloFormatado();

// Acessar sistema do this->REMETENTE do processo e conclui processo
$this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']);

$this->abrirProcesso(self::$protocoloTestePrincipal);

// Trâmitar Externamento processo para órgão/unidade destinatária
$this->tramitarProcessoExternamente(
self::$protocoloTestePrincipal,
self::$destinatario['REP_ESTRUTURAS'],
self::$destinatario['NOME_UNIDADE'],
self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'],
false
);

}

public function test_cancelar_tramite_processo_status_1_e_2()
{
// Acessar sistema do this->REMETENTE do processo e conclui processo
$this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']);

$this->abrirProcesso(self::$protocoloTestePrincipal);

$this->paginaProcesso->cancelarTramitacaoExterna();
sleep(5);
$mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true);
$mensagemEsperada = mb_convert_encoding("O trâmite externo do processo foi cancelado com sucesso!", 'UTF-8', 'ISO-8859-1');
$this->assertStringContainsString($mensagemEsperada, $mensagemAlerta);
}

public function test_cancelar_tramite_processo_status_3_a_5()
{
$strProtocoloTeste = self::$protocoloTestePrincipal;

// Acessar sistema do this->REMETENTE do processo e conclui processo
$this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']);

$this->abrirProcesso($strProtocoloTeste);

// Trâmitar Externamento processo para órgão/unidade destinatária
$this->tramitarProcessoExternamente(
self::$protocoloTestePrincipal,
self::$destinatario['REP_ESTRUTURAS'],
self::$destinatario['NOME_UNIDADE'],
self::$destinatario['SIGLA_UNIDADE_HIERARQUIA'],
false
);

$this->sairSistema();

$this->acessarSistema(self::$destinatario['URL'], self::$destinatario['SIGLA_UNIDADE'], self::$destinatario['LOGIN'], self::$destinatario['SENHA']);
$this->paginaAgendamentos->navegarAgendamento();
$this->paginaAgendamentos->executarAgendamento('PENAgendamentoRN :: processarTarefasRecebimentoPEN');
sleep(5);

$this->paginaBase->navegarParaControleProcesso();
$this->waitUntil(function ($testCase) use ($strProtocoloTeste) {
sleep(5);
$testCase->refresh();
$this->paginaControleProcesso->abrirProcesso($strProtocoloTeste);
return true;
}, PEN_WAIT_TIMEOUT);

// Esperar o processo tramitar
// sleep(20);
$this->sairSistema();


// Acessar sistema do this->REMETENTE do processo e conclui processo
$this->acessarSistema(self::$remetente['URL'], self::$remetente['SIGLA_UNIDADE'], self::$remetente['LOGIN'], self::$remetente['SENHA']);
$this->abrirProcesso(self::$protocoloTestePrincipal);

$this->paginaProcesso->cancelarTramitacaoExterna();
sleep(5);
$mensagemAlerta = $this->paginaTramitar->alertTextAndClose(true);
$mensagemEsperada = mb_convert_encoding('O sistema destinatário já iniciou o recebimento desse processo, portanto não é possível realizar o cancelamento', 'UTF-8', 'ISO-8859-1');
$this->assertStringContainsString($mensagemEsperada, $mensagemAlerta);

}

public static function tearDownAfterClass(): void
{

parent::tearDownAfterClass();
$bancoOrgaoA = new DatabaseUtils(CONTEXTO_ORGAO_A);
$bancoOrgaoA->execute("update infra_agendamento_tarefa set sin_ativo = ? where comando = ?", array('S', 'PENAgendamentoRN::processarTarefasEnvioPEN'));
$bancoOrgaoA->execute("update infra_agendamento_tarefa set sin_ativo = ? where comando = ?", array('S', 'PENAgendamentoRN::processarTarefasRecebimentoPEN'));

$bancoOrgaoB = new DatabaseUtils(CONTEXTO_ORGAO_B);
$bancoOrgaoB->execute("update infra_agendamento_tarefa set sin_ativo = ? where comando = ?", array('S', 'PENAgendamentoRN::processarTarefasEnvioPEN'));
$bancoOrgaoB->execute("update infra_agendamento_tarefa set sin_ativo = ? where comando = ?", array('S', 'PENAgendamentoRN::processarTarefasRecebimentoPEN'));

}

}
3 changes: 3 additions & 0 deletions tests_sei4/funcional/tests/CenarioBaseTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ class CenarioBaseTestCase extends Selenium2TestCase
protected $paginaEnvioParcialListar = null;
protected $paginaPenHipoteseLegalListar = null;
protected $paginaMapUnidades = null;
protected $paginaAgendamentos = null;


public function setUpPage(): void
{
Expand Down Expand Up @@ -76,6 +78,7 @@ public function setUpPage(): void
$this->paginaEnvioParcialListar = new PaginaEnvioParcialListar($this);
$this->paginaPenHipoteseLegalListar = new PaginaPenHipoteseLegalListar($this);
$this->paginaMapUnidades = new PaginaMapUnidades($this);
$this->paginaAgendamentos = new PaginaAgendamentos($this);
$this->currentWindow()->maximize();
}

Expand Down
60 changes: 60 additions & 0 deletions tests_sei41/funcional/src/paginas/PaginaAgendamentos.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<?php

use PHPUnit\Extensions\Selenium2TestCase\Keys as Keys;

class PaginaAgendamentos extends PaginaTeste
{
/**
* Método contrutor
*
* @return void
*/
public function __construct($test)
{
parent::__construct($test);
}

public function navegarAgendamento()
{
$this->test->byId("txtInfraPesquisarMenu")->value(mb_convert_encoding('Agendamentos', 'UTF-8', 'ISO-8859-1'));
$this->test->byXPath("//a[@link='infra_agendamento_tarefa_listar']")->click();
}

public function acaoAgendamento($strAgendamento, $acao)
{

$linhasAgendamentos = $this->test->elements($this->test->using('xpath')->value('//table[@class="infraTable"]/tbody/tr'));
unset($linhasAgendamentos[0]);

foreach($linhasAgendamentos as $idx => $linha) {
$colunaComando = $linha->byXPath('./td[2]');

if ($colunaComando->text() === $strAgendamento) {
$this->test->byXPath("(//img[@title='$acao'])[$idx]")->click();
$bolExisteAlerta = $this->alertTextAndClose();
if ($bolExisteAlerta != null) { $this->test->keys(Keys::ENTER);
}
}
}

}

public function executarAgendamento($strAgendamento)
{
$this->acaoAgendamento($strAgendamento, 'Executar Agendamento');
sleep(2);
}

public function desativarAgendamento($strAgendamento)
{
$this->acaoAgendamento($strAgendamento, 'Desativar Agendamento');
sleep(2);
}

public function reativarAgendamento($strAgendamento)
{
$this->acaoAgendamento($strAgendamento, 'Reativar Agendamento');
sleep(2);
}

}
Loading
Loading