package br.gov.al.saude.rhd.core.domain;
import static br.gov.al.saude.test.ConstantesTestHelper.CronogramaConstantes.ANO_2013;
import static br.gov.al.saude.test.ConstantesTestHelper.GrupoAvaliacaoConstantes.DESCRICAO_GRUPO_AVALIACAO_TI_GRUPO_DE_DESENVOLVEDORES;
import static br.gov.al.saude.test.ConstantesTestHelper.GrupoAvaliacaoConstantes.DESCRICAO_GRUPO_AVALIACAO_TI_GRUPO_DOS_ANALISTAS;
import static br.gov.al.saude.test.ConstantesTestHelper.GrupoAvaliacaoConstantes.SEQUENCIAL_GRUPO_AVALIACAO_06;
import static br.gov.al.saude.test.ConstantesTestHelper.GrupoAvaliacaoConstantes.SEQUENCIAL_GRUPO_AVALIACAO_ANALISTAS_2013_3;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_PESSOA_JOAO_GALDINO;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_PESSOA_LUCIANO_BARBOSA;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.SEQUENCIAL_PESSOA_LUCIANO_BARBOSA_1;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoServidorConstantes.CARGA_HORARIA_20;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoServidorConstantes.DATA_FINAL_08_05_2013;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoServidorConstantes.DATA_INICIAL_06_05_2013;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoServidorConstantes.DESCRICAO_II_CONGRESSO_MEDICINA_LEGAL;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoServidorConstantes.INSTITUICAO_CENTRO_CONVENCOES;
import static br.gov.al.saude.test.ConstantesTestHelper.ServidorConstantes.CODIGO_UNIDADE_HGE_5;
import static br.gov.al.saude.test.ConstantesTestHelper.ServidorConstantes.DESCRICAO_UNIDADE_HGE;
import static br.gov.al.saude.test.ConstantesTestHelper.ServidorConstantes.DIGITO_MATRICULA_0;
import static br.gov.al.saude.test.ConstantesTestHelper.ServidorConstantes.MATRICULA_JOAO_GALDINO_3352655;
import static br.gov.al.saude.test.ConstantesTestHelper.ServidorConstantes.MATRICULA_LUCIANO_BARBOSA_111201;
import static br.gov.al.saude.test.ConstantesTestHelper.SolicitacaoRevisaoConstantes.DATA_CADASTRO_22_05_2013;
import static br.gov.al.saude.test.ConstantesTestHelper.SolicitacaoRevisaoConstantes.DESCRICAO_SOLICITACAO_NAO_FALTEI_TANTOS_DIAS;
import static br.gov.al.saude.test.ConstantesTestHelper.SolicitacaoRevisaoConstantes.NOTA_AVALIACAO_0;
import net.sf.jasperreports.engine.JasperPrint;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import br.gov.al.saude.rhd.core.domain.emissorrelatorio.relatorio.GeradorRelatorio;
import br.gov.al.saude.rhd.parametros.ParametroEmissaoRelatorioDTO;
import br.gov.al.saude.test.AbstractUnitTests;
import br.gov.al.saude.test.aceitacao.helper.CenarioTestHelper;
import br.gov.al.saude.test.aceitacao.usecase.emitirrelatorioqualificacao.montadorcontexto.MontadorContextoEmitirRelatorioQualificacao;
import br.gov.al.saude.test.aceitacao.usecase.emitirrelatorioreconsideracao.montadorcontexto.MontadorContextoEmitirRelatorioReconsideracao;
import br.gov.al.saude.test.builder.ParametroEmissaoRelatorioBuilder;
import br.gov.al.saude.test.util.VerificadorMensagem;
@RunWith
(SpringJUnit4ClassRunner.
class)
@ContextConfiguration
("classpath:testContext.xml")
public class GeradorRelatorioImplTest
extends AbstractUnitTests
{
@Autowired
private GeradorRelatorio geradorRelatorio
;
@Autowired
private CenarioTestHelper cenarioTestHelper
;
@Autowired
private MontadorContextoEmitirRelatorioQualificacao montadorContextoEmitirRelatorioQualificacao
;
@Autowired
private MontadorContextoEmitirRelatorioReconsideracao montatoContextoEmitirRelatorioReconsideracao
;
@Before
public void inicializarContexto
() {
cenarioTestHelper.
limparBanco();
}
@Test
public void aoEmitirRelatorioQualificacaoDeveriaGerarRelatorio
() throws Exception {
montadorContextoEmitirRelatorioQualificacao.
montarContextoEmitirRelatorioQualificacao();
ParametroEmissaoRelatorioDTO parametroEmissaoRelatorio =
new ParametroEmissaoRelatorioBuilder
()
.
comCronograma(ANO_2013
)
.
comUnidadeExercicio(CODIGO_UNIDADE_HGE_5
)
.
comGrupoAvaliacao(SEQUENCIAL_GRUPO_AVALIACAO_ANALISTAS_2013_3
)
.
comMatriculaServidor(MATRICULA_JOAO_GALDINO_3352655
)
.
comUsuario(SEQUENCIAL_PESSOA_LUCIANO_BARBOSA_1
)
.
build();
JasperPrint relatorioGerado = geradorRelatorio.
emitirRelatorioQualificacao(parametroEmissaoRelatorio
);
String resultado = extrairTextoDoJasperPrint
(relatorioGerado
);
VerificadorMensagem.
verificarMensagemContida("Deveria emitir relatório de qualificações",
new String[] {DESCRICAO_UNIDADE_HGE, DESCRICAO_GRUPO_AVALIACAO_TI_GRUPO_DOS_ANALISTAS,
NOME_PESSOA_JOAO_GALDINO, MATRICULA_JOAO_GALDINO_3352655 +
"-" + DIGITO_MATRICULA_0,
"111.251.445-65",
DESCRICAO_II_CONGRESSO_MEDICINA_LEGAL,
"Participação em Eventos", CARGA_HORARIA_20,
INSTITUICAO_CENTRO_CONVENCOES, DATA_INICIAL_06_05_2013, DATA_FINAL_08_05_2013,
"5",
"5"}, resultado
);
}
@Test
public void aoEmitirRelatorioReconsideracaoDeveriaGerarRelatorio
() throws Exception {
montatoContextoEmitirRelatorioReconsideracao.
montarContextoEmitirRelatorioReconsideracao();
ParametroEmissaoRelatorioDTO parametroEmissaoRelatorio =
new ParametroEmissaoRelatorioBuilder
()
.
comCronograma(ANO_2013
)
.
comUnidadeExercicio(CODIGO_UNIDADE_HGE_5
)
.
comGrupoAvaliacao(SEQUENCIAL_GRUPO_AVALIACAO_06
)
.
comMatriculaServidor(MATRICULA_LUCIANO_BARBOSA_111201
)
.
comUsuario(SEQUENCIAL_PESSOA_LUCIANO_BARBOSA_1
)
.
build();
JasperPrint relatorioGerado = geradorRelatorio.
emitirRelatorioReconsideracao(parametroEmissaoRelatorio
);
String resultado = extrairTextoDoJasperPrint
(relatorioGerado
);
VerificadorMensagem.
verificarMensagemContida("Deveria emitir relatório de reconsiderações",
new String[] {DESCRICAO_UNIDADE_HGE, DESCRICAO_GRUPO_AVALIACAO_TI_GRUPO_DE_DESENVOLVEDORES,
NOME_PESSOA_LUCIANO_BARBOSA, MATRICULA_LUCIANO_BARBOSA_111201 +
"-" + DIGITO_MATRICULA_0,
"208.566.014-21",
"Assiduidade", NOTA_AVALIACAO_0, DATA_CADASTRO_22_05_2013, DESCRICAO_SOLICITACAO_NAO_FALTEI_TANTOS_DIAS
}, resultado
);
}
}