package br.gov.al.saude.srv.core.domain;
import static br.gov.al.saude.srv.core.domain.parametro.ParametroService.CODIGO_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO_GRATIFICADA_1;
import static br.gov.al.saude.srv.core.domain.servidor.ServidorService.PAPEL_SERVIDOR_TECNICO_SAFP_SEM_PREFIXO_ROLE;
import static br.gov.al.saude.srv.core.domain.servidor.ServidorService.PAPEL_SERVIDOR_TECNICO_SER_SEM_PREFIXO_ROLE;
import static br.gov.al.saude.srv.core.domain.servidor.ServidorService.PAPEL_SERVIDOR_TECNICO_SIF_SEM_PREFIXO_ROLE;
import static br.gov.al.saude.test.ConstantesTestHelper.ATIVO_SIM;
import static br.gov.al.saude.test.ConstantesTestHelper.DATA_ATUAL_MAIS_1_DIA;
import static br.gov.al.saude.test.ConstantesTestHelper.DATA_ATUAL_MAIS_365_DIA;
import static br.gov.al.saude.test.ConstantesTestHelper.DATA_ATUAL_MENOS_1_DIA;
import static br.gov.al.saude.test.ConstantesTestHelper.DESCRICAO_SIM;
import static br.gov.al.saude.test.ConstantesTestHelper.DIRETORIO_FOTOS;
import static br.gov.al.saude.test.ConstantesTestHelper.CargoConstantes.DESCRICAO_CARGO_ANALISTA_SISTEMAS;
import static br.gov.al.saude.test.ConstantesTestHelper.CargoConstantes.SEQUENCIAL_CARGO_9;
import static br.gov.al.saude.test.ConstantesTestHelper.CargoConstantes.SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13;
import static br.gov.al.saude.test.ConstantesTestHelper.CarreiraConstantes.SEQUENCIAL_CARREIRA_APOIO_SAUDE_9;
import static br.gov.al.saude.test.ConstantesTestHelper.CarreiraConstantes.SEQUENCIAL_CARREIRA_MEDICA_8;
import static br.gov.al.saude.test.ConstantesTestHelper.CursoConstantes.CODIGO_CURSO_MEDICINA_1;
import static br.gov.al.saude.test.ConstantesTestHelper.CursoConstantes.DESCRICAO_CURSO_ANALISE_SISTEMAS;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.CARGA_HORARIA_10;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.CARGA_HORARIA_20;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.DATA_INICIO_01_01_2011;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.DIGITO_MATRICULA_0;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.DIGITO_MATRICULA_8;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NOSSO_NUMERO_SERVIDOR_DADO_FUNCIONAL_105;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_CONTRATO_354_2010;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_CONTRATO_35_2013;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_CONTRATO_905_2013;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_MATRICULA_96754522;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_MATRICULA_9889424;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_ORDEM_1357;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_ORDEM_3542;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.TIPO_CLASSE_A;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.TIPO_NIVEL_4;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.TIPO_REGIME_TRABALHO_NORMAL_N;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalEstagio.NIVEL_ENSINO_SUPERIOR_S;
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalEstagio.OBRIGATORIO_NAO;
import static br.gov.al.saude.test.ConstantesTestHelper.DeficienciaConstantes.SEQUENCIAL_DEFICIENCIA_FISICA_3;
import static br.gov.al.saude.test.ConstantesTestHelper.FuncaoConstantes.DESCRICAO_FUNCAO_ANALISTA_SISTEMAS;
import static br.gov.al.saude.test.ConstantesTestHelper.FuncaoConstantes.NIVEL_AS3;
import static br.gov.al.saude.test.ConstantesTestHelper.FuncaoConstantes.SEQUENCIAL_FUNCAO_ANALISTA_SISTEMAS_19;
import static br.gov.al.saude.test.ConstantesTestHelper.FuncaoConstantes.SEQUENCIAL_FUNCAO_ASSESSOR_TECNICO_23;
import static br.gov.al.saude.test.ConstantesTestHelper.GrauInstrucaoConstantes.SEQUENCIAL_GRAU_INSTRUCAO_SUPERIOR_4;
import static br.gov.al.saude.test.ConstantesTestHelper.InstituicaoConstantes.CODIGO_INSTITUICAO_CESMAC_3;
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.EXTENSAO_ARQUIVO_FOTO_INVALIDA;
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.LIMITE_CARGA_HORARIA_ATINGIDO;
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.LIMITE_VAGAS_FUNCAO_TIPO_GRATIFICADA_FOI_ATINGIDO;
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.MSG_ERRO_JA_EXISTE_SERVIDOR_ATIVO_CADASTRADO_COM_MATRICULA_INFORMADA;
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.MSG_ERRO_NAO_EH_PERMITIDO_ALTERAR_SITUACAO_SERVIDOR_COM_DADO_FUNCIONAL_DIFERENTE_ESTAGIARIO;
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.MSG_ERRO_NAO_EH_PERMITIDO_ALTERAR_SITUACAO_SERVIDOR_COM_DADO_FUNCIONAL_DIFERENTE_PRESTADOR;
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.MSG_ERRO_NUMERO_ORDEM_JA_CADASTRADO;
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.OBRIGATORIO_INFORMAR_FUNCAO;
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO;
import static br.gov.al.saude.test.ConstantesTestHelper.NacionalidadeConstantes.SEQUENCIAL_NACIONALIDADE_BRASILEIRA_1;
import static br.gov.al.saude.test.ConstantesTestHelper.OrgaoConstantes.SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20;
import static br.gov.al.saude.test.ConstantesTestHelper.ParametroConstantes.CODIGO_PARAMETRO_1;
import static br.gov.al.saude.test.ConstantesTestHelper.ParametroConstantes.DESCRICAO_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO;
import static br.gov.al.saude.test.ConstantesTestHelper.ParametroConstantes.VALOR_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.DATA_NASCIMENTO_01_01_1995;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_FOTO_GIF;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_FOTO_JPEG;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_FOTO_PNG;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_PESSOA_JOSE_MARIA;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_PESSOA_YANNE_ALMEIDA;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NUMERO_CPF_03147532062;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NUMERO_CPF_07771278495;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.SEQUENCIAL_PESSOA_13;
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.SEQUENCIAL_PESSOA_ANDERSON_SILVA_7;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.DATA_FINAL_01_03_2012;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.DATA_INICIAL_01_01_2012;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.INSTITUICAO_CESMAC;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.NUMERO_CARGA_HORARIA_10;
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.TIPO_QUALIFICACAO_FORMACAO_ACADEMICA_A;
import static br.gov.al.saude.test.ConstantesTestHelper.SetorConstantes.CODIGO_SETOR_INFORMATICA_100;
import static br.gov.al.saude.test.ConstantesTestHelper.SituacaoServidorConstantes.SEQUENCIAL_SITUACAO_SERVIDOR_ATIVO_1;
import static br.gov.al.saude.test.ConstantesTestHelper.SituacaoServidorConstantes.SEQUENCIAL_SITUACAO_SERVIDOR_EXONERADO_2;
import static br.gov.al.saude.test.ConstantesTestHelper.UnidadeConstantes.SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25;
import static br.gov.al.saude.test.ConstantesTestHelper.UnidadeConstantes.SEQUENCIAL_UNIDADE_SEDE_33;
import static br.gov.al.saude.test.ConstantesTestHelper.UsuarioScaConstantes.SEQUENCIAL_USUARIO_3;
import static br.gov.al.saude.test.ConstantesTestHelper.UtilConstantes.DESCRICAO_SEXO_MASCULINO;
import static br.gov.al.saude.test.ConstantesTestHelper.UtilConstantes.GRAU_PARENTESCO_FILHO_F;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import net.sf.jasperreports.engine.JasperPrint;
import org.jmock.Expectations;
import org.junit.Before;
import org.junit.Test;
import br.gov.al.saude.framework.core.consulta.restricao.Restricoes;
import br.gov.al.saude.framework.core.generic.GenericRepository;
import br.gov.al.saude.framework.core.generic.GenericService;
import br.gov.al.saude.framework.core.interfaces.Alterar;
import br.gov.al.saude.framework.core.interfaces.Cadastrar;
import br.gov.al.saude.framework.core.util.VerificadorUtil;
import br.gov.al.saude.framework.core.validador.Validador;
import br.gov.al.saude.framework.model.PermissaoView;
import br.gov.al.saude.framework.model.PessoaFisicaView;
import br.gov.al.saude.framework.model.UsuarioView;
import br.gov.al.saude.srv.core.domain.servidor.ServidorService;
import br.gov.al.saude.srv.core.domain.servidor.impl.ServidorServiceImpl;
import br.gov.al.saude.srv.core.domain.servidor.relatorio.GeradorRelatorioServidor;
import br.gov.al.saude.srv.core.infrastructure.persistence.jpa.cargo.CargoRepository;
import br.gov.al.saude.srv.core.infrastructure.persistence.jpa.funcao.FuncaoRepository;
import br.gov.al.saude.srv.core.infrastructure.persistence.jpa.parametro.ParametroRepository;
import br.gov.al.saude.srv.core.infrastructure.persistence.jpa.servidor.ServidorRepository;
import br.gov.al.saude.srv.model.FormaIngresso;
import br.gov.al.saude.srv.model.Funcao;
import br.gov.al.saude.srv.model.Orgao;
import br.gov.al.saude.srv.model.Parametro;
import br.gov.al.saude.srv.model.Servidor;
import br.gov.al.saude.srv.model.ServidorDadoFuncional;
import br.gov.al.saude.srv.model.ServidorDadoFuncionalContratadoEstagiario;
import br.gov.al.saude.srv.model.ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo;
import br.gov.al.saude.srv.model.ServidorDadoFuncionalMatricula;
import br.gov.al.saude.srv.model.ServidorDadoFuncionalMatriculaCarreira;
import br.gov.al.saude.srv.model.ServidorDependente;
import br.gov.al.saude.srv.model.ServidorQualificacao;
import br.gov.al.saude.srv.model.SituacaoServidor;
import br.gov.al.saude.srv.model.Unidade;
import br.gov.al.saude.srv.model.dto.CargoDTO;
import br.gov.al.saude.srv.model.dto.FuncaoDTO;
import br.gov.al.saude.srv.model.dto.ParametroConsultaServidorAtivoDTO;
import br.gov.al.saude.srv.model.dto.ParametroConsultaServidorDTO;
import br.gov.al.saude.srv.model.enums.TipoFuncao;
import br.gov.al.saude.srv.model.enums.TipoSituacaoCadastral;
import br.gov.al.saude.srv.model.enums.TipoVinculo;
import br.gov.al.saude.framework.model.SetorView;
import br.gov.al.saude.test.builder.CargoBuilder;
import br.gov.al.saude.test.builder.CarreiraBuilder;
import br.gov.al.saude.test.builder.DeficienciaBuilder;
import br.gov.al.saude.test.builder.FormaIngressoBuilder;
import br.gov.al.saude.test.builder.FuncaoBuilder;
import br.gov.al.saude.test.builder.GrauInstrucaoBuilder;
import br.gov.al.saude.test.builder.NacionalidadeBuilder;
import br.gov.al.saude.test.builder.OrgaoBuilder;
import br.gov.al.saude.test.builder.ServidorBuilder;
import br.gov.al.saude.test.builder.ServidorDadoFuncionalContratadoEstagiarioBuilder;
import br.gov.al.saude.test.builder.ServidorDadoFuncionalContratadoPrestadorProcessoSeletivoBuilder;
import br.gov.al.saude.test.builder.ServidorDadoFuncionalMatriculaBuilder;
import br.gov.al.saude.test.builder.ServidorDadoFuncionalMatriculaCarreiraBuilder;
import br.gov.al.saude.test.builder.ServidorDependenteBuilder;
import br.gov.al.saude.test.builder.ServidorQualificacaoBuilder;
import br.gov.al.saude.test.builder.SetorViewBuilder;
import br.gov.al.saude.test.builder.SituacaoServidorBuilder;
import br.gov.al.saude.test.builder.UnidadeBuilder;
import br.gov.al.saude.test.builder.UsuarioViewBuilder;
import br.gov.al.saude.test.unidade.generic.service.ServiceImplTest;
import br.gov.al.saude.test.util.CommandSemMensagem;
import br.gov.al.saude.test.util.FileUtil;
import br.gov.al.saude.test.util.VerificadorLancamentoException;
public class ServidorServiceImplTest
extends ServiceImplTest
<Servidor
> {
private ServidorService servidorService
;
private ServidorRepository servidorRepositoryMock
;
private CargoRepository cargoRepositoryMock
;
private FuncaoRepository funcaoRepositoryMock
;
private ParametroRepository parametroRepositoryMock
;
private GeradorRelatorioServidor geradorRelatorioServidorMock
;
@Before
public void inicializarContexto
() {
super.
inicializarContexto();
servidorRepositoryMock = getContexto
().
mock(ServidorRepository.
class);
validadorMock = getContexto
().
mock(Validador.
class);
geradorRelatorioServidorMock = getContexto
().
mock(GeradorRelatorioServidor.
class);
cargoRepositoryMock = getContexto
().
mock(CargoRepository.
class);
funcaoRepositoryMock = getContexto
().
mock(FuncaoRepository.
class);
parametroRepositoryMock = getContexto
().
mock(ParametroRepository.
class);
servidorService =
new ServidorServiceImpl
(validadorMock, servidorRepositoryMock, cargoRepositoryMock,
funcaoRepositoryMock, parametroRepositoryMock, geradorRelatorioServidorMock
);
setEntidade
(gerarServidorCompleto
());
}
@
Override
protected GenericService
<Servidor
> getService
() {
return servidorService
;
}
@
Override
protected GenericRepository
<Servidor
> getRepositoryMock
() {
return servidorRepositoryMock
;
}
@Test
public void aoConsultarServidorPorSequencialDeveriaDelegarParaOhRepositorio
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarServidorPorSequencial(with
(new Long(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7
)));
will
(returnValue
(new Servidor
()));
}});
servidorService.
consultarServidorPorSequencial(new Long(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7
));
}
@Test
public void aoConsultarPessoaPorSequencialDeveriaDelegarParaOhRepositorio
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarPessoaPorSequencial(with
(any
(Long.
class)));
will
(returnValue
(new PessoaFisicaView
()));
}});
servidorService.
consultarPessoaPorSequencial(Long.
parseLong(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7
));
}
@Test
public void aoAtualizarServidorLegadoDeveriaDelegarParaOhRepositorio
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
atualizarServidorLegado(with
(any
(Servidor.
class)));
}});
servidorService.
atualizarServidorLegado(new Servidor
());
}
@Test
public void aoEmitirFichaCadastralDeveriaParaOhGeradorRelatorio
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(geradorRelatorioServidorMock
).
emitirFichaCadastral(Long.
parseLong(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7
));
will
(returnValue
(new JasperPrint
()));
}});
servidorService.
emitirFichaCadastral(Long.
parseLong(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7
));
}
@Test
public void aoAtualizarCadastrandoServidorDeveriaDelegarParaRepositorio
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoComVagas
()));
oneOf
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
will
(returnValue
(gerarParametroQuantidadeVagasFuncaoGratificada
()));
oneOf
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
will
(returnValue
(0));
oneOf
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
servidorService.
atualizarServidor(getEntidade
());
}
@Test
public void aoAtualizarCadastrandoServidorComFotoDeveriaDelegarParaRepositorio
() {
getEntidade
().
setFoto(FileUtil.
getConteudoArquivoImagem(DIRETORIO_FOTOS, NOME_FOTO_PNG
));
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoComVagas
()));
oneOf
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
will
(returnValue
(gerarParametroQuantidadeVagasFuncaoGratificada
()));
oneOf
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
will
(returnValue
(0));
oneOf
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
servidorService.
atualizarServidor(getEntidade
());
}
@Test
public void aoAtualizarCadastrandoServidorSemDadosFuncionaisDeveriaDelegarParaRepositorio
() {
getEntidade
().
getListaServidorDadoFuncional().
clear();
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
will
(returnValue
(gerarParametroQuantidadeVagasFuncaoGratificada
()));
oneOf
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
will
(returnValue
(0));
oneOf
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
servidorService.
atualizarServidor(getEntidade
());
}
@Test
public void aoAtualizarCadastrandoServidorComDadosAtivosEeInativosDeveriaDelegarParaRepositorio
() {
final ServidorDadoFuncional dadoFuncionalExonerado = gerarDadoFuncionalTipoMatriculaExonerado
();
dadoFuncionalExonerado.
setServidor(getEntidade
());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalExonerado
);
final ServidorDadoFuncional dadoFuncionalInativo = gerarDadoFuncionalTipoPrestadorInativo
();
dadoFuncionalInativo.
setServidor(getEntidade
());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalInativo
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalExonerado
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalExonerado
)));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoComVagas
()));
oneOf
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
will
(returnValue
(gerarParametroQuantidadeVagasFuncaoGratificada
()));
oneOf
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
will
(returnValue
(0));
oneOf
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
servidorService.
atualizarServidor(getEntidade
());
}
@Test
public void aoAtualizarCadastrandoServidorComDadoFuncionalComissionadoSemFuncaoDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalSemFuncao = gerarDadoFuncionalTipoMatricula
();
((ServidorDadoFuncionalMatricula
)dadoFuncionalSemFuncao
).
setFuncao(null);
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalSemFuncao
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, OBRIGATORIO_INFORMAR_FUNCAO
);
}
@Test
public void aoAtualizarCadastrandoServidorComMatriculaServidorAtivoJaCadastradaDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(gerarServidorMesmaMatricula
()));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, MSG_ERRO_JA_EXISTE_SERVIDOR_ATIVO_CADASTRADO_COM_MATRICULA_INFORMADA +
" Servidor: " + gerarServidorMesmaMatricula
().
getPessoa().
getNumeroDocumento() +
" - " + gerarServidorMesmaMatricula
().
getNomeDaPessoa());
}
@Test
public void aoAtualizarCadastrandoServidorComNumeroOrdemServidorAtivoJaCadastradaDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(true));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, MSG_ERRO_NUMERO_ORDEM_JA_CADASTRADO
);
}
@Test
public void aoAtualizarCadastrandoServidorComCargoDiferenteTipoPrestadorEmMesmaUnidadeLotacaoDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalCargoDiferente = gerarDadoFuncionalTipoPrestador
();
((ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo
)dadoFuncionalCargoDiferente
).
setCargo(new CargoBuilder
().
comCodigo(SEQUENCIAL_CARGO_9
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargoDiferente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO
);
}
@Test
public void aoAtualizarCadastrandoServidorComCargoDiferenteTipoMatriculaEmMesmaUnidadeLotacaoDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalPrestador = gerarDadoFuncionalTipoPrestador
();
dadoFuncionalPrestador.
setServidor(getEntidade
());
List<ServidorDadoFuncional
> listaDadosFuncionais =
new ArrayList<ServidorDadoFuncional
>(getEntidade
().
getListaServidorDadoFuncional());
listaDadosFuncionais.
remove(dadoFuncionalPrestador
);
getEntidade
().
setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional
>(listaDadosFuncionais
));
final ServidorDadoFuncional dadoFuncionalCargoDiferente = gerarDadoFuncionalTipoMatriculaCarreira
();
((ServidorDadoFuncionalMatriculaCarreira
)dadoFuncionalCargoDiferente
).
setCargoCarreira(new CargoBuilder
().
comCodigo(SEQUENCIAL_CARGO_9
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargoDiferente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalCargoDiferente
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalCargoDiferente
)));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO
);
}
@Test
public void aoAtualizarCadastrandoServidorComTipoEfetivoCarreiraMedicaEeTipoMatriculaExcedendoLimite64HorasDeveriaLancarExcecao
() {
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_20
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_CARGA_HORARIA_ATINGIDO
);
}
@Test
public void aoAtualizarCadastrandoServidorComTipoCeletistaCarreiraMedicaEeTipoMatriculaExcedendoLimite64HorasDeveriaLancarExcecao
() {
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCargaHorariaExcedente.
setFormaIngresso(gerarFormaIngresso
(FormaIngresso.
FORMA_INGRESSO_CONCURSADO, TipoVinculo.
CELETISTA));
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_20
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_CARGA_HORARIA_ATINGIDO
);
}
@Test
public void aoAtualizarCadastrandoServidorTipoEfetivoComCarreiraMedicaEeTipoPrestadorExcedendoLimite64HorasDeveriaLancarExcecao
() {
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador
();
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_20
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_CARGA_HORARIA_ATINGIDO
);
}
@Test
public void aoAtualizarCadastrandoServidorComTipoEfetivoEeTipoMatriculaExcedendoLimite60HorasDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCarreiraMedica.
setServidor(getEntidade
());
List<ServidorDadoFuncional
> listaDadosFuncionais =
new ArrayList<ServidorDadoFuncional
>(getEntidade
().
getListaServidorDadoFuncional());
listaDadosFuncionais.
remove(dadoFuncionalCarreiraMedica
);
getEntidade
().
setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional
>(listaDadosFuncionais
));
final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
((ServidorDadoFuncionalMatriculaCarreira
)dadoFuncionalSemCarreiraMedica
).
setCarreira(new CarreiraBuilder
().
comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalSemCarreiraMedica
);
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_20
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_CARGA_HORARIA_ATINGIDO
);
}
@Test
public void aoAtualizarCadastrandoServidorComTipoEfetivoEeTipoPrestadorExcedendoLimite60HorasDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCarreiraMedica.
setServidor(getEntidade
());
List<ServidorDadoFuncional
> listaDadosFuncionais =
new ArrayList<ServidorDadoFuncional
>(getEntidade
().
getListaServidorDadoFuncional());
listaDadosFuncionais.
remove(dadoFuncionalCarreiraMedica
);
getEntidade
().
setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional
>(listaDadosFuncionais
));
final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
((ServidorDadoFuncionalMatriculaCarreira
)dadoFuncionalSemCarreiraMedica
).
setCarreira(new CarreiraBuilder
().
comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalSemCarreiraMedica
);
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador
();
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_20
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_CARGA_HORARIA_ATINGIDO
);
}
@Test
public void aoAtualizarCadastrandoServidorComTipoEfetivoEeTipoPrestadorNaoExcedendoLimite60HorasDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCarreiraMedica.
setServidor(getEntidade
());
List<ServidorDadoFuncional
> listaDadosFuncionais =
new ArrayList<ServidorDadoFuncional
>(getEntidade
().
getListaServidorDadoFuncional());
listaDadosFuncionais.
remove(dadoFuncionalCarreiraMedica
);
getEntidade
().
setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional
>(listaDadosFuncionais
));
final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
((ServidorDadoFuncionalMatriculaCarreira
)dadoFuncionalSemCarreiraMedica
).
setCarreira(new CarreiraBuilder
().
comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalSemCarreiraMedica
);
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador
();
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_10
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(null));
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
},
null);
}
@Test
public void aoAtualizarCadastrandoServidorComTipoEfetivoComCargoSemVagasDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoSemVagas
()));
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
},
"O limite de vagas para o cargo " + gerarCargoSemVagas
().
getDescricao() +
" foi atingido.");
}
@Test
public void aoAtualizarCadastrandoServidorComTipoComissionadoComFuncaoSemVagasDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoSemVagas
()));
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
},
"O limite de vagas para a função " + gerarFuncaoSemVagas
().
getNivel() +
" - " + gerarFuncaoSemVagas
().
getTipo().
getDescricao() +
" foi atingido.");
}
@Test
public void aoAtualizarCadastrandoServidorComQuantidadeFuncaoGratificadaExcedendoLimiteDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoComVagas
()));
oneOf
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
will
(returnValue
(gerarParametroQuantidadeVagasFuncaoGratificada
()));
oneOf
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
will
(returnValue
(1));
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_VAGAS_FUNCAO_TIPO_GRATIFICADA_FOI_ATINGIDO
);
}
@Test
public void aoAtualizarCadastrandoServidorComFotoDeFormatoInvalidoDeveriaLancarExcecao
() {
getEntidade
().
setFoto(FileUtil.
getConteudoArquivoImagem(DIRETORIO_FOTOS, NOME_FOTO_GIF
));
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(false));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Cadastrar.
class}));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, EXTENSAO_ARQUIVO_FOTO_INVALIDA
);
}
@Test
public void aoAtualizarAlterandoServidorDeveriaDelegarParaRepositorio
() {
final ServidorDadoFuncional dadoFuncionalCadastrado = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCadastrado.
setSequencial(new Long(NOSSO_NUMERO_SERVIDOR_DADO_FUNCIONAL_105
));
dadoFuncionalCadastrado.
setCargaHoraria(new Integer(CARGA_HORARIA_10
));
((ServidorDadoFuncionalMatriculaCarreira
)dadoFuncionalCadastrado
).
setSituacaoServidor(new SituacaoServidorBuilder
().
comCodigo(SEQUENCIAL_SITUACAO_SERVIDOR_EXONERADO_2
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCadastrado
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalCadastrado
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalCadastrado
)));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoComVagas
()));
oneOf
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
will
(returnValue
(gerarParametroQuantidadeVagasFuncaoGratificada
()));
oneOf
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
will
(returnValue
(0));
oneOf
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
servidorService.
atualizarServidor(getEntidade
());
}
@Test
public void aoAtualizarAlterandoServidorComFotoDeveriaDelegarParaRepositorio
() {
getEntidade
().
setFoto(FileUtil.
getConteudoArquivoImagem(DIRETORIO_FOTOS, NOME_FOTO_JPEG
));
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoComVagas
()));
oneOf
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
will
(returnValue
(gerarParametroQuantidadeVagasFuncaoGratificada
()));
oneOf
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
will
(returnValue
(0));
oneOf
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
servidorService.
atualizarServidor(getEntidade
());
}
@Test
public void aoAtualizarAlterandoServidorComDadoFuncionalComissionadoSemFuncaoDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalSemFuncao = gerarDadoFuncionalTipoMatricula
();
((ServidorDadoFuncionalMatricula
)dadoFuncionalSemFuncao
).
setFuncao(null);
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalSemFuncao
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
cadastrar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, OBRIGATORIO_INFORMAR_FUNCAO
);
}
@Test
public void aoAtualizarAlterandoServidorComMatriculaServidorAtivoJaCadastradaDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(gerarServidorMesmaMatricula
()));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, MSG_ERRO_JA_EXISTE_SERVIDOR_ATIVO_CADASTRADO_COM_MATRICULA_INFORMADA +
" Servidor: " + gerarServidorMesmaMatricula
().
getPessoa().
getNumeroDocumento() +
" - " + gerarServidorMesmaMatricula
().
getNomeDaPessoa());
}
@Test
public void aoAtualizarAlterandoServidorComNumeroOrdemServidorAtivoJaCadastradaDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(true));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, MSG_ERRO_NUMERO_ORDEM_JA_CADASTRADO
);
}
@Test
public void aoAtualizarAlterandoServidorComCargoDiferenteTipoPrestadorEmMesmaUnidadeLotacaoDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalCargoDiferente = gerarDadoFuncionalTipoPrestador
();
((ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo
)dadoFuncionalCargoDiferente
).
setCargo(new CargoBuilder
().
comCodigo(SEQUENCIAL_CARGO_9
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargoDiferente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO
);
}
@Test
public void aoAtualizarAlterandoServidorComCargoDiferenteTipoMatriculaEmMesmaUnidadeLotacaoDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalPrestador = gerarDadoFuncionalTipoPrestador
();
dadoFuncionalPrestador.
setServidor(getEntidade
());
List<ServidorDadoFuncional
> listaDadosFuncionais =
new ArrayList<ServidorDadoFuncional
>(getEntidade
().
getListaServidorDadoFuncional());
listaDadosFuncionais.
remove(dadoFuncionalPrestador
);
getEntidade
().
setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional
>(listaDadosFuncionais
));
final ServidorDadoFuncional dadoFuncionalCargoDiferente = gerarDadoFuncionalTipoMatriculaCarreira
();
((ServidorDadoFuncionalMatriculaCarreira
)dadoFuncionalCargoDiferente
).
setCargoCarreira(new CargoBuilder
().
comCodigo(SEQUENCIAL_CARGO_9
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargoDiferente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalCargoDiferente
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalCargoDiferente
)));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO
);
}
@Test
public void aoAtualizarAlterandoServidorComTipoEfetivoCarreiraMedicaEeTipoMatriculaExcedendoLimite64HorasDeveriaLancarExcecao
() {
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_20
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_CARGA_HORARIA_ATINGIDO
);
}
@Test
public void aoAtualizarAlterandoServidorTipoEfetivoComCarreiraMedicaEeTipoPrestadorExcedendoLimite64HorasDeveriaLancarExcecao
() {
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador
();
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_20
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_CARGA_HORARIA_ATINGIDO
);
}
@Test
public void aoAtualizarAlterandoServidorComTipoEfetivoEeTipoMatriculaExcedendoLimite60HorasDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCarreiraMedica.
setServidor(getEntidade
());
List<ServidorDadoFuncional
> listaDadosFuncionais =
new ArrayList<ServidorDadoFuncional
>(getEntidade
().
getListaServidorDadoFuncional());
listaDadosFuncionais.
remove(dadoFuncionalCarreiraMedica
);
getEntidade
().
setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional
>(listaDadosFuncionais
));
final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
((ServidorDadoFuncionalMatriculaCarreira
)dadoFuncionalSemCarreiraMedica
).
setCarreira(new CarreiraBuilder
().
comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalSemCarreiraMedica
);
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_20
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalCargaHorariaExcedente
)));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_CARGA_HORARIA_ATINGIDO
);
}
@Test
public void aoAtualizarAlterandoServidorComTipoEfetivoEeTipoPrestadorExcedendoLimite60HorasDeveriaLancarExcecao
() {
ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
dadoFuncionalCarreiraMedica.
setServidor(getEntidade
());
List<ServidorDadoFuncional
> listaDadosFuncionais =
new ArrayList<ServidorDadoFuncional
>(getEntidade
().
getListaServidorDadoFuncional());
listaDadosFuncionais.
remove(dadoFuncionalCarreiraMedica
);
getEntidade
().
setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional
>(listaDadosFuncionais
));
final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira
();
((ServidorDadoFuncionalMatriculaCarreira
)dadoFuncionalSemCarreiraMedica
).
setCarreira(new CarreiraBuilder
().
comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9
).
build());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalSemCarreiraMedica
);
final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador
();
dadoFuncionalCargaHorariaExcedente.
setCargaHoraria(new Integer(CARGA_HORARIA_20
));
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalCargaHorariaExcedente
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(dadoFuncionalSemCarreiraMedica
)));
will
(returnValue
(false));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_CARGA_HORARIA_ATINGIDO
);
}
@Test
public void aoAtualizarAlterandoServidorComTipoEfetivoComCargoSemVagasDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoSemVagas
()));
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
},
"O limite de vagas para o cargo " + gerarCargoSemVagas
().
getDescricao() +
" foi atingido.");
}
@Test
public void aoAtualizarAlterandoServidorComTipoComissionadoComFuncaoSemVagasDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoSemVagas
()));
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
},
"O limite de vagas para a função " + gerarFuncaoSemVagas
().
getNivel() +
" - " + gerarFuncaoSemVagas
().
getTipo().
getDescricao() +
" foi atingido.");
}
@Test
public void aoAtualizarAlterandoServidorComQuantidadeFuncaoGratificadaExcedendoLimiteDeveriaLancarExcecao
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoComVagas
()));
oneOf
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
will
(returnValue
(gerarParametroQuantidadeVagasFuncaoGratificada
()));
oneOf
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
will
(returnValue
(1));
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, LIMITE_VAGAS_FUNCAO_TIPO_GRATIFICADA_FOI_ATINGIDO
);
}
@Test
public void aoAtualizarAlterandoServidorComFotoDeFormatoInvalidoDeveriaLancarExcecao
() {
getEntidade
().
setFoto(FileUtil.
getConteudoArquivoImagem(DIRETORIO_FOTOS, NOME_FOTO_GIF
));
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste
(getEntidade
()));
will
(returnValue
(true));
oneOf
(getValidadorMock
()).
validar(with
(getEntidade
()), with
(new Class<?>[]{Alterar.
class}));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
never
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
never
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
never
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
never
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
never
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
atualizarServidor(getEntidade
());
}
}, EXTENSAO_ARQUIVO_FOTO_INVALIDA
);
}
@Test
public void aoAlterarSituacaoCadastralServidorDeveriaDelegarParaRepositorio
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
servidorService.
alterarSituacaoFichaCadastral(getEntidade
(), TipoSituacaoCadastral.
HOMOLOGADO);
}
@Test
public void aoAlterarSituacaoCadastralServidorComUsuarioTecnicoSEREeDadoFuncionalApenasEstagiarioDeveriaDelegarParaRepositorio
() {
getEntidade
().
setUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissaoTecnicoSER
());
getEntidade
().
getListaServidorDadoFuncional().
clear();
ServidorDadoFuncional dadoFuncionalEstagiario = gerarDadoFuncionalTipoEstagiario
();
dadoFuncionalEstagiario.
setServidor(getEntidade
());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalEstagiario
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
servidorService.
alterarSituacaoFichaCadastral(getEntidade
(), TipoSituacaoCadastral.
HOMOLOGADO);
}
@Test
public void aoAlterarSituacaoCadastralServidorComUsuarioTecnicoSAFPEeDadoFuncionalApenasPrestadorDeveriaDelegarParaRepositorio
() {
getEntidade
().
setUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissaoTecnicoSAFP
());
getEntidade
().
getListaServidorDadoFuncional().
clear();
ServidorDadoFuncional dadoFuncionalPrestador = gerarDadoFuncionalTipoPrestador
();
dadoFuncionalPrestador.
setServidor(getEntidade
());
getEntidade
().
getListaServidorDadoFuncional().
add(dadoFuncionalPrestador
);
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
servidorService.
alterarSituacaoFichaCadastral(getEntidade
(), TipoSituacaoCadastral.
HOMOLOGADO);
}
@Test
public void aoAlterarSituacaoCadastralServidorComUsuarioTecnicoSEREeDadoFuncionalDiferenteEstagiarioDeveriaLancarExcecao
() {
getEntidade
().
setUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissaoTecnicoSER
());
getContexto
().
checking(new Expectations
(){{
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
alterarSituacaoFichaCadastral(getEntidade
(), TipoSituacaoCadastral.
HOMOLOGADO);
}
}, MSG_ERRO_NAO_EH_PERMITIDO_ALTERAR_SITUACAO_SERVIDOR_COM_DADO_FUNCIONAL_DIFERENTE_ESTAGIARIO
);
}
@Test
public void aoAlterarSituacaoCadastralServidorComUsuarioTecnicoSAFPEeDadoFuncionalDiferentePrestadorDeveriaLancarExcecao
() {
getEntidade
().
setUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissaoTecnicoSAFP
());
getContexto
().
checking(new Expectations
(){{
never
(servidorRepositoryMock
).
alterar(getEntidade
());
}});
VerificadorLancamentoException.
verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem
() {
@
Override
public void execute
() throws Exception {
servidorService.
alterarSituacaoFichaCadastral(getEntidade
(), TipoSituacaoCadastral.
HOMOLOGADO);
}
}, MSG_ERRO_NAO_EH_PERMITIDO_ALTERAR_SITUACAO_SERVIDOR_COM_DADO_FUNCIONAL_DIFERENTE_PRESTADOR
);
}
@Test
public void aoConsultarDeveriaDelegarParaOhRepositorio
() throws Exception {
final ParametroConsultaServidorDTO parametroConsultaServidorDTO =
new ParametroConsultaServidorDTO
();
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultar(parametroConsultaServidorDTO
);
}});
servidorService.
consultar(parametroConsultaServidorDTO
);
}
@Test
public void aoObterQuantidadeDeRegistrosDeveriaDelegarParaOhRepositorio
() throws Exception {
final ParametroConsultaServidorDTO parametroConsultaServidorDTO =
new ParametroConsultaServidorDTO
();
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
obterQuantidadeDeRegistros(parametroConsultaServidorDTO
);
}});
servidorService.
obterQuantidadeDeRegistros(parametroConsultaServidorDTO
);
}
@Test
public void aoConsultarServidorPorNossoNumeroDeveriaDelegarParaOhServico
() throws Exception {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarServidorPorNossoNumero(with
(any
(Long.
class)));
}});
servidorService.
consultarServidorPorNossoNumero(new Long(1l
));
}
@Test
public void aoConsultarServidorAtivoDeveriaDelegarParaOhRepositorio
() throws Exception {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarServidorUnidade(with
(any
(ParametroConsultaServidorAtivoDTO.
class)));
}});
servidorService.
consultarServidorAtivo(new ParametroConsultaServidorAtivoDTO
());
}
@Test
public void aoConsultarServidorNaoPendenteDeveriaDelegarParaOhRepositorio
() throws Exception {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarServidorUnidade(with
(any
(ParametroConsultaServidorAtivoDTO.
class)));
}});
servidorService.
consultarServidorNaoPendente(new ParametroConsultaServidorAtivoDTO
());
}
@Test
public void aoObterQuantidadeDeRegistrosParaConsultarServidorAtivoDeveriaDelegarParaOhRepositorio
() throws Exception {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
obterQuantidadeDeRegistrosParaServidorUnidade(with
(any
(ParametroConsultaServidorAtivoDTO.
class)));
}});
servidorService.
obterQuantidadeDeRegistrosParaConsultarServidorAtivo(new ParametroConsultaServidorAtivoDTO
());
}
@Test
public void aoObterQuantidadeDeRegistrosParaConsultarServidorNaoPendenteDeveriaDelegarParaOhRepositorio
() throws Exception {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
obterQuantidadeDeRegistrosParaServidorUnidade(with
(any
(ParametroConsultaServidorAtivoDTO.
class)));
}});
servidorService.
obterQuantidadeDeRegistrosParaConsultarServidorNaoPendente(new ParametroConsultaServidorAtivoDTO
());
}
@
Override
protected void expectativasDeNegocioFuncionalidadeCadastrar
() {
expectativasDeNegocioFuncionalidadesCadastrarEeAlterar
();
};
@
Override
protected void expectativasDeNegocioFuncionalidadeAlterar
() {
expectativasDeNegocioFuncionalidadesCadastrarEeAlterar
();
}
private void expectativasDeNegocioFuncionalidadesCadastrarEeAlterar
() {
getContexto
().
checking(new Expectations
(){{
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarServidorPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmaMatricula
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(null));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatricula
())));
will
(returnValue
(false));
oneOf
(servidorRepositoryMock
).
consultarSeExisteDadoFuncionalPassandoRestricoes(with
(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(gerarDadoFuncionalTipoMatriculaCarreira
())));
will
(returnValue
(false));
oneOf
(cargoRepositoryMock
).
consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira
)gerarDadoFuncionalTipoMatriculaCarreira
()).
getCargoCarreira());
will
(returnValue
(gerarCargoComVagas
()));
oneOf
(funcaoRepositoryMock
).
consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula
)gerarDadoFuncionalTipoMatricula
()).
getFuncao());
will
(returnValue
(gerarFuncaoComVagas
()));
oneOf
(parametroRepositoryMock
).
consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada
());
will
(returnValue
(gerarParametroQuantidadeVagasFuncaoGratificada
()));
oneOf
(servidorRepositoryMock
).
obterQuantidadeRegistrosParaFuncaoGratificada();
will
(returnValue
(0));
}});
}
private Servidor gerarServidorMesmaMatricula
() {
Servidor servidor =
new ServidorBuilder
()
.
comPessoa(gerarPessoaFisicaYanne
())
.
build();
return servidor
;
}
private PessoaFisicaView gerarPessoaFisicaYanne
() {
PessoaFisicaView pessoa =
new PessoaFisicaView
();
pessoa.
setSequencialPessoa(new Long(SEQUENCIAL_PESSOA_13
));
pessoa.
setNumeroDocumento(NUMERO_CPF_03147532062
);
pessoa.
setNomePessoa(NOME_PESSOA_YANNE_ALMEIDA
);
return pessoa
;
}
private Servidor gerarServidorCompleto
() {
Servidor servidor =
new ServidorBuilder
()
.
comGrauInstrucao(new GrauInstrucaoBuilder
().
comCodigo(SEQUENCIAL_GRAU_INSTRUCAO_SUPERIOR_4
).
build())
.
comNacionalidade(new NacionalidadeBuilder
().
comCodigo(SEQUENCIAL_NACIONALIDADE_BRASILEIRA_1
).
build())
.
comDeficiencia(new DeficienciaBuilder
().
comCodigo(SEQUENCIAL_DEFICIENCIA_FISICA_3
).
build())
.
comDependente(gerarDependentes
())
.
comQualificacao(gerarQualificacoes
())
.
comDadoFuncional(gerarDadosFuncionais
())
.
comUsuarioCadastro(SEQUENCIAL_USUARIO_3
)
.
comUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissoesCompletas
())
.
build();
return servidor
;
}
private Set<ServidorDependente
> gerarDependentes
() {
Set<ServidorDependente
> dependentes =
new HashSet<ServidorDependente
>();
ServidorDependente servidorDependente =
new ServidorDependenteBuilder
()
.
comNome(NOME_PESSOA_JOSE_MARIA
)
.
comCPF(NUMERO_CPF_07771278495
)
.
comDataNascimento(DATA_NASCIMENTO_01_01_1995
)
.
comSexo(DESCRICAO_SEXO_MASCULINO
)
.
comTipoParentesco(GRAU_PARENTESCO_FILHO_F
)
.
build();
dependentes.
add(servidorDependente
);
return dependentes
;
}
private Set<ServidorQualificacao
> gerarQualificacoes
() {
Set<ServidorQualificacao
> qualificacoes =
new HashSet<ServidorQualificacao
>();
ServidorQualificacao servidorQualificacao =
new ServidorQualificacaoBuilder
()
.
comTipoQualificacao(TIPO_QUALIFICACAO_FORMACAO_ACADEMICA_A
)
.
comDescricao(DESCRICAO_CURSO_ANALISE_SISTEMAS
)
.
comInstituicao(INSTITUICAO_CESMAC
)
.
comCargaHoraria(NUMERO_CARGA_HORARIA_10
)
.
comDataInicial(DATA_INICIAL_01_01_2012
)
.
comDataFinal(DATA_FINAL_01_03_2012
)
.
build();
qualificacoes.
add(servidorQualificacao
);
return qualificacoes
;
}
private Set<ServidorDadoFuncional
> gerarDadosFuncionais
() {
Set<ServidorDadoFuncional
> dadosFuncionais =
new HashSet<ServidorDadoFuncional
>();
dadosFuncionais.
add(gerarDadoFuncionalTipoMatricula
());
dadosFuncionais.
add(gerarDadoFuncionalTipoMatriculaCarreira
());
dadosFuncionais.
add(gerarDadoFuncionalTipoEstagiario
());
dadosFuncionais.
add(gerarDadoFuncionalTipoPrestador
());
return dadosFuncionais
;
}
private FormaIngresso gerarFormaIngresso
(Integer codigo, TipoVinculo tipoVinculo
) {
return new FormaIngressoBuilder
().
comCodigo(codigo.
toString()).
comTipoVinculo(tipoVinculo
).
build();
}
private Orgao gerarOrgao
(String codigoOrgao
) {
return new OrgaoBuilder
().
comSequencial(codigoOrgao
).
build();
}
private Unidade gerarUnidade
(String codigoUnidade
) {
return new UnidadeBuilder
().
comCodigo(codigoUnidade
).
build();
}
private SetorView gerarSetor
(String codigoSetor
) {
return new SetorViewBuilder
().
comCodigo(codigoSetor
).
build();
}
private Funcao gerarFuncaoGratificada
(String codigo
) {
return new FuncaoBuilder
().
comCodigo(codigo
).
comTipoFuncao(TipoFuncao.
FUNCAO_GRATIFICADA.
getValue()).
comAtivo(ATIVO_SIM
).
build();
}
private Funcao gerarFuncaoCargoComissionado
(String codigo
) {
return new FuncaoBuilder
().
comCodigo(codigo
).
comTipoFuncao(TipoFuncao.
CARGO_COMISSIONADO.
getValue()).
comAtivo(ATIVO_SIM
).
build();
}
private ServidorDadoFuncional gerarDadoFuncionalTipoMatricula
() {
ServidorDadoFuncionalMatricula servidorDadoFuncional =
new ServidorDadoFuncionalMatriculaBuilder
()
.
comMatricula(NUMERO_MATRICULA_96754522
)
.
comDigitoMatricula(DIGITO_MATRICULA_0
)
.
comNumeroOrdem(NUMERO_ORDEM_3542
)
.
comSituacaoServidor(SEQUENCIAL_SITUACAO_SERVIDOR_ATIVO_1
)
.
comDataNomeacao(DATA_INICIO_01_01_2011
)
.
comDataPosse(DATA_INICIO_01_01_2011
)
.
comDataExercicio(DATA_INICIO_01_01_2011
)
.
comFuncao(gerarFuncaoGratificada
(SEQUENCIAL_FUNCAO_ANALISTA_SISTEMAS_19
))
.
comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
)
.
comTipoRegimeTrabalho(TIPO_REGIME_TRABALHO_NORMAL_N
)
.
comFormaIngresso(gerarFormaIngresso
(FormaIngresso.
FORMA_INGRESSO_COMISSIONADO, TipoVinculo.
COMISSIONADO))
.
comDataInicio(DATA_INICIO_01_01_2011
)
.
comCargaHoraria(CARGA_HORARIA_10
)
.
comOrgaoLotacao(gerarOrgao
(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
))
.
comUnidadeLotacao(gerarUnidade
(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25
))
.
comSetor(gerarSetor
(CODIGO_SETOR_INFORMATICA_100
))
.
build();
return servidorDadoFuncional
;
}
private ServidorDadoFuncional gerarDadoFuncionalTipoMatriculaExonerado
() {
ServidorDadoFuncionalMatricula servidorDadoFuncional =
new ServidorDadoFuncionalMatriculaBuilder
()
.
comMatricula(NUMERO_MATRICULA_9889424
)
.
comDigitoMatricula(DIGITO_MATRICULA_8
)
.
comNumeroOrdem(NUMERO_ORDEM_1357
)
.
comSituacaoServidor(SEQUENCIAL_SITUACAO_SERVIDOR_EXONERADO_2
)
.
comDataNomeacao(DATA_INICIO_01_01_2011
)
.
comDataPosse(DATA_INICIO_01_01_2011
)
.
comDataExercicio(DATA_INICIO_01_01_2011
)
.
comFuncao(gerarFuncaoCargoComissionado
(SEQUENCIAL_FUNCAO_ASSESSOR_TECNICO_23
))
.
comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
)
.
comTipoRegimeTrabalho(TIPO_REGIME_TRABALHO_NORMAL_N
)
.
comFormaIngresso(gerarFormaIngresso
(FormaIngresso.
FORMA_INGRESSO_COMISSIONADO, TipoVinculo.
COMISSIONADO))
.
comDataInicio(DATA_INICIO_01_01_2011
)
.
comCargaHoraria(CARGA_HORARIA_10
)
.
comOrgaoLotacao(gerarOrgao
(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
))
.
comUnidadeLotacao(gerarUnidade
(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25
))
.
comSetor(gerarSetor
(CODIGO_SETOR_INFORMATICA_100
))
.
build();
return servidorDadoFuncional
;
}
private ServidorDadoFuncional gerarDadoFuncionalTipoMatriculaCarreira
() {
ServidorDadoFuncionalMatriculaCarreira servidorDadoFuncional =
new ServidorDadoFuncionalMatriculaCarreiraBuilder
()
.
comUnidadeExercicio(SEQUENCIAL_UNIDADE_SEDE_33
)
.
comCargo(SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13
)
.
comCarreira(SEQUENCIAL_CARREIRA_MEDICA_8
)
.
comTipoClasse(TIPO_CLASSE_A
)
.
comTipoNivel(TIPO_NIVEL_4
)
.
comMatricula(NUMERO_MATRICULA_96754522
)
.
comDigitoMatricula(DIGITO_MATRICULA_0
)
.
comNumeroOrdem(NUMERO_ORDEM_3542
)
.
comSituacaoServidor(SEQUENCIAL_SITUACAO_SERVIDOR_ATIVO_1
)
.
comDataNomeacao(DATA_INICIO_01_01_2011
)
.
comDataPosse(DATA_INICIO_01_01_2011
)
.
comDataExercicio(DATA_INICIO_01_01_2011
)
.
comFuncao(gerarFuncaoGratificada
(SEQUENCIAL_FUNCAO_ANALISTA_SISTEMAS_19
))
.
comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
)
.
comTipoRegimeTrabalho(TIPO_REGIME_TRABALHO_NORMAL_N
)
.
comFormaIngresso(gerarFormaIngresso
(FormaIngresso.
FORMA_INGRESSO_CONCURSADO, TipoVinculo.
EFETIVO))
.
comDataInicio(DATA_INICIO_01_01_2011
)
.
comCargaHoraria(CARGA_HORARIA_10
)
.
comOrgaoLotacao(gerarOrgao
(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
))
.
comUnidadeLotacao(gerarUnidade
(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25
))
.
comSetor(gerarSetor
(CODIGO_SETOR_INFORMATICA_100
))
.
build();
return servidorDadoFuncional
;
}
private ServidorDadoFuncional gerarDadoFuncionalTipoEstagiario
() {
ServidorDadoFuncionalContratadoEstagiario servidorDadoFuncional =
new ServidorDadoFuncionalContratadoEstagiarioBuilder
()
.
comInstituicao(CODIGO_INSTITUICAO_CESMAC_3
)
.
comCursoEstagio(CODIGO_CURSO_MEDICINA_1
)
.
comIndicadorObrigatorio(OBRIGATORIO_NAO
)
.
comIndicadorRemunerado(DESCRICAO_SIM
)
.
comTipoNivel(NIVEL_ENSINO_SUPERIOR_S
)
.
comNumeroContrato(NUMERO_CONTRATO_354_2010
)
.
comDataFim(DATA_ATUAL_MAIS_365_DIA
)
.
comDataRescisao(DATA_ATUAL_MAIS_1_DIA
)
.
comFormaIngresso(gerarFormaIngresso
(FormaIngresso.
FORMA_INGRESSO_ESTAGIARIO, TipoVinculo.
CONTRATADO))
.
comDataInicio(DATA_INICIO_01_01_2011
)
.
comCargaHoraria(CARGA_HORARIA_10
)
.
comOrgaoLotacao(gerarOrgao
(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
))
.
comUnidadeLotacao(gerarUnidade
(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25
))
.
comSetor(gerarSetor
(CODIGO_SETOR_INFORMATICA_100
))
.
build();
return servidorDadoFuncional
;
}
private ServidorDadoFuncional gerarDadoFuncionalTipoPrestador
() {
ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo servidorDadoFuncional =
new ServidorDadoFuncionalContratadoPrestadorProcessoSeletivoBuilder
()
.
comCargo(SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13
)
.
comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
)
.
comNumeroContrato(NUMERO_CONTRATO_35_2013
)
.
comDataFim(DATA_ATUAL_MAIS_1_DIA
)
.
comFormaIngresso(gerarFormaIngresso
(FormaIngresso.
FORMA_INGRESSO_PRESTADOR, TipoVinculo.
CONTRATADO))
.
comDataInicio(DATA_INICIO_01_01_2011
)
.
comCargaHoraria(CARGA_HORARIA_20
)
.
comOrgaoLotacao(gerarOrgao
(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
))
.
comUnidadeLotacao(gerarUnidade
(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25
))
.
comSetor(gerarSetor
(CODIGO_SETOR_INFORMATICA_100
))
.
build();
return servidorDadoFuncional
;
}
private ServidorDadoFuncional gerarDadoFuncionalTipoPrestadorInativo
() {
ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo servidorDadoFuncional =
new ServidorDadoFuncionalContratadoPrestadorProcessoSeletivoBuilder
()
.
comCargo(SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13
)
.
comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
)
.
comNumeroContrato(NUMERO_CONTRATO_905_2013
)
.
comDataFim(DATA_ATUAL_MENOS_1_DIA
)
.
comFormaIngresso(gerarFormaIngresso
(FormaIngresso.
FORMA_INGRESSO_PROCESSO_SELETIVO, TipoVinculo.
CONTRATADO))
.
comDataInicio(DATA_INICIO_01_01_2011
)
.
comCargaHoraria(CARGA_HORARIA_20
)
.
comOrgaoLotacao(gerarOrgao
(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20
))
.
comUnidadeLotacao(gerarUnidade
(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25
))
.
comSetor(gerarSetor
(CODIGO_SETOR_INFORMATICA_100
))
.
build();
return servidorDadoFuncional
;
}
private List<Restricoes
> gerarListaRestricoesConsultarServidorMesmaMatricula
(ServidorDadoFuncional dadoFuncional
) {
List<Restricoes
> listaRestricoes =
new ArrayList<Restricoes
>();
listaRestricoes.
add(Restricoes.
igualComAlias("df",
"matriculaServidor",
((ServidorDadoFuncionalMatricula
)dadoFuncional
).
getMatriculaServidor()));
listaRestricoes.
add(Restricoes.
igualComAlias("df",
"situacaoServidor.codigo", SituacaoServidor.
CODIGO_SITUACAO_ATIVO_1));
if(VerificadorUtil.
naoEstaNulo(dadoFuncional.
getSequencial())) {
listaRestricoes.
add(Restricoes.
diferenteDeComAlias("df",
"sequencial", dadoFuncional.
getSequencial()));
}
return listaRestricoes
;
}
private List<Restricoes
> gerarListaRestricoesConsultarServidorMesmoNumeroOrdem
(ServidorDadoFuncional dadoFuncional
) {
List<Restricoes
> listaRestricoes =
new ArrayList<Restricoes
>();
listaRestricoes.
add(Restricoes.
igual("ordem",
((ServidorDadoFuncionalMatricula
)dadoFuncional
).
getOrdem()));
if(VerificadorUtil.
naoEstaNulo(dadoFuncional.
getSequencial())) {
listaRestricoes.
add(Restricoes.
diferenteDe("sequencial", dadoFuncional.
getSequencial()));
}
return listaRestricoes
;
}
private List<Restricoes
> gerarListaRestricoesConsultarServidorExiste
(Servidor entidade
) {
List<Restricoes
> listaRestricoes =
new ArrayList<Restricoes
>();
listaRestricoes.
add(Restricoes.
igual("pessoa", entidade.
getPessoa()));
return listaRestricoes
;
}
private CargoDTO gerarCargoComVagas
() {
CargoDTO cargo = gerarCargo
();
cargo.
setQuantidadeVagasOcupadas(20L
);
return cargo
;
}
private CargoDTO gerarCargoSemVagas
() {
CargoDTO cargo = gerarCargo
();
cargo.
setQuantidadeVagasOcupadas(30L
);
return cargo
;
}
private FuncaoDTO gerarFuncaoComVagas
() {
FuncaoDTO funcao = gerarFuncao
();
funcao.
setQuantidadeVagasOcupadas(6L
);
return funcao
;
}
private FuncaoDTO gerarFuncaoSemVagas
() {
FuncaoDTO funcao = gerarFuncao
();
funcao.
setQuantidadeVagasOcupadas(10L
);
return funcao
;
}
private CargoDTO gerarCargo
() {
CargoDTO cargo =
new CargoDTO
();
cargo.
setCodigo(new Integer(SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13
));
cargo.
setDescricao(DESCRICAO_CARGO_ANALISTA_SISTEMAS
);
cargo.
setQuantidadeVagas(30L
);
return cargo
;
}
private FuncaoDTO gerarFuncao
() {
FuncaoDTO funcao =
new FuncaoDTO
();
funcao.
setCodigo(new Integer(SEQUENCIAL_FUNCAO_ANALISTA_SISTEMAS_19
));
funcao.
setDescricao(DESCRICAO_FUNCAO_ANALISTA_SISTEMAS
);
funcao.
setNivel(NIVEL_AS3
);
funcao.
setTipo(TipoFuncao.
CARGO_COMISSIONADO);
funcao.
setQuantidadeVagas(10L
);
return funcao
;
}
private UsuarioView gerarUsuarioComPermissoesCompletas
() {
UsuarioView usuario =
new UsuarioViewBuilder
()
.
comSequencial(SEQUENCIAL_PESSOA_13
)
.
comPermissao(gerarPermissao
(PAPEL_SERVIDOR_TECNICO_SIF_SEM_PREFIXO_ROLE
))
.
comPermissao(gerarPermissao
(PAPEL_SERVIDOR_TECNICO_SER_SEM_PREFIXO_ROLE
))
.
comPermissao(gerarPermissao
(PAPEL_SERVIDOR_TECNICO_SAFP_SEM_PREFIXO_ROLE
))
.
build();
return usuario
;
}
private UsuarioView gerarUsuarioComPermissaoTecnicoSER
() {
UsuarioView usuario =
new UsuarioViewBuilder
()
.
comSequencial(SEQUENCIAL_PESSOA_13
)
.
comPermissao(gerarPermissao
(PAPEL_SERVIDOR_TECNICO_SER_SEM_PREFIXO_ROLE
))
.
build();
return usuario
;
}
private UsuarioView gerarUsuarioComPermissaoTecnicoSAFP
() {
UsuarioView usuario =
new UsuarioViewBuilder
()
.
comSequencial(SEQUENCIAL_PESSOA_13
)
.
comPermissao(gerarPermissao
(PAPEL_SERVIDOR_TECNICO_SAFP_SEM_PREFIXO_ROLE
))
.
build();
return usuario
;
}
private PermissaoView gerarPermissao
(String descricaoPermissao
) {
PermissaoView permissao =
new PermissaoView
();
permissao.
setRole(descricaoPermissao
);
return permissao
;
}
private Parametro gerarParametroConsultaQuantidadeVagasFuncaoGratificada
() {
Parametro parametro =
new Parametro
();
parametro.
setCodigo(CODIGO_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO_GRATIFICADA_1
);
return parametro
;
}
private Parametro gerarParametroQuantidadeVagasFuncaoGratificada
() {
Parametro parametro =
new Parametro
();
parametro.
setCodigo(Integer.
parseInt(CODIGO_PARAMETRO_1
));
parametro.
setDescricao(DESCRICAO_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO
);
parametro.
setValor(VALOR_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO
);
return parametro
;
}
}