package br.gov.al.saude.rhd.core.domain;
import static br.gov.al.saude.test.ConstantesTestHelper.ServidorConstantes.MATRICULA_LUCIANO_BARBOSA_2301011;
import static br.gov.al.saude.test.ConstantesTestHelper.SolicitacaoRevisaoConstantes.DESCRICAO_SOLICITACAO_NA_SOLICITACAO_ANTERIOR_CORRECAO_EFETUADA_MAS_A_NOTA_CONTINUA_A_MESMA;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JMock;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import br.gov.al.saude.framework.core.interfaces.Cadastrar;
import br.gov.al.saude.framework.core.validador.Validador;
import br.gov.al.saude.rhd.core.domain.avaliacao.AvaliacaoService;
import br.gov.al.saude.rhd.core.domain.avaliacao.impl.AvaliacaoServiceImpl;
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.AvaliacaoDesempenhoRepository;
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.AvaliacaoRepository;
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.ServidorFaltaRepository;
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.ServidorRepository;
import br.gov.al.saude.rhd.model.Avaliacao;
import br.gov.al.saude.rhd.model.AvaliacaoDesempenho;
import br.gov.al.saude.rhd.model.QuestaoAvaliacaoDesempenho;
import br.gov.al.saude.rhd.model.RevisaoAvaliacao;
import br.gov.al.saude.rhd.model.RevisaoAvaliacaoDesempenho;
import br.gov.al.saude.rhd.model.RevisaoAvaliacaoDesempenhoId;
import br.gov.al.saude.rhd.model.ServidorAvaliacao;
import br.gov.al.saude.rhd.model.view.QualificacaoServidorView;
import br.gov.al.saude.rhd.model.view.ServidorDadoFuncionalView;
import br.gov.al.saude.rhd.model.view.ServidorView;
import br.gov.al.saude.rhd.parametros.ParametrosConsultarRevisaoAvaliacaoNaoRespondida;
import br.gov.al.saude.rhd.tipo.TipoAvaliacao;
import br.gov.al.saude.rhd.tipo.TipoAvaliacaoDesempenho;
import br.gov.al.saude.rhd.tipo.TipoQualificacao;
import br.gov.al.saude.rhd.tipo.TipoQuestao;
import br.gov.al.saude.rhd.tipo.TipoRespostaMultiplaEscolha;
import br.gov.al.saude.rhd.tipo.TipoRevisao;
import br.gov.al.saude.sca.model.usuario.view.UsuarioView;
import br.gov.al.saude.test.builder.AvaliacaoDesempenhoBuilder;
import br.gov.al.saude.test.builder.QualificacaoServidorBuilder;
import br.gov.al.saude.test.builder.QuestaoAvaliacaoDesempenhoBuilder;
import br.gov.al.saude.test.builder.RevisaoAvaliacaoBuilder;
import br.gov.al.saude.test.builder.RevisaoAvaliacaoDesempenhoBuilder;
import br.gov.al.saude.test.builder.ServidorAvaliacaoBuilder;
import br.gov.al.saude.test.builder.UsuarioViewBuilder;
import br.gov.al.saude.test.util.CommandSemMensagem;
import br.gov.al.saude.test.util.VerificadorLancamentoException;
@RunWith
(JMock.
class)
public class AvaliacaoServiceImplTest
{
@RunWith
(Suite.
class)
@Suite.
SuiteClasses({
AoVisualizarNotaAvaliacao.
AoCalcularPontuacaoExtra.
class,
AoVisualizarNotaAvaliacao.
AoCalcularNotaAssiduidade.
class,
AoVisualizarNotaAvaliacao.
AoCalcularNotaQualificacao.
class,
AoVisualizarNotaAvaliacao.
AoCalcularNotaDesempenho.
class,
AoVisualizarNotaAvaliacao.
AoCalcularNotaResultadoFinal.
class,
AoVisualizarNotaAvaliacao.
AoConsultarIhSetarSolicitacoesDeRevisaoDasAvaliacoes.
class,
AoSolicitarRevisaoAvaliacao.
class,
AoResponderSolicitacaoRevisao.
class,
AoConsultarRevisaoNaoRespondida.
class,
AoObterQuantidadeRegistrosConsultarRevisaoNaoRespondida.
class,
AoConsultarRevisaoAvaliacaoPorSequencial.
class
})
public static class AllTests
{}
protected String ROLE_AVALIADOR =
"RHD_SERVIDOR_RHD_PAPEL";
protected String ROLE_COORDENADOR =
"RHD_COORDENADOR_RHD_PAPEL";
protected AvaliacaoService avaliacaoService
;
protected ServidorRepository servidorRepositoryMock
;
protected ServidorFaltaRepository servidorFaltaRepositoryMock
;
protected AvaliacaoDesempenhoRepository avaliacaoDesempenhoRepositoryMock
;
protected AvaliacaoRepository avaliacaoRepositoryMock
;
protected Validador validadorMock
;
protected Mockery contexto =
new JUnit4Mockery
();
protected ParametrosConsultarRevisaoAvaliacaoNaoRespondida parametrosConsultarRevisaoAvaliacaoNaoRespondida
;
protected UsuarioView usuario
;
@Before
public void inicializarContexto
(){
servidorRepositoryMock = contexto.
mock(ServidorRepository.
class);
servidorFaltaRepositoryMock = contexto.
mock(ServidorFaltaRepository.
class);
avaliacaoRepositoryMock = contexto.
mock(AvaliacaoRepository.
class);
avaliacaoDesempenhoRepositoryMock = contexto.
mock(AvaliacaoDesempenhoRepository.
class);
validadorMock = contexto.
mock(Validador.
class);
avaliacaoService =
new AvaliacaoServiceImpl
(servidorRepositoryMock, servidorFaltaRepositoryMock,
avaliacaoRepositoryMock, avaliacaoDesempenhoRepositoryMock, validadorMock
);
}
public static class AoVisualizarNotaAvaliacao
extends AvaliacaoServiceImplTest
{
public static class AoConsultarIhSetarSolicitacoesDeRevisaoDasAvaliacoes
extends AoVisualizarNotaAvaliacao
{
@Test
public void aoVisualizarNotaAvaliacaoIhConsultarIhSetarSolicitacaoDeRevisaoAvaliacaoAssiduidadeDeveriaDelegarParaOhRepositorioAvaliacaoRepository
() throws Exception {
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
}
@Test
public void aoVisualizarNotaAvaliacaoIhConsultarIhSetarSolicitacaoDeRevisaoAvaliacaoDesempenhoDeveriaDelegarParaOhRepositorioAvaliacaoRepository
() throws Exception {
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
oneOf
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
}
@Test
public void aoVisualizarNotaAvaliacaoIhConsultarIhSetarSolicitacaoDeRevisaoAvaliacaoQualificacaoDeveriaDelegarParaOhRepositorioAvaliacaoRepository
() throws Exception {
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
oneOf
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
oneOf
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
}
}
public static class AoCalcularPontuacaoExtra
extends AvaliacaoServiceImplTest
{
@Test
public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaOhServidorRepository
() throws Exception{
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
oneOf
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(new ArrayList<QualificacaoServidorView
>()));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
}
@Test
public void aoVisualizarNotaAvaliacaoDeveriaCalcularPontuacaoExtraComo5Porcento
() throws Exception {
QualificacaoServidorView qualificacaoServidorView =
new QualificacaoServidorBuilder
().
comTipoQualificacao(TipoQualificacao.
PRODUCAO_INTELECTUAL.
getValue()).
build();
final List<QualificacaoServidorView
> listaQualificacaoServidorView =
new ArrayList<QualificacaoServidorView
>();
listaQualificacaoServidorView.
add(qualificacaoServidorView
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQualificacaoServidorView
));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(new ServidorAvaliacaoBuilder
().
build());
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar pontuação extra 5%.",
new Double(5),avaliacao.
getNotaPontuacaoExtra());
}
@Test
public void aoVisualizarNotaAvaliacaoDeveriaCalcularPontuacaoExtraComoZeroPorcento
() throws Exception {
QualificacaoServidorView qualificacaoServidorView =
new QualificacaoServidorBuilder
().
comTipoQualificacao(TipoQualificacao.
FORMACAO_ACADEMICA.
getValue()).
build();
final List<QualificacaoServidorView
> listaQualificacaoServidorView =
new ArrayList<QualificacaoServidorView
>();
listaQualificacaoServidorView.
add(qualificacaoServidorView
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQualificacaoServidorView
));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(new ServidorAvaliacaoBuilder
().
build());
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar pontuação extra 0%.",
new Double(0),avaliacao.
getNotaPontuacaoExtra());
}
@Test
public void aoVisualizarNotaAvaliacaoDeveriaCalcularPontuacaoDesempenhoComoZero
() throws Exception {
ServidorView servidorView =
new ServidorView
();
ServidorAvaliacao servidorAvaliacao =
new ServidorAvaliacaoBuilder
().
comServidor(servidorView
).
build();
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(servidorAvaliacao
);
assertEquals
("Deveria calcular nota avaliação desempenho como zero.",
new Double(0), avaliacao.
getNotaDesempenho());
}
}
public static class AoCalcularNotaAssiduidade
extends AoVisualizarNotaAvaliacao
{
@Test
public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaOhServidorFaltaRepository
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(new ArrayList<QualificacaoServidorView
>()));
oneOf
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
}
@Test
public void aoVisualizarNotaAvaliacaoComServidorQuePossuiUmaFaltaDeveriaCalcularAssiduidadeComoVintePorcento
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(1L
));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar assiduidade 20%.",
new Double(20), avaliacao.
getNotaAssiduidade());
}
@Test
public void aoVisualizarNotaAvaliacaoComServidorQueNaoPossuiFaltaDeveriaCalcularAssiduidadeComoVintePorcento
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(0L
));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar assiduidade 20%.",
new Double(20),avaliacao.
getNotaAssiduidade());
}
@Test
public void aoVisualizarNotaAvaliacaoComServidorQuePossuiCincoFaltasDeveriaCalcularAssiduidadeComoZeroPorcento
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(5L
));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar assiduidade 0%.",
new Double(0),avaliacao.
getNotaAssiduidade());
}
@Test
public void aoVisualizarNotaAvaliacaoComServidorQuePossuiSeisFaltasDeveriaCalcularAssiduidadeComoZeroPorcento
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(6L
));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar assiduidade 0%.",
new Double(0),avaliacao.
getNotaAssiduidade());
}
@Test
public void aoVisualizarNotaAvaliacaoComServidorQuePossuiTresFaltasDeveriaCalcularAssiduidadeComoDezPorcento
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(3L
));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar assiduidade 10%.",
new Double(10),avaliacao.
getNotaAssiduidade());
}
@Test
public void aoVisualizarNotaAvaliacaoComServidorQuePossuiQuatroFaltasDeveriaCalcularAssiduidadeComoDezPorcento
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(4L
));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar assiduidade 10%.",
new Double(10),avaliacao.
getNotaAssiduidade());
}
}
public static class AoCalcularNotaQualificacao
extends AoVisualizarNotaAvaliacao
{
@Test
public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaOhAvaliacaoRepository
() throws Exception {
ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao
();
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(new ArrayList<QualificacaoServidorView
>()));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
oneOf
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
avaliacaoService.
visualizarNotaAvaliacao(servidorAvaliacao
);
}
@Test
public void aoVisualizarNotaAvaliacaoComQualificaoComplementarDe40HorasIhCargaHorariaExigida40DeveriaCalcularQualificacaoCom10Porcento
() throws Exception {
ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao
();
QualificacaoServidorView qualificacaoServidorView =
new QualificacaoServidorBuilder
().
comTipoQualificacao(TipoQualificacao.
FORMACAO_COMPLEMENTAR.
getValue()).
comCargaHoraria("40") .
build();
final List<QualificacaoServidorView
> listaQualificacaoServidorView =
new ArrayList<QualificacaoServidorView
>();
listaQualificacaoServidorView.
add(qualificacaoServidorView
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQualificacaoServidorView
));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
will
(returnValue
(40));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(servidorAvaliacao
);
assertEquals
("Deveria retornar assiduidade 10%.",
new Double(10), avaliacao.
getNotaQualificacao());
}
@Test
public void aoVisualizarNotaAvaliacaoComQualificaoComplementarDe40HorasIhParticipaoEmEventoDe10HorasIhCargaHorariaExigida40DeveriaCalcularQualificacaoCom10Porcento
() throws Exception {
ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao
();
QualificacaoServidorView qualificacaoServidorViewCompementar =
new QualificacaoServidorBuilder
().
comTipoQualificacao(TipoQualificacao.
FORMACAO_COMPLEMENTAR.
getValue()).
comCargaHoraria("40") .
build();
QualificacaoServidorView qualificacaoServidorViewParticipacaoEventos =
new QualificacaoServidorBuilder
().
comTipoQualificacao(TipoQualificacao.
PARTICIPACAO_EVENTOS.
getValue()).
comCargaHoraria("10") .
build();
final List<QualificacaoServidorView
> listaQualificacaoServidorView =
new ArrayList<QualificacaoServidorView
>();
listaQualificacaoServidorView.
add(qualificacaoServidorViewCompementar
);
listaQualificacaoServidorView.
add(qualificacaoServidorViewParticipacaoEventos
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQualificacaoServidorView
));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
will
(returnValue
(40));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(servidorAvaliacao
);
assertEquals
("Deveria retornar assiduidade 10%.",
new Double(10),avaliacao.
getNotaQualificacao());
}
@Test
public void aoVisualizarNotaAvaliacaoComQualificaoComplementarDe30HorasIhCargaHorariaExigida40DeveriaCalcularQualificacaoCom7Ponto5Porcento
() throws Exception {
ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao
();
QualificacaoServidorView qualificacaoServidorView =
new QualificacaoServidorBuilder
().
comTipoQualificacao(TipoQualificacao.
FORMACAO_COMPLEMENTAR.
getValue()).
comCargaHoraria("30") .
build();
final List<QualificacaoServidorView
> listaQualificacaoServidorView =
new ArrayList<QualificacaoServidorView
>();
listaQualificacaoServidorView.
add(qualificacaoServidorView
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQualificacaoServidorView
));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
will
(returnValue
(40));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(servidorAvaliacao
);
assertEquals
("Deveria retornar assiduidade 7.5%.",
new Double(7.5),avaliacao.
getNotaQualificacao());
}
@Test
public void aoVisualizarNotaAvaliacaoSemQualificaoComplementarIhCargaHorariaExigida40DeveriaCalcularQualificacaoComZeroPorcento
() throws Exception {
final List<QualificacaoServidorView
> listaQualificacaoServidorView =
new ArrayList<QualificacaoServidorView
>();
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQualificacaoServidorView
));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
will
(returnValue
(40));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar assiduidade 0%.",
new Double(0),avaliacao.
getNotaQualificacao());
}
}
public static class AoCalcularNotaDesempenho
extends AoVisualizarNotaAvaliacao
{
@Test
public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaAvaliacaoDesempenhoRepositoryListarAutoAvaliacao
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
oneOf
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(new ArrayList<QuestaoAvaliacaoDesempenho
>()));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
}});
avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
}
@Test
public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaAvaliacaoDesempenhoRepositoryListarAvaliacao
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
oneOf
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(new ArrayList<QuestaoAvaliacaoDesempenho
>()));
}});
avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
}
@Test
public void aoVisualizarNotaAvaliacaoDeveriaCalcularNovaDesempenhoComo70Porcento
() throws Exception {
AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaEsperado =
new AvaliacaoDesempenhoBuilder
().
comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.
SUPERA_O_ESPERADO.
getValue()).
build();
QuestaoAvaliacaoDesempenho questaoAutoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaEsperado
) .
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AUTOAVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAutoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAutoAvaliacao.
add(questaoAutoAvaliacao
);
QuestaoAvaliacaoDesempenho questaoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaEsperado
) .
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAvaliacao.
add(questaoAvaliacao
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAutoAvaliacao
));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAvaliacao
));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar desempenho 70%.",
new Double(70),avaliacao.
getNotaDesempenho());
}
@Test
public void aoVisualizarNotaAvaliacaoDeveriaCalcularNovaDesempenhoComo59Ponto5Porcento
() throws Exception {
AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaEsperado =
new AvaliacaoDesempenhoBuilder
().
comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.
SUPERA_O_ESPERADO.
getValue()).
build();
AvaliacaoDesempenho avaliacaoDesempenhoRespostaAtendeOhEsperado =
new AvaliacaoDesempenhoBuilder
().
comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.
ATENDE_O_ESPERADO.
getValue()).
build();
QuestaoAvaliacaoDesempenho questaoAutoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaEsperado
) .
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AUTOAVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAutoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAutoAvaliacao.
add(questaoAutoAvaliacao
);
QuestaoAvaliacaoDesempenho questaoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaAtendeOhEsperado
) .
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAvaliacao.
add(questaoAvaliacao
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAutoAvaliacao
));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAvaliacao
));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar desempenho 59.5%.",
new Double(59.5),avaliacao.
getNotaDesempenho());
}
@Test
public void aoVisualizarNotaAvaliacaoDeveriaCalcularNovaDesempenhoComo28Porcento
() throws Exception {
AvaliacaoDesempenho avaliacaoDesempenhoRespostaNaoAtendeOhEsperado =
new AvaliacaoDesempenhoBuilder
().
comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.
NAO_ATENDE_O_ESPERADO.
getValue()).
build();
AvaliacaoDesempenho avaliacaoDesempenhoRespostaAtendeParcialmente =
new AvaliacaoDesempenhoBuilder
().
comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.
ATENDE_PARCIALMENTE_O_ESPERADO.
getValue()).
build();
QuestaoAvaliacaoDesempenho questaoAutoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaNaoAtendeOhEsperado
) .
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AUTOAVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAutoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAutoAvaliacao.
add(questaoAutoAvaliacao
);
QuestaoAvaliacaoDesempenho questaoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaAtendeParcialmente
) .
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAvaliacao.
add(questaoAvaliacao
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAutoAvaliacao
));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAvaliacao
));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar desempenho 28%.",
new Double(28),avaliacao.
getNotaDesempenho());
}
@Test
public void aoVisualizarNotaAvaliacaoDeveriaCalcularNovaDesempenhoComo42Porcento
() throws Exception {
AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaOhEsperado =
new AvaliacaoDesempenhoBuilder
().
comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.
SUPERA_O_ESPERADO.
getValue()).
build();
QuestaoAvaliacaoDesempenho questaoAutoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AUTOAVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAutoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAutoAvaliacao.
add(questaoAutoAvaliacao
);
QuestaoAvaliacaoDesempenho questaoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaOhEsperado
).
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAvaliacao.
add(questaoAvaliacao
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAutoAvaliacao
));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAvaliacao
));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar desempenho 42%.",
new Double(42),avaliacao.
getNotaDesempenho());
}
}
public static class AoCalcularNotaResultadoFinal
extends AoVisualizarNotaAvaliacao
{
@Test
public void aoVisualizarNotaAvaliacaoDeveriaCalcularResultadoFinalComo67Porcento
() throws Exception {
AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaOhEsperado =
new AvaliacaoDesempenhoBuilder
().
comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.
SUPERA_O_ESPERADO.
getValue()).
build();
QuestaoAvaliacaoDesempenho questaoAutoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AUTOAVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAutoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAutoAvaliacao.
add(questaoAutoAvaliacao
);
QuestaoAvaliacaoDesempenho questaoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaOhEsperado
).
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAvaliacao.
add(questaoAvaliacao
);
QualificacaoServidorView qualificacaoServidorView =
new QualificacaoServidorBuilder
().
comTipoQualificacao(TipoQualificacao.
PRODUCAO_INTELECTUAL.
getValue()).
build();
final List<QualificacaoServidorView
> listaQualificacaoServidorView =
new ArrayList<QualificacaoServidorView
>();
listaQualificacaoServidorView.
add(qualificacaoServidorView
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQualificacaoServidorView
));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAutoAvaliacao
));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAvaliacao
));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder
().
build());
assertEquals
("Deveria retornar desempenho 67%.",
new Double(67),avaliacao.
getNotaResultadoFinal());
}
@Test
public void aoVisualizarNotaAvaliacaoDeveriaCalcularResultadoFinalComo100Porcento
() throws Exception {
ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao
();
AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaOhEsperado =
new AvaliacaoDesempenhoBuilder
().
comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.
SUPERA_O_ESPERADO.
getValue()).
build();
QuestaoAvaliacaoDesempenho questaoAutoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaOhEsperado
).
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AUTOAVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAutoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAutoAvaliacao.
add(questaoAutoAvaliacao
);
QuestaoAvaliacaoDesempenho questaoAvaliacao =
new QuestaoAvaliacaoDesempenhoBuilder
().
comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaOhEsperado
).
comTipoAvaliacao(TipoAvaliacaoDesempenho.
AVALIACAO.
getValue()).
comTipoQuestao(TipoQuestao.
MULTIPLA_ESCOLHA.
getValue()).
build();
final List<QuestaoAvaliacaoDesempenho
> listaQuestaoAvaliacao =
new ArrayList<QuestaoAvaliacaoDesempenho
>();
listaQuestaoAvaliacao.
add(questaoAvaliacao
);
QualificacaoServidorView qualificacaoServidorProducaoIntelectual =
new QualificacaoServidorBuilder
().
comTipoQualificacao(TipoQualificacao.
PRODUCAO_INTELECTUAL.
getValue()).
build();
QualificacaoServidorView qualificacaoServidorFormacaoComplementar =
new QualificacaoServidorBuilder
().
comCargaHoraria("40") .
comTipoQualificacao(TipoQualificacao.
FORMACAO_COMPLEMENTAR.
getValue()).
build();
final List<QualificacaoServidorView
> listaQualificacaoServidorView =
new ArrayList<QualificacaoServidorView
>();
listaQualificacaoServidorView.
add(qualificacaoServidorProducaoIntelectual
);
listaQualificacaoServidorView.
add(qualificacaoServidorFormacaoComplementar
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(servidorRepositoryMock
).
listarQualificacaoServidorCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQualificacaoServidorView
));
ignoring
(servidorFaltaRepositoryMock
).
consultarTotalFaltasServidorNoCronograma(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(0L
));
ignoring
(avaliacaoRepositoryMock
).
consultarCargaHorariaExigida(with
(any
(String.
class)), with
(any
(String.
class)));
will
(returnValue
(10));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAutoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAutoAvaliacao
));
ignoring
(avaliacaoDesempenhoRepositoryMock
).
listarQuestaoAvaliacao(with
(any
(ServidorAvaliacao.
class)));
will
(returnValue
(listaQuestaoAvaliacao
));
}});
Avaliacao avaliacao = avaliacaoService.
visualizarNotaAvaliacao(servidorAvaliacao
);
assertEquals
("Deveria retornar desempenho 100%.",
new Double(100),avaliacao.
getNotaResultadoFinal());
}
}
protected ServidorAvaliacao criarServidorAvaliacaoPadrao
() {
ServidorDadoFuncionalView servidorDadoFuncionalView =
new ServidorDadoFuncionalView
();
servidorDadoFuncionalView.
setNumeroMatricula(new Long(MATRICULA_LUCIANO_BARBOSA_2301011
));
ServidorView servidorView =
new ServidorView
();
servidorView.
getListaDadosFuncionaisView().
add(servidorDadoFuncionalView
);
ServidorAvaliacao servidorAvaliacao =
new ServidorAvaliacaoBuilder
()
.
comServidor(servidorView
)
.
build();
return servidorAvaliacao
;
}
}
public static class AoSolicitarRevisaoAvaliacao
extends AvaliacaoServiceImplTest
{
RevisaoAvaliacao revisaoAvaliacaoTipoAssiduidade
;
RevisaoAvaliacao revisaoAvaliacaoTipoDesempenho
;
List<RevisaoAvaliacaoDesempenho
> revisoesAvaliacaoDesempenho
;
@Before
public void inicializarContexto
(){
super.
inicializarContexto();
revisaoAvaliacaoTipoAssiduidade =
new RevisaoAvaliacaoBuilder
().
comTipoAvaliacao(TipoAvaliacao.
ASSIDUIDADE.
getValue()).
build();
revisaoAvaliacaoTipoDesempenho =
new RevisaoAvaliacaoBuilder
().
comTipoAvaliacao(TipoAvaliacao.
DESEMPENHO.
getValue()).
build();
}
@Test
public void aoSolicitarRevisaoAvaliacaoDesempenhoDeveriaDelegarParaOhRepositorioSolicitarRevisaoAvaliacao
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
oneOf
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacao(with
(any
(RevisaoAvaliacao.
class)));
ignoring
(validadorMock
).
validar(revisaoAvaliacaoTipoDesempenho, Cadastrar.
class);
ignoring
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacaoDesempenho(with
(any
(RevisaoAvaliacaoDesempenho.
class)));
}});
avaliacaoService.
solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoDesempenho
);
}
@Test
public void aoSolicitarRevisaoAvaliacaoDesempenhoDeveriaDelegarParaOhRepositorioSolicitarRevisaoAvaliacaoDesempenho
() throws Exception {
revisoesAvaliacaoDesempenho =
new ArrayList<RevisaoAvaliacaoDesempenho
>();
revisoesAvaliacaoDesempenho.
add(new RevisaoAvaliacaoDesempenhoBuilder
()
.
comRevisaoAvaliacaoDesempenhoId(new RevisaoAvaliacaoDesempenhoId
())
.
comSolicitacao(DESCRICAO_SOLICITACAO_NA_SOLICITACAO_ANTERIOR_CORRECAO_EFETUADA_MAS_A_NOTA_CONTINUA_A_MESMA
)
.
build());
revisaoAvaliacaoTipoDesempenho.
setRevisoesAvaliacaoDesempenho(revisoesAvaliacaoDesempenho
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacao(with
(any
(RevisaoAvaliacao.
class)));
ignoring
(validadorMock
).
validar(new RevisaoAvaliacaoDesempenhoBuilder
().
comRevisaoAvaliacaoDesempenhoId(new RevisaoAvaliacaoDesempenhoId
()).
build(), Cadastrar.
class);
oneOf
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacaoDesempenho(with
(any
(RevisaoAvaliacaoDesempenho.
class)));
}});
avaliacaoService.
solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoDesempenho
);
}
@Test
public void aoSolicitarRevisaoAvaliacaoAssiduidadeDeveriaDelegarParaOhAvaliacaoRepositorySolicitarRevisaoAvaliacao
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(validadorMock
).
validar(revisaoAvaliacaoTipoAssiduidade, Cadastrar.
class);
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
oneOf
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacao(with
(any
(RevisaoAvaliacao.
class)));
}});
avaliacaoService.
solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoAssiduidade
);
}
@Test
public void aoSolicitarRevisaoAvaliacaoAssiduidadeDeveriaDelegarParaOhValidador
() throws Exception {
contexto.
checking(new Expectations
(){{
oneOf
(validadorMock
).
validar(revisaoAvaliacaoTipoAssiduidade, Cadastrar.
class);
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacao(with
(any
(RevisaoAvaliacao.
class)));
}});
avaliacaoService.
solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoAssiduidade
);
}
@Test
public void aoSolicitarRevisaoAvaliacaoAssiduidadeDeveriaDelegarParaOhAvaliacaoRepositoryListarRevisaoAvaliacaoServidor
() throws Exception {
contexto.
checking(new Expectations
(){{
ignoring
(validadorMock
).
validar(revisaoAvaliacaoTipoAssiduidade, Cadastrar.
class);
oneOf
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacao(with
(any
(RevisaoAvaliacao.
class)));
}});
avaliacaoService.
solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoAssiduidade
);
}
@Test
public void aoSolicitarRevisaoAvaliacaoAssiduidadeComListaRevisaoComTipoRevisaoRecursoDeveriaLancarExcecao
() throws Exception {
final List<RevisaoAvaliacao
> revisoes =
new ArrayList<RevisaoAvaliacao
>();
RevisaoAvaliacao revisaoAvaliacao =
new RevisaoAvaliacaoBuilder
()
.
comTipoRevisao(TipoRevisao.
RECURSO.
getValue())
.
comTipoAvaliacao(TipoAvaliacao.
ASSIDUIDADE.
getValue())
.
build();
revisoes.
add(revisaoAvaliacao
);
contexto.
checking(new Expectations
(){{
ignoring
(validadorMock
).
validar(revisaoAvaliacaoTipoAssiduidade, Cadastrar.
class);
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
will
(returnValue
(revisoes
));
ignoring
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacao(with
(any
(RevisaoAvaliacao.
class)));
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
avaliacaoService.
solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoAssiduidade
);
}
},
"Já foi realizada anteriormente uma revisão do tipo Recurso para a avaliação Assiduidade.");
}
@Test
public void aoSolicitarRevisaoAvaliacaoSemInformarSolicitacaoDeveriaLancarExcecaoXXX
() throws Exception {
revisoesAvaliacaoDesempenho =
new ArrayList<RevisaoAvaliacaoDesempenho
>();
revisoesAvaliacaoDesempenho.
add(new RevisaoAvaliacaoDesempenhoBuilder
().
build());
revisaoAvaliacaoTipoDesempenho.
setRevisoesAvaliacaoDesempenho(revisoesAvaliacaoDesempenho
);
contexto.
checking(new Expectations
(){{
ignoring
(avaliacaoRepositoryMock
).
listarRevisaoAvaliacaoServidor(with
(any
(ServidorAvaliacao.
class)), with
(any
(String.
class)));
ignoring
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacao(with
(any
(RevisaoAvaliacao.
class)));
ignoring
(validadorMock
).
validar(new RevisaoAvaliacaoDesempenhoBuilder
().
comRevisaoAvaliacaoDesempenhoId(new RevisaoAvaliacaoDesempenhoId
()).
build(), Cadastrar.
class);
never
(avaliacaoRepositoryMock
).
solicitarRevisaoAvaliacaoDesempenho(with
(any
(RevisaoAvaliacaoDesempenho.
class)));
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
avaliacaoService.
solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoDesempenho
);
}
},
"Obrigatório informar a solicitação.");
}
}
public static class AoResponderSolicitacaoRevisao
extends AvaliacaoServiceImplTest
{
@Test
public void aoResponderSolicitacaoRevisaoDeveriaDelegarParaOhRepositorio
() throws Exception {
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
responderSolicitacaoRevisao(with
(new RevisaoAvaliacao
()));
}});
avaliacaoService.
responderSolicitacaoRevisao(new RevisaoAvaliacao
());
}
}
public static class AoConsultarRevisaoNaoRespondida
extends AvaliacaoServiceImplTest
{
@Before
public void setUp
(){
parametrosConsultarRevisaoAvaliacaoNaoRespondida =
new ParametrosConsultarRevisaoAvaliacaoNaoRespondida
();
}
@Test
public void informandoUsuarioComPapelComumDeveriaDelegarParaOhRepositorio
() throws Exception {
usuario =
new UsuarioViewBuilder
().
comRole(ROLE_AVALIADOR
).
build();
parametrosConsultarRevisaoAvaliacaoNaoRespondida.
setUsuario(usuario
);
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
consultarRevisaoReconsideracaoNaoRespondida(with
(same
(parametrosConsultarRevisaoAvaliacaoNaoRespondida
)));
never
(avaliacaoRepositoryMock
).
consultarRevisaoRecursoNaoRespondida(with
(same
(parametrosConsultarRevisaoAvaliacaoNaoRespondida
)));
}});
avaliacaoService.
consultarRevisaoNaoRespondida(parametrosConsultarRevisaoAvaliacaoNaoRespondida
);
}
@Test
public void informandoUsuarioComPapelCoordenadorDeveriaDelegarParaOhRepositorio
() throws Exception {
usuario =
new UsuarioViewBuilder
().
comRole(ROLE_COORDENADOR
).
build();
parametrosConsultarRevisaoAvaliacaoNaoRespondida.
setUsuario(usuario
);
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
consultarRevisaoReconsideracaoNaoRespondida(with
(same
(parametrosConsultarRevisaoAvaliacaoNaoRespondida
)));
oneOf
(avaliacaoRepositoryMock
).
consultarRevisaoRecursoNaoRespondida(with
(same
(parametrosConsultarRevisaoAvaliacaoNaoRespondida
)));
}});
avaliacaoService.
consultarRevisaoNaoRespondida(parametrosConsultarRevisaoAvaliacaoNaoRespondida
);
}
@After
public void tearDown
(){
parametrosConsultarRevisaoAvaliacaoNaoRespondida =
null;
usuario =
null;
}
}
public static class AoObterQuantidadeRegistrosConsultarRevisaoNaoRespondida
extends AvaliacaoServiceImplTest
{
@Before
public void setUp
(){
parametrosConsultarRevisaoAvaliacaoNaoRespondida =
new ParametrosConsultarRevisaoAvaliacaoNaoRespondida
();
}
@Test
public void informandoUsuarioComPapelComumDeveriaDelegarParaOhRepositorio
() throws Exception {
usuario =
new UsuarioViewBuilder
().
comRole(ROLE_AVALIADOR
).
build();
parametrosConsultarRevisaoAvaliacaoNaoRespondida.
setUsuario(usuario
);
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
obterQuantidadeRegistrosConsultarRevisaoReconsideracaoNaoRespondida(with
(same
(parametrosConsultarRevisaoAvaliacaoNaoRespondida
)));
never
(avaliacaoRepositoryMock
).
obterQuantidadeRegistrosConsultarRevisaoRecursoNaoRespondida(with
(same
(parametrosConsultarRevisaoAvaliacaoNaoRespondida
)));
}});
avaliacaoService.
obterQuantidadeRegistrosConsultarRevisaoNaoRespondida(parametrosConsultarRevisaoAvaliacaoNaoRespondida
);
}
@Test
public void informandoUsuarioComPapelCoordenadorDeveriaDelegarParaOhRepositorio
() throws Exception {
usuario =
new UsuarioViewBuilder
().
comRole(ROLE_COORDENADOR
).
build();
parametrosConsultarRevisaoAvaliacaoNaoRespondida.
setUsuario(usuario
);
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
obterQuantidadeRegistrosConsultarRevisaoReconsideracaoNaoRespondida(with
(same
(parametrosConsultarRevisaoAvaliacaoNaoRespondida
)));
oneOf
(avaliacaoRepositoryMock
).
obterQuantidadeRegistrosConsultarRevisaoRecursoNaoRespondida(with
(same
(parametrosConsultarRevisaoAvaliacaoNaoRespondida
)));
}});
avaliacaoService.
obterQuantidadeRegistrosConsultarRevisaoNaoRespondida(parametrosConsultarRevisaoAvaliacaoNaoRespondida
);
}
@After
public void tearDown
(){
parametrosConsultarRevisaoAvaliacaoNaoRespondida =
null;
usuario =
null;
}
}
public static class AoConsultarRevisaoAvaliacaoPorSequencial
extends AvaliacaoServiceImplTest
{
@Test
public void informandoSequencialValidoDeveriaDelegarParaOhRepositorio
() throws Exception {
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
consultarRevisaoAvaliacaoPorSequencial(with
(any
(Long.
class)));
}});
avaliacaoService.
consultarRevisaoAvaliacaoPorSequencial(new Long("1"));
}
@Test
public void informandoSequencialNuloDeveriaDelegarParaOhRepositorio
() throws Exception {
contexto.
checking(new Expectations
(){{
oneOf
(avaliacaoRepositoryMock
).
consultarRevisaoAvaliacaoPorSequencial(with
(any
(Long.
class)));
}});
avaliacaoService.
consultarRevisaoAvaliacaoPorSequencial(null);
}
}
}