Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.gov.al.saude.srv.core.domain;
2
 
3
import static br.gov.al.saude.srv.core.domain.parametro.ParametroService.CODIGO_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO_GRATIFICADA_1;
4
import static br.gov.al.saude.srv.core.domain.servidor.ServidorService.PAPEL_SERVIDOR_TECNICO_SAFP_SEM_PREFIXO_ROLE;
5
import static br.gov.al.saude.srv.core.domain.servidor.ServidorService.PAPEL_SERVIDOR_TECNICO_SER_SEM_PREFIXO_ROLE;
6
import static br.gov.al.saude.srv.core.domain.servidor.ServidorService.PAPEL_SERVIDOR_TECNICO_SIF_SEM_PREFIXO_ROLE;
7
import static br.gov.al.saude.test.ConstantesTestHelper.ATIVO_SIM;
8
import static br.gov.al.saude.test.ConstantesTestHelper.DATA_ATUAL_MAIS_1_DIA;
9
import static br.gov.al.saude.test.ConstantesTestHelper.DATA_ATUAL_MAIS_365_DIA;
10
import static br.gov.al.saude.test.ConstantesTestHelper.DATA_ATUAL_MENOS_1_DIA;
11
import static br.gov.al.saude.test.ConstantesTestHelper.DESCRICAO_SIM;
12
import static br.gov.al.saude.test.ConstantesTestHelper.DIRETORIO_FOTOS;
13
import static br.gov.al.saude.test.ConstantesTestHelper.CargoConstantes.DESCRICAO_CARGO_ANALISTA_SISTEMAS;
14
import static br.gov.al.saude.test.ConstantesTestHelper.CargoConstantes.SEQUENCIAL_CARGO_9;
15
import static br.gov.al.saude.test.ConstantesTestHelper.CargoConstantes.SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13;
16
import static br.gov.al.saude.test.ConstantesTestHelper.CarreiraConstantes.SEQUENCIAL_CARREIRA_APOIO_SAUDE_9;
17
import static br.gov.al.saude.test.ConstantesTestHelper.CarreiraConstantes.SEQUENCIAL_CARREIRA_MEDICA_8;
18
import static br.gov.al.saude.test.ConstantesTestHelper.CursoConstantes.CODIGO_CURSO_MEDICINA_1;
19
import static br.gov.al.saude.test.ConstantesTestHelper.CursoConstantes.DESCRICAO_CURSO_ANALISE_SISTEMAS;
20
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.CARGA_HORARIA_10;
21
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.CARGA_HORARIA_20;
22
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.DATA_INICIO_01_01_2011;
23
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.DIGITO_MATRICULA_0;
24
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.DIGITO_MATRICULA_8;
25
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NOSSO_NUMERO_SERVIDOR_DADO_FUNCIONAL_105;
26
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_CONTRATO_354_2010;
27
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_CONTRATO_35_2013;
28
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_CONTRATO_905_2013;
29
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_MATRICULA_96754522;
30
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_MATRICULA_9889424;
31
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_ORDEM_1357;
32
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.NUMERO_ORDEM_3542;
33
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.TIPO_CLASSE_A;
34
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.TIPO_NIVEL_4;
35
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalConstantes.TIPO_REGIME_TRABALHO_NORMAL_N;
36
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalEstagio.NIVEL_ENSINO_SUPERIOR_S;
37
import static br.gov.al.saude.test.ConstantesTestHelper.DadosFuncionalEstagio.OBRIGATORIO_NAO;
38
import static br.gov.al.saude.test.ConstantesTestHelper.DeficienciaConstantes.SEQUENCIAL_DEFICIENCIA_FISICA_3;
39
import static br.gov.al.saude.test.ConstantesTestHelper.FuncaoConstantes.DESCRICAO_FUNCAO_ANALISTA_SISTEMAS;
40
import static br.gov.al.saude.test.ConstantesTestHelper.FuncaoConstantes.NIVEL_AS3;
41
import static br.gov.al.saude.test.ConstantesTestHelper.FuncaoConstantes.SEQUENCIAL_FUNCAO_ANALISTA_SISTEMAS_19;
42
import static br.gov.al.saude.test.ConstantesTestHelper.FuncaoConstantes.SEQUENCIAL_FUNCAO_ASSESSOR_TECNICO_23;
43
import static br.gov.al.saude.test.ConstantesTestHelper.GrauInstrucaoConstantes.SEQUENCIAL_GRAU_INSTRUCAO_SUPERIOR_4;
44
import static br.gov.al.saude.test.ConstantesTestHelper.InstituicaoConstantes.CODIGO_INSTITUICAO_CESMAC_3;
45
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.EXTENSAO_ARQUIVO_FOTO_INVALIDA;
46
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.LIMITE_CARGA_HORARIA_ATINGIDO;
47
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.LIMITE_VAGAS_FUNCAO_TIPO_GRATIFICADA_FOI_ATINGIDO;
48
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.MSG_ERRO_JA_EXISTE_SERVIDOR_ATIVO_CADASTRADO_COM_MATRICULA_INFORMADA;
49
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.MSG_ERRO_NAO_EH_PERMITIDO_ALTERAR_SITUACAO_SERVIDOR_COM_DADO_FUNCIONAL_DIFERENTE_ESTAGIARIO;
50
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.MSG_ERRO_NAO_EH_PERMITIDO_ALTERAR_SITUACAO_SERVIDOR_COM_DADO_FUNCIONAL_DIFERENTE_PRESTADOR;
51
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.MSG_ERRO_NUMERO_ORDEM_JA_CADASTRADO;
52
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.OBRIGATORIO_INFORMAR_FUNCAO;
53
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO;
54
import static br.gov.al.saude.test.ConstantesTestHelper.NacionalidadeConstantes.SEQUENCIAL_NACIONALIDADE_BRASILEIRA_1;
55
import static br.gov.al.saude.test.ConstantesTestHelper.OrgaoConstantes.SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20;
56
import static br.gov.al.saude.test.ConstantesTestHelper.ParametroConstantes.CODIGO_PARAMETRO_1;
57
import static br.gov.al.saude.test.ConstantesTestHelper.ParametroConstantes.DESCRICAO_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO;
58
import static br.gov.al.saude.test.ConstantesTestHelper.ParametroConstantes.VALOR_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO;
59
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.DATA_NASCIMENTO_01_01_1995;
60
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_FOTO_GIF;
61
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_FOTO_JPEG;
62
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_FOTO_PNG;
63
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_PESSOA_JOSE_MARIA;
64
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NOME_PESSOA_YANNE_ALMEIDA;
65
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NUMERO_CPF_03147532062;
66
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.NUMERO_CPF_07771278495;
67
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.SEQUENCIAL_PESSOA_13;
68
import static br.gov.al.saude.test.ConstantesTestHelper.PessoaConstantes.SEQUENCIAL_PESSOA_ANDERSON_SILVA_7;
69
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.DATA_FINAL_01_03_2012;
70
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.DATA_INICIAL_01_01_2012;
71
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.INSTITUICAO_CESMAC;
72
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.NUMERO_CARGA_HORARIA_10;
73
import static br.gov.al.saude.test.ConstantesTestHelper.QualificacaoConstantes.TIPO_QUALIFICACAO_FORMACAO_ACADEMICA_A;
74
import static br.gov.al.saude.test.ConstantesTestHelper.SetorConstantes.CODIGO_SETOR_INFORMATICA_100;
75
import static br.gov.al.saude.test.ConstantesTestHelper.SituacaoServidorConstantes.SEQUENCIAL_SITUACAO_SERVIDOR_ATIVO_1;
76
import static br.gov.al.saude.test.ConstantesTestHelper.SituacaoServidorConstantes.SEQUENCIAL_SITUACAO_SERVIDOR_EXONERADO_2;
77
import static br.gov.al.saude.test.ConstantesTestHelper.UnidadeConstantes.SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25;
78
import static br.gov.al.saude.test.ConstantesTestHelper.UnidadeConstantes.SEQUENCIAL_UNIDADE_SEDE_33;
79
import static br.gov.al.saude.test.ConstantesTestHelper.UsuarioScaConstantes.SEQUENCIAL_USUARIO_3;
80
import static br.gov.al.saude.test.ConstantesTestHelper.UtilConstantes.DESCRICAO_SEXO_MASCULINO;
81
import static br.gov.al.saude.test.ConstantesTestHelper.UtilConstantes.GRAU_PARENTESCO_FILHO_F;
82
 
83
import java.util.ArrayList;
84
import java.util.HashSet;
85
import java.util.List;
86
import java.util.Set;
87
 
88
import net.sf.jasperreports.engine.JasperPrint;
89
 
90
import org.jmock.Expectations;
91
import org.junit.Before;
92
import org.junit.Test;
93
 
94
import br.gov.al.saude.framework.core.consulta.restricao.Restricoes;
95
import br.gov.al.saude.framework.core.generic.GenericRepository;
96
import br.gov.al.saude.framework.core.generic.GenericService;
97
import br.gov.al.saude.framework.core.interfaces.Alterar;
98
import br.gov.al.saude.framework.core.interfaces.Cadastrar;
99
import br.gov.al.saude.framework.core.util.VerificadorUtil;
100
import br.gov.al.saude.framework.core.validador.Validador;
101
import br.gov.al.saude.framework.model.PermissaoView;
102
import br.gov.al.saude.framework.model.PessoaFisicaView;
103
import br.gov.al.saude.framework.model.UsuarioView;
104
import br.gov.al.saude.srv.core.domain.servidor.ServidorService;
105
import br.gov.al.saude.srv.core.domain.servidor.impl.ServidorServiceImpl;
106
import br.gov.al.saude.srv.core.domain.servidor.relatorio.GeradorRelatorioServidor;
107
import br.gov.al.saude.srv.core.infrastructure.persistence.jpa.cargo.CargoRepository;
108
import br.gov.al.saude.srv.core.infrastructure.persistence.jpa.funcao.FuncaoRepository;
109
import br.gov.al.saude.srv.core.infrastructure.persistence.jpa.parametro.ParametroRepository;
110
import br.gov.al.saude.srv.core.infrastructure.persistence.jpa.servidor.ServidorRepository;
111
import br.gov.al.saude.srv.model.FormaIngresso;
112
import br.gov.al.saude.srv.model.Funcao;
113
import br.gov.al.saude.srv.model.Orgao;
114
import br.gov.al.saude.srv.model.Parametro;
115
import br.gov.al.saude.srv.model.Servidor;
116
import br.gov.al.saude.srv.model.ServidorDadoFuncional;
117
import br.gov.al.saude.srv.model.ServidorDadoFuncionalContratadoEstagiario;
118
import br.gov.al.saude.srv.model.ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo;
119
import br.gov.al.saude.srv.model.ServidorDadoFuncionalMatricula;
120
import br.gov.al.saude.srv.model.ServidorDadoFuncionalMatriculaCarreira;
121
import br.gov.al.saude.srv.model.ServidorDependente;
122
import br.gov.al.saude.srv.model.ServidorQualificacao;
123
import br.gov.al.saude.srv.model.SituacaoServidor;
124
import br.gov.al.saude.srv.model.Unidade;
125
import br.gov.al.saude.srv.model.dto.CargoDTO;
126
import br.gov.al.saude.srv.model.dto.FuncaoDTO;
127
import br.gov.al.saude.srv.model.dto.ParametroConsultaServidorAtivoDTO;
128
import br.gov.al.saude.srv.model.dto.ParametroConsultaServidorDTO;
129
import br.gov.al.saude.srv.model.enums.TipoFuncao;
130
import br.gov.al.saude.srv.model.enums.TipoSituacaoCadastral;
131
import br.gov.al.saude.srv.model.enums.TipoVinculo;
132
import br.gov.al.saude.framework.model.SetorView;
133
import br.gov.al.saude.test.builder.CargoBuilder;
134
import br.gov.al.saude.test.builder.CarreiraBuilder;
135
import br.gov.al.saude.test.builder.DeficienciaBuilder;
136
import br.gov.al.saude.test.builder.FormaIngressoBuilder;
137
import br.gov.al.saude.test.builder.FuncaoBuilder;
138
import br.gov.al.saude.test.builder.GrauInstrucaoBuilder;
139
import br.gov.al.saude.test.builder.NacionalidadeBuilder;
140
import br.gov.al.saude.test.builder.OrgaoBuilder;
141
import br.gov.al.saude.test.builder.ServidorBuilder;
142
import br.gov.al.saude.test.builder.ServidorDadoFuncionalContratadoEstagiarioBuilder;
143
import br.gov.al.saude.test.builder.ServidorDadoFuncionalContratadoPrestadorProcessoSeletivoBuilder;
144
import br.gov.al.saude.test.builder.ServidorDadoFuncionalMatriculaBuilder;
145
import br.gov.al.saude.test.builder.ServidorDadoFuncionalMatriculaCarreiraBuilder;
146
import br.gov.al.saude.test.builder.ServidorDependenteBuilder;
147
import br.gov.al.saude.test.builder.ServidorQualificacaoBuilder;
148
import br.gov.al.saude.test.builder.SetorViewBuilder;
149
import br.gov.al.saude.test.builder.SituacaoServidorBuilder;
150
import br.gov.al.saude.test.builder.UnidadeBuilder;
151
import br.gov.al.saude.test.builder.UsuarioViewBuilder;
152
import br.gov.al.saude.test.unidade.generic.service.ServiceImplTest;
153
import br.gov.al.saude.test.util.CommandSemMensagem;
154
import br.gov.al.saude.test.util.FileUtil;
155
import br.gov.al.saude.test.util.VerificadorLancamentoException;
156
 
157
public class ServidorServiceImplTest extends ServiceImplTest<Servidor> {
158
 
159
        private ServidorService servidorService;
160
        private ServidorRepository servidorRepositoryMock;
161
        private CargoRepository cargoRepositoryMock;
162
        private FuncaoRepository funcaoRepositoryMock;
163
        private ParametroRepository parametroRepositoryMock;
164
        private GeradorRelatorioServidor geradorRelatorioServidorMock;
165
 
166
        @Before
167
        public void inicializarContexto() {
168
                super.inicializarContexto();
169
                servidorRepositoryMock = getContexto().mock(ServidorRepository.class);
170
                validadorMock = getContexto().mock(Validador.class);
171
                geradorRelatorioServidorMock = getContexto().mock(GeradorRelatorioServidor.class);
172
                cargoRepositoryMock = getContexto().mock(CargoRepository.class);
173
                funcaoRepositoryMock = getContexto().mock(FuncaoRepository.class);
174
                parametroRepositoryMock = getContexto().mock(ParametroRepository.class);
175
                servidorService = new ServidorServiceImpl(validadorMock, servidorRepositoryMock, cargoRepositoryMock,
176
                                funcaoRepositoryMock, parametroRepositoryMock, geradorRelatorioServidorMock);
177
                setEntidade(gerarServidorCompleto());
178
        }
179
 
180
        @Override
181
        protected GenericService<Servidor> getService() {
182
                return servidorService;
183
        }
184
 
185
        @Override
186
        protected GenericRepository<Servidor> getRepositoryMock() {
187
                return servidorRepositoryMock;
188
        }
189
 
190
        @Test
191
        public void aoConsultarServidorPorSequencialDeveriaDelegarParaOhRepositorio() {
192
                getContexto().checking(new Expectations(){{
193
                        oneOf(servidorRepositoryMock).consultarServidorPorSequencial(with(new Long(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7)));
194
                        will(returnValue(new Servidor()));
195
                }});
196
 
197
                servidorService.consultarServidorPorSequencial(new Long(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7));
198
        }
199
 
200
        @Test
201
        public void aoConsultarPessoaPorSequencialDeveriaDelegarParaOhRepositorio() {
202
                getContexto().checking(new Expectations(){{
203
                        oneOf(servidorRepositoryMock).consultarPessoaPorSequencial(with(any(Long.class)));
204
                        will(returnValue(new PessoaFisicaView()));
205
                }});
206
 
207
                servidorService.consultarPessoaPorSequencial(Long.parseLong(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7));
208
        }
209
 
210
        @Test
211
        public void aoAtualizarServidorLegadoDeveriaDelegarParaOhRepositorio() {
212
                getContexto().checking(new Expectations(){{
213
                        oneOf(servidorRepositoryMock).atualizarServidorLegado(with(any(Servidor.class)));
214
                }});
215
 
216
                servidorService.atualizarServidorLegado(new Servidor());
217
        }
218
 
219
        @Test
220
        public void aoEmitirFichaCadastralDeveriaParaOhGeradorRelatorio() {
221
                getContexto().checking(new Expectations(){{
222
                        oneOf(geradorRelatorioServidorMock).emitirFichaCadastral(Long.parseLong(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7));
223
                        will(returnValue(new JasperPrint()));
224
                }});
225
 
226
                servidorService.emitirFichaCadastral(Long.parseLong(SEQUENCIAL_PESSOA_ANDERSON_SILVA_7));
227
        }
228
 
229
        @Test
230
        public void aoAtualizarCadastrandoServidorDeveriaDelegarParaRepositorio() {
231
 
232
                getContexto().checking(new Expectations(){{
233
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
234
                        will(returnValue(false));
235
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
236
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
237
                        will(returnValue(null));
238
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
239
                        will(returnValue(null));
240
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
241
                        will(returnValue(false));
242
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
243
                        will(returnValue(false));
244
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
245
                        will(returnValue(gerarCargoComVagas()));
246
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
247
                        will(returnValue(gerarFuncaoComVagas()));
248
                        oneOf(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
249
                        will(returnValue(gerarParametroQuantidadeVagasFuncaoGratificada()));
250
                        oneOf(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
251
                        will(returnValue(0));
252
                        oneOf(servidorRepositoryMock).cadastrar(getEntidade());
253
                }});
254
 
255
                servidorService.atualizarServidor(getEntidade());
256
        }
257
 
258
        @Test
259
        public void aoAtualizarCadastrandoServidorComFotoDeveriaDelegarParaRepositorio() {
260
                getEntidade().setFoto(FileUtil.getConteudoArquivoImagem(DIRETORIO_FOTOS, NOME_FOTO_PNG));
261
 
262
                getContexto().checking(new Expectations(){{
263
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
264
                        will(returnValue(false));
265
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
266
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
267
                        will(returnValue(null));
268
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
269
                        will(returnValue(null));
270
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
271
                        will(returnValue(false));
272
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
273
                        will(returnValue(false));
274
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
275
                        will(returnValue(gerarCargoComVagas()));
276
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
277
                        will(returnValue(gerarFuncaoComVagas()));
278
                        oneOf(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
279
                        will(returnValue(gerarParametroQuantidadeVagasFuncaoGratificada()));
280
                        oneOf(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
281
                        will(returnValue(0));
282
                        oneOf(servidorRepositoryMock).cadastrar(getEntidade());
283
                }});
284
 
285
                servidorService.atualizarServidor(getEntidade());
286
        }
287
 
288
        @Test
289
        public void aoAtualizarCadastrandoServidorSemDadosFuncionaisDeveriaDelegarParaRepositorio() {
290
                getEntidade().getListaServidorDadoFuncional().clear();
291
 
292
                getContexto().checking(new Expectations(){{
293
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
294
                        will(returnValue(false));
295
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
296
                        oneOf(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
297
                        will(returnValue(gerarParametroQuantidadeVagasFuncaoGratificada()));
298
                        oneOf(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
299
                        will(returnValue(0));
300
                        oneOf(servidorRepositoryMock).cadastrar(getEntidade());
301
                }});
302
 
303
                servidorService.atualizarServidor(getEntidade());
304
        }
305
 
306
        @Test
307
        public void aoAtualizarCadastrandoServidorComDadosAtivosEeInativosDeveriaDelegarParaRepositorio() {
308
 
309
                final ServidorDadoFuncional dadoFuncionalExonerado = gerarDadoFuncionalTipoMatriculaExonerado();
310
                dadoFuncionalExonerado.setServidor(getEntidade());
311
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalExonerado);
312
 
313
                final ServidorDadoFuncional dadoFuncionalInativo = gerarDadoFuncionalTipoPrestadorInativo();
314
                dadoFuncionalInativo.setServidor(getEntidade());
315
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalInativo);
316
 
317
                getContexto().checking(new Expectations(){{
318
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
319
                        will(returnValue(false));
320
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
321
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
322
                        will(returnValue(null));
323
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
324
                        will(returnValue(null));
325
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalExonerado)));
326
                        will(returnValue(null));
327
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
328
                        will(returnValue(false));
329
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
330
                        will(returnValue(false));
331
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalExonerado)));
332
                        will(returnValue(false));
333
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
334
                        will(returnValue(gerarCargoComVagas()));
335
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
336
                        will(returnValue(gerarFuncaoComVagas()));
337
                        oneOf(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
338
                        will(returnValue(gerarParametroQuantidadeVagasFuncaoGratificada()));
339
                        oneOf(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
340
                        will(returnValue(0));
341
                        oneOf(servidorRepositoryMock).cadastrar(getEntidade());
342
                }});
343
 
344
                servidorService.atualizarServidor(getEntidade());
345
        }
346
 
347
        @Test
348
        public void aoAtualizarCadastrandoServidorComDadoFuncionalComissionadoSemFuncaoDeveriaLancarExcecao() {
349
 
350
                ServidorDadoFuncional dadoFuncionalSemFuncao = gerarDadoFuncionalTipoMatricula();
351
                ((ServidorDadoFuncionalMatricula)dadoFuncionalSemFuncao).setFuncao(null);
352
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalSemFuncao);
353
 
354
                getContexto().checking(new Expectations(){{
355
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
356
                        will(returnValue(false));
357
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
358
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
359
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
360
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
361
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
362
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
363
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
364
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
365
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
366
                        never(servidorRepositoryMock).cadastrar(getEntidade());
367
                }});
368
 
369
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
370
                        @Override
371
                        public void execute() throws Exception {
372
                                servidorService.atualizarServidor(getEntidade());
373
                        }
374
                }, OBRIGATORIO_INFORMAR_FUNCAO);
375
        }
376
 
377
        @Test
378
        public void aoAtualizarCadastrandoServidorComMatriculaServidorAtivoJaCadastradaDeveriaLancarExcecao() {
379
 
380
                getContexto().checking(new Expectations(){{
381
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
382
                        will(returnValue(false));
383
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
384
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
385
                        will(returnValue(gerarServidorMesmaMatricula()));
386
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
387
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
388
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
389
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
390
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
391
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
392
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
393
                        never(servidorRepositoryMock).cadastrar(getEntidade());
394
                }});
395
 
396
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
397
                        @Override
398
                        public void execute() throws Exception {
399
                                servidorService.atualizarServidor(getEntidade());
400
                        }
401
                }, MSG_ERRO_JA_EXISTE_SERVIDOR_ATIVO_CADASTRADO_COM_MATRICULA_INFORMADA +
402
                        " Servidor: " + gerarServidorMesmaMatricula().getPessoa().getNumeroDocumento() + " - " + gerarServidorMesmaMatricula().getNomeDaPessoa());
403
        }
404
 
405
        @Test
406
        public void aoAtualizarCadastrandoServidorComNumeroOrdemServidorAtivoJaCadastradaDeveriaLancarExcecao() {
407
 
408
                getContexto().checking(new Expectations(){{
409
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
410
                        will(returnValue(false));
411
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
412
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
413
                        will(returnValue(null));
414
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
415
                        will(returnValue(null));
416
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
417
                        will(returnValue(false));
418
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
419
                        will(returnValue(true));
420
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
421
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
422
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
423
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
424
                        never(servidorRepositoryMock).cadastrar(getEntidade());
425
                }});
426
 
427
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
428
                        @Override
429
                        public void execute() throws Exception {
430
                                servidorService.atualizarServidor(getEntidade());
431
                        }
432
                }, MSG_ERRO_NUMERO_ORDEM_JA_CADASTRADO);
433
        }
434
 
435
        @Test
436
        public void aoAtualizarCadastrandoServidorComCargoDiferenteTipoPrestadorEmMesmaUnidadeLotacaoDeveriaLancarExcecao() {
437
 
438
                ServidorDadoFuncional dadoFuncionalCargoDiferente = gerarDadoFuncionalTipoPrestador();
439
                ((ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo)dadoFuncionalCargoDiferente).setCargo(new CargoBuilder().comCodigo(SEQUENCIAL_CARGO_9).build());
440
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargoDiferente);
441
 
442
                getContexto().checking(new Expectations(){{
443
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
444
                        will(returnValue(false));
445
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
446
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
447
                        will(returnValue(null));
448
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
449
                        will(returnValue(null));
450
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
451
                        will(returnValue(false));
452
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
453
                        will(returnValue(false));
454
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
455
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
456
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
457
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
458
                        never(servidorRepositoryMock).cadastrar(getEntidade());
459
                }});
460
 
461
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
462
                        @Override
463
                        public void execute() throws Exception {
464
                                servidorService.atualizarServidor(getEntidade());
465
                        }
466
                }, SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO);
467
        }
468
 
469
        @Test
470
        public void aoAtualizarCadastrandoServidorComCargoDiferenteTipoMatriculaEmMesmaUnidadeLotacaoDeveriaLancarExcecao() {
471
 
472
                ServidorDadoFuncional dadoFuncionalPrestador = gerarDadoFuncionalTipoPrestador();
473
                dadoFuncionalPrestador.setServidor(getEntidade());
474
 
475
                List<ServidorDadoFuncional> listaDadosFuncionais = new ArrayList<ServidorDadoFuncional>(getEntidade().getListaServidorDadoFuncional());
476
                listaDadosFuncionais.remove(dadoFuncionalPrestador);
477
                getEntidade().setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional>(listaDadosFuncionais));
478
 
479
                final ServidorDadoFuncional dadoFuncionalCargoDiferente = gerarDadoFuncionalTipoMatriculaCarreira();
480
                ((ServidorDadoFuncionalMatriculaCarreira)dadoFuncionalCargoDiferente).setCargoCarreira(new CargoBuilder().comCodigo(SEQUENCIAL_CARGO_9).build());
481
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargoDiferente);
482
 
483
                getContexto().checking(new Expectations(){{
484
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
485
                        will(returnValue(false));
486
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
487
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
488
                        will(returnValue(null));
489
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
490
                        will(returnValue(null));
491
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalCargoDiferente)));
492
                        will(returnValue(null));
493
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
494
                        will(returnValue(false));
495
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
496
                        will(returnValue(false));
497
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalCargoDiferente)));
498
                        will(returnValue(false));
499
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
500
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
501
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
502
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
503
                        never(servidorRepositoryMock).cadastrar(getEntidade());
504
                }});
505
 
506
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
507
                        @Override
508
                        public void execute() throws Exception {
509
                                servidorService.atualizarServidor(getEntidade());
510
                        }
511
                }, SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO);
512
        }
513
 
514
        @Test
515
        public void aoAtualizarCadastrandoServidorComTipoEfetivoCarreiraMedicaEeTipoMatriculaExcedendoLimite64HorasDeveriaLancarExcecao() {
516
 
517
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira();
518
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_20));
519
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
520
 
521
                getContexto().checking(new Expectations(){{
522
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
523
                        will(returnValue(false));
524
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
525
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
526
                        will(returnValue(null));
527
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
528
                        will(returnValue(null));
529
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalCargaHorariaExcedente)));
530
                        will(returnValue(null));
531
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
532
                        will(returnValue(false));
533
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
534
                        will(returnValue(false));
535
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalCargaHorariaExcedente)));
536
                        will(returnValue(false));
537
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
538
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
539
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
540
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
541
                        never(servidorRepositoryMock).cadastrar(getEntidade());
542
                }});
543
 
544
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
545
                        @Override
546
                        public void execute() throws Exception {
547
                                servidorService.atualizarServidor(getEntidade());
548
                        }
549
                }, LIMITE_CARGA_HORARIA_ATINGIDO);
550
        }
551
 
552
        @Test
553
        public void aoAtualizarCadastrandoServidorComTipoCeletistaCarreiraMedicaEeTipoMatriculaExcedendoLimite64HorasDeveriaLancarExcecao() {
554
 
555
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira();
556
                dadoFuncionalCargaHorariaExcedente.setFormaIngresso(gerarFormaIngresso(FormaIngresso.FORMA_INGRESSO_CONCURSADO, TipoVinculo.CELETISTA));
557
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_20));
558
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
559
 
560
                getContexto().checking(new Expectations(){{
561
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
562
                        will(returnValue(false));
563
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
564
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
565
                        will(returnValue(null));
566
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
567
                        will(returnValue(null));
568
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalCargaHorariaExcedente)));
569
                        will(returnValue(null));
570
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
571
                        will(returnValue(false));
572
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
573
                        will(returnValue(false));
574
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalCargaHorariaExcedente)));
575
                        will(returnValue(false));
576
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
577
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
578
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
579
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
580
                        never(servidorRepositoryMock).cadastrar(getEntidade());
581
                }});
582
 
583
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
584
                        @Override
585
                        public void execute() throws Exception {
586
                                servidorService.atualizarServidor(getEntidade());
587
                        }
588
                }, LIMITE_CARGA_HORARIA_ATINGIDO);
589
        }
590
 
591
        @Test
592
        public void aoAtualizarCadastrandoServidorTipoEfetivoComCarreiraMedicaEeTipoPrestadorExcedendoLimite64HorasDeveriaLancarExcecao() {
593
 
594
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador();
595
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_20));
596
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
597
 
598
                getContexto().checking(new Expectations(){{
599
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
600
                        will(returnValue(false));
601
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
602
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
603
                        will(returnValue(null));
604
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
605
                        will(returnValue(null));
606
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
607
                        will(returnValue(false));
608
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
609
                        will(returnValue(false));
610
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
611
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
612
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
613
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
614
                        never(servidorRepositoryMock).cadastrar(getEntidade());
615
                }});
616
 
617
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
618
                        @Override
619
                        public void execute() throws Exception {
620
                                servidorService.atualizarServidor(getEntidade());
621
                        }
622
                }, LIMITE_CARGA_HORARIA_ATINGIDO);
623
        }
624
 
625
        @Test
626
        public void aoAtualizarCadastrandoServidorComTipoEfetivoEeTipoMatriculaExcedendoLimite60HorasDeveriaLancarExcecao() {
627
 
628
                ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
629
                dadoFuncionalCarreiraMedica.setServidor(getEntidade());
630
 
631
                List<ServidorDadoFuncional> listaDadosFuncionais = new ArrayList<ServidorDadoFuncional>(getEntidade().getListaServidorDadoFuncional());
632
                listaDadosFuncionais.remove(dadoFuncionalCarreiraMedica);
633
                getEntidade().setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional>(listaDadosFuncionais));
634
 
635
                final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
636
                ((ServidorDadoFuncionalMatriculaCarreira)dadoFuncionalSemCarreiraMedica).setCarreira(new CarreiraBuilder().comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9).build());
637
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalSemCarreiraMedica);
638
 
639
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira();
640
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_20));
641
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
642
 
643
                getContexto().checking(new Expectations(){{
644
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
645
                        will(returnValue(false));
646
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
647
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
648
                        will(returnValue(null));
649
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalSemCarreiraMedica)));
650
                        will(returnValue(null));
651
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalCargaHorariaExcedente)));
652
                        will(returnValue(null));
653
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
654
                        will(returnValue(false));
655
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalSemCarreiraMedica)));
656
                        will(returnValue(false));
657
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalCargaHorariaExcedente)));
658
                        will(returnValue(false));
659
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
660
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
661
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
662
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
663
                        never(servidorRepositoryMock).cadastrar(getEntidade());
664
                }});
665
 
666
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
667
                        @Override
668
                        public void execute() throws Exception {
669
                                servidorService.atualizarServidor(getEntidade());
670
                        }
671
                }, LIMITE_CARGA_HORARIA_ATINGIDO);
672
        }
673
 
674
        @Test
675
        public void aoAtualizarCadastrandoServidorComTipoEfetivoEeTipoPrestadorExcedendoLimite60HorasDeveriaLancarExcecao() {
676
 
677
                ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
678
                dadoFuncionalCarreiraMedica.setServidor(getEntidade());
679
 
680
                List<ServidorDadoFuncional> listaDadosFuncionais = new ArrayList<ServidorDadoFuncional>(getEntidade().getListaServidorDadoFuncional());
681
                listaDadosFuncionais.remove(dadoFuncionalCarreiraMedica);
682
                getEntidade().setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional>(listaDadosFuncionais));
683
 
684
                final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
685
                ((ServidorDadoFuncionalMatriculaCarreira)dadoFuncionalSemCarreiraMedica).setCarreira(new CarreiraBuilder().comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9).build());
686
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalSemCarreiraMedica);
687
 
688
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador();
689
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_20));
690
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
691
 
692
                getContexto().checking(new Expectations(){{
693
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
694
                        will(returnValue(false));
695
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
696
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
697
                        will(returnValue(null));
698
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalSemCarreiraMedica)));
699
                        will(returnValue(null));
700
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
701
                        will(returnValue(false));
702
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalSemCarreiraMedica)));
703
                        will(returnValue(false));
704
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
705
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
706
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
707
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
708
                        never(servidorRepositoryMock).cadastrar(getEntidade());
709
                }});
710
 
711
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
712
                        @Override
713
                        public void execute() throws Exception {
714
                                servidorService.atualizarServidor(getEntidade());
715
                        }
716
                }, LIMITE_CARGA_HORARIA_ATINGIDO);
717
        }
718
 
719
        @Test
720
        public void aoAtualizarCadastrandoServidorComTipoEfetivoEeTipoPrestadorNaoExcedendoLimite60HorasDeveriaLancarExcecao() {
721
 
722
                ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
723
                dadoFuncionalCarreiraMedica.setServidor(getEntidade());
724
 
725
                List<ServidorDadoFuncional> listaDadosFuncionais = new ArrayList<ServidorDadoFuncional>(getEntidade().getListaServidorDadoFuncional());
726
                listaDadosFuncionais.remove(dadoFuncionalCarreiraMedica);
727
                getEntidade().setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional>(listaDadosFuncionais));
728
 
729
                final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
730
                ((ServidorDadoFuncionalMatriculaCarreira)dadoFuncionalSemCarreiraMedica).setCarreira(new CarreiraBuilder().comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9).build());
731
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalSemCarreiraMedica);
732
 
733
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador();
734
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_10));
735
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
736
 
737
                getContexto().checking(new Expectations(){{
738
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
739
                        will(returnValue(false));
740
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
741
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
742
                        will(returnValue(null));
743
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalSemCarreiraMedica)));
744
                        will(returnValue(null));
745
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
746
                        will(returnValue(false));
747
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalSemCarreiraMedica)));
748
                        will(returnValue(false));
749
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
750
                        will(returnValue(null));
751
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
752
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
753
                        never(servidorRepositoryMock).cadastrar(getEntidade());
754
                }});
755
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
756
                        @Override
757
                        public void execute() throws Exception {
758
                                servidorService.atualizarServidor(getEntidade());
759
                        }
760
                }, null);
761
        }
762
 
763
        @Test
764
        public void aoAtualizarCadastrandoServidorComTipoEfetivoComCargoSemVagasDeveriaLancarExcecao() {
765
                getContexto().checking(new Expectations(){{
766
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
767
                        will(returnValue(false));
768
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
769
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
770
                        will(returnValue(null));
771
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
772
                        will(returnValue(null));
773
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
774
                        will(returnValue(false));
775
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
776
                        will(returnValue(false));
777
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
778
                        will(returnValue(gerarCargoSemVagas()));
779
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
780
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
781
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
782
                        never(servidorRepositoryMock).cadastrar(getEntidade());
783
                }});
784
 
785
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
786
                        @Override
787
                        public void execute() throws Exception {
788
                                servidorService.atualizarServidor(getEntidade());
789
                        }
790
                }, "O limite de vagas para o cargo " + gerarCargoSemVagas().getDescricao() + " foi atingido.");
791
        }
792
 
793
        @Test
794
        public void aoAtualizarCadastrandoServidorComTipoComissionadoComFuncaoSemVagasDeveriaLancarExcecao() {
795
                getContexto().checking(new Expectations(){{
796
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
797
                        will(returnValue(false));
798
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
799
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
800
                        will(returnValue(null));
801
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
802
                        will(returnValue(null));
803
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
804
                        will(returnValue(false));
805
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
806
                        will(returnValue(false));
807
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
808
                        will(returnValue(gerarCargoComVagas()));
809
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
810
                        will(returnValue(gerarFuncaoSemVagas()));
811
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
812
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
813
                        never(servidorRepositoryMock).cadastrar(getEntidade());
814
                }});
815
 
816
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
817
                        @Override
818
                        public void execute() throws Exception {
819
                                servidorService.atualizarServidor(getEntidade());
820
                        }
821
                }, "O limite de vagas para a função " + gerarFuncaoSemVagas().getNivel() + " - " + gerarFuncaoSemVagas().getTipo().getDescricao() + " foi atingido.");
822
        }
823
 
824
        @Test
825
        public void aoAtualizarCadastrandoServidorComQuantidadeFuncaoGratificadaExcedendoLimiteDeveriaLancarExcecao() {
826
                getContexto().checking(new Expectations(){{
827
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
828
                        will(returnValue(false));
829
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
830
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
831
                        will(returnValue(null));
832
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
833
                        will(returnValue(null));
834
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
835
                        will(returnValue(false));
836
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
837
                        will(returnValue(false));
838
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
839
                        will(returnValue(gerarCargoComVagas()));
840
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
841
                        will(returnValue(gerarFuncaoComVagas()));
842
                        oneOf(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
843
                        will(returnValue(gerarParametroQuantidadeVagasFuncaoGratificada()));
844
                        oneOf(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
845
                        will(returnValue(1));
846
                        never(servidorRepositoryMock).cadastrar(getEntidade());
847
                }});
848
 
849
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
850
                        @Override
851
                        public void execute() throws Exception {
852
                                servidorService.atualizarServidor(getEntidade());
853
                        }
854
                }, LIMITE_VAGAS_FUNCAO_TIPO_GRATIFICADA_FOI_ATINGIDO);
855
        }
856
 
857
        @Test
858
        public void aoAtualizarCadastrandoServidorComFotoDeFormatoInvalidoDeveriaLancarExcecao() {
859
                getEntidade().setFoto(FileUtil.getConteudoArquivoImagem(DIRETORIO_FOTOS, NOME_FOTO_GIF));
860
 
861
                getContexto().checking(new Expectations(){{
862
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
863
                        will(returnValue(false));
864
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Cadastrar.class}));
865
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
866
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
867
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
868
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
869
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
870
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
871
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
872
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
873
                        never(servidorRepositoryMock).cadastrar(getEntidade());
874
                }});
875
 
876
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
877
                        @Override
878
                        public void execute() throws Exception {
879
                                servidorService.atualizarServidor(getEntidade());
880
                        }
881
                }, EXTENSAO_ARQUIVO_FOTO_INVALIDA);
882
        }
883
 
884
        @Test
885
        public void aoAtualizarAlterandoServidorDeveriaDelegarParaRepositorio() {
886
 
887
                final ServidorDadoFuncional dadoFuncionalCadastrado = gerarDadoFuncionalTipoMatriculaCarreira();
888
                dadoFuncionalCadastrado.setSequencial(new Long(NOSSO_NUMERO_SERVIDOR_DADO_FUNCIONAL_105));
889
                dadoFuncionalCadastrado.setCargaHoraria(new Integer(CARGA_HORARIA_10));
890
                ((ServidorDadoFuncionalMatriculaCarreira)dadoFuncionalCadastrado).setSituacaoServidor(new SituacaoServidorBuilder().comCodigo(SEQUENCIAL_SITUACAO_SERVIDOR_EXONERADO_2).build());
891
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCadastrado);
892
 
893
                getContexto().checking(new Expectations(){{
894
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
895
                        will(returnValue(true));
896
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
897
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
898
                        will(returnValue(null));
899
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
900
                        will(returnValue(null));
901
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalCadastrado)));
902
                        will(returnValue(null));
903
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
904
                        will(returnValue(false));
905
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
906
                        will(returnValue(false));
907
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalCadastrado)));
908
                        will(returnValue(false));
909
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
910
                        will(returnValue(gerarCargoComVagas()));
911
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
912
                        will(returnValue(gerarFuncaoComVagas()));
913
                        oneOf(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
914
                        will(returnValue(gerarParametroQuantidadeVagasFuncaoGratificada()));
915
                        oneOf(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
916
                        will(returnValue(0));
917
                        oneOf(servidorRepositoryMock).alterar(getEntidade());
918
                }});
919
 
920
                servidorService.atualizarServidor(getEntidade());
921
        }
922
 
923
        @Test
924
        public void aoAtualizarAlterandoServidorComFotoDeveriaDelegarParaRepositorio() {
925
                getEntidade().setFoto(FileUtil.getConteudoArquivoImagem(DIRETORIO_FOTOS, NOME_FOTO_JPEG));
926
 
927
                getContexto().checking(new Expectations(){{
928
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
929
                        will(returnValue(true));
930
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
931
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
932
                        will(returnValue(null));
933
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
934
                        will(returnValue(null));
935
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
936
                        will(returnValue(false));
937
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
938
                        will(returnValue(false));
939
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
940
                        will(returnValue(gerarCargoComVagas()));
941
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
942
                        will(returnValue(gerarFuncaoComVagas()));
943
                        oneOf(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
944
                        will(returnValue(gerarParametroQuantidadeVagasFuncaoGratificada()));
945
                        oneOf(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
946
                        will(returnValue(0));
947
                        oneOf(servidorRepositoryMock).alterar(getEntidade());
948
                }});
949
 
950
                servidorService.atualizarServidor(getEntidade());
951
        }
952
 
953
        @Test
954
        public void aoAtualizarAlterandoServidorComDadoFuncionalComissionadoSemFuncaoDeveriaLancarExcecao() {
955
 
956
                ServidorDadoFuncional dadoFuncionalSemFuncao = gerarDadoFuncionalTipoMatricula();
957
                ((ServidorDadoFuncionalMatricula)dadoFuncionalSemFuncao).setFuncao(null);
958
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalSemFuncao);
959
 
960
                getContexto().checking(new Expectations(){{
961
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
962
                        will(returnValue(true));
963
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
964
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
965
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
966
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
967
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
968
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
969
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
970
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
971
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
972
                        never(servidorRepositoryMock).cadastrar(getEntidade());
973
                }});
974
 
975
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
976
                        @Override
977
                        public void execute() throws Exception {
978
                                servidorService.atualizarServidor(getEntidade());
979
                        }
980
                }, OBRIGATORIO_INFORMAR_FUNCAO);
981
        }
982
 
983
        @Test
984
        public void aoAtualizarAlterandoServidorComMatriculaServidorAtivoJaCadastradaDeveriaLancarExcecao() {
985
 
986
                getContexto().checking(new Expectations(){{
987
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
988
                        will(returnValue(true));
989
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
990
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
991
                        will(returnValue(gerarServidorMesmaMatricula()));
992
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
993
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
994
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
995
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
996
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
997
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
998
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
999
                        never(servidorRepositoryMock).alterar(getEntidade());
1000
                }});
1001
 
1002
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1003
                        @Override
1004
                        public void execute() throws Exception {
1005
                                servidorService.atualizarServidor(getEntidade());
1006
                        }
1007
                }, MSG_ERRO_JA_EXISTE_SERVIDOR_ATIVO_CADASTRADO_COM_MATRICULA_INFORMADA +
1008
                        " Servidor: " + gerarServidorMesmaMatricula().getPessoa().getNumeroDocumento() + " - " + gerarServidorMesmaMatricula().getNomeDaPessoa());
1009
        }
1010
 
1011
        @Test
1012
        public void aoAtualizarAlterandoServidorComNumeroOrdemServidorAtivoJaCadastradaDeveriaLancarExcecao() {
1013
 
1014
                getContexto().checking(new Expectations(){{
1015
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1016
                        will(returnValue(true));
1017
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1018
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1019
                        will(returnValue(null));
1020
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1021
                        will(returnValue(null));
1022
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1023
                        will(returnValue(false));
1024
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1025
                        will(returnValue(true));
1026
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1027
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1028
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1029
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1030
                        never(servidorRepositoryMock).alterar(getEntidade());
1031
                }});
1032
 
1033
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1034
                        @Override
1035
                        public void execute() throws Exception {
1036
                                servidorService.atualizarServidor(getEntidade());
1037
                        }
1038
                }, MSG_ERRO_NUMERO_ORDEM_JA_CADASTRADO);
1039
        }
1040
 
1041
        @Test
1042
        public void aoAtualizarAlterandoServidorComCargoDiferenteTipoPrestadorEmMesmaUnidadeLotacaoDeveriaLancarExcecao() {
1043
 
1044
                ServidorDadoFuncional dadoFuncionalCargoDiferente = gerarDadoFuncionalTipoPrestador();
1045
                ((ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo)dadoFuncionalCargoDiferente).setCargo(new CargoBuilder().comCodigo(SEQUENCIAL_CARGO_9).build());
1046
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargoDiferente);
1047
 
1048
                getContexto().checking(new Expectations(){{
1049
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1050
                        will(returnValue(true));
1051
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1052
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1053
                        will(returnValue(null));
1054
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1055
                        will(returnValue(null));
1056
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1057
                        will(returnValue(false));
1058
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1059
                        will(returnValue(false));
1060
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1061
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1062
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1063
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1064
                        never(servidorRepositoryMock).alterar(getEntidade());
1065
                }});
1066
 
1067
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1068
                        @Override
1069
                        public void execute() throws Exception {
1070
                                servidorService.atualizarServidor(getEntidade());
1071
                        }
1072
                }, SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO);
1073
        }
1074
 
1075
        @Test
1076
        public void aoAtualizarAlterandoServidorComCargoDiferenteTipoMatriculaEmMesmaUnidadeLotacaoDeveriaLancarExcecao() {
1077
 
1078
                ServidorDadoFuncional dadoFuncionalPrestador = gerarDadoFuncionalTipoPrestador();
1079
                dadoFuncionalPrestador.setServidor(getEntidade());
1080
 
1081
                List<ServidorDadoFuncional> listaDadosFuncionais = new ArrayList<ServidorDadoFuncional>(getEntidade().getListaServidorDadoFuncional());
1082
                listaDadosFuncionais.remove(dadoFuncionalPrestador);
1083
                getEntidade().setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional>(listaDadosFuncionais));
1084
 
1085
                final ServidorDadoFuncional dadoFuncionalCargoDiferente = gerarDadoFuncionalTipoMatriculaCarreira();
1086
                ((ServidorDadoFuncionalMatriculaCarreira)dadoFuncionalCargoDiferente).setCargoCarreira(new CargoBuilder().comCodigo(SEQUENCIAL_CARGO_9).build());
1087
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargoDiferente);
1088
 
1089
                getContexto().checking(new Expectations(){{
1090
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1091
                        will(returnValue(true));
1092
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1093
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1094
                        will(returnValue(null));
1095
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1096
                        will(returnValue(null));
1097
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalCargoDiferente)));
1098
                        will(returnValue(null));
1099
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1100
                        will(returnValue(false));
1101
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1102
                        will(returnValue(false));
1103
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalCargoDiferente)));
1104
                        will(returnValue(false));
1105
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1106
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1107
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1108
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1109
                        never(servidorRepositoryMock).alterar(getEntidade());
1110
                }});
1111
 
1112
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1113
                        @Override
1114
                        public void execute() throws Exception {
1115
                                servidorService.atualizarServidor(getEntidade());
1116
                        }
1117
                }, SERVIDOR_POSSUI_DADO_FUNCIONAL_ATIVO_COM_CARGO_NA_UNIDADE_LOTACAO);
1118
        }
1119
 
1120
        @Test
1121
        public void aoAtualizarAlterandoServidorComTipoEfetivoCarreiraMedicaEeTipoMatriculaExcedendoLimite64HorasDeveriaLancarExcecao() {
1122
 
1123
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira();
1124
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_20));
1125
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
1126
 
1127
                getContexto().checking(new Expectations(){{
1128
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1129
                        will(returnValue(true));
1130
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1131
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1132
                        will(returnValue(null));
1133
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1134
                        will(returnValue(null));
1135
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalCargaHorariaExcedente)));
1136
                        will(returnValue(null));
1137
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1138
                        will(returnValue(false));
1139
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1140
                        will(returnValue(false));
1141
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalCargaHorariaExcedente)));
1142
                        will(returnValue(false));
1143
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1144
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1145
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1146
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1147
                        never(servidorRepositoryMock).alterar(getEntidade());
1148
                }});
1149
 
1150
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1151
                        @Override
1152
                        public void execute() throws Exception {
1153
                                servidorService.atualizarServidor(getEntidade());
1154
                        }
1155
                }, LIMITE_CARGA_HORARIA_ATINGIDO);
1156
        }
1157
 
1158
        @Test
1159
        public void aoAtualizarAlterandoServidorTipoEfetivoComCarreiraMedicaEeTipoPrestadorExcedendoLimite64HorasDeveriaLancarExcecao() {
1160
 
1161
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador();
1162
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_20));
1163
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
1164
 
1165
                getContexto().checking(new Expectations(){{
1166
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1167
                        will(returnValue(true));
1168
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1169
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1170
                        will(returnValue(null));
1171
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1172
                        will(returnValue(null));
1173
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1174
                        will(returnValue(false));
1175
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1176
                        will(returnValue(false));
1177
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1178
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1179
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1180
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1181
                        never(servidorRepositoryMock).alterar(getEntidade());
1182
                }});
1183
 
1184
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1185
                        @Override
1186
                        public void execute() throws Exception {
1187
                                servidorService.atualizarServidor(getEntidade());
1188
                        }
1189
                }, LIMITE_CARGA_HORARIA_ATINGIDO);
1190
        }
1191
 
1192
        @Test
1193
        public void aoAtualizarAlterandoServidorComTipoEfetivoEeTipoMatriculaExcedendoLimite60HorasDeveriaLancarExcecao() {
1194
 
1195
                ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
1196
                dadoFuncionalCarreiraMedica.setServidor(getEntidade());
1197
 
1198
                List<ServidorDadoFuncional> listaDadosFuncionais = new ArrayList<ServidorDadoFuncional>(getEntidade().getListaServidorDadoFuncional());
1199
                listaDadosFuncionais.remove(dadoFuncionalCarreiraMedica);
1200
                getEntidade().setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional>(listaDadosFuncionais));
1201
 
1202
                final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
1203
                ((ServidorDadoFuncionalMatriculaCarreira)dadoFuncionalSemCarreiraMedica).setCarreira(new CarreiraBuilder().comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9).build());
1204
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalSemCarreiraMedica);
1205
 
1206
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoMatriculaCarreira();
1207
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_20));
1208
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
1209
 
1210
                getContexto().checking(new Expectations(){{
1211
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1212
                        will(returnValue(true));
1213
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1214
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1215
                        will(returnValue(null));
1216
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalSemCarreiraMedica)));
1217
                        will(returnValue(null));
1218
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalCargaHorariaExcedente)));
1219
                        will(returnValue(null));
1220
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1221
                        will(returnValue(false));
1222
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalSemCarreiraMedica)));
1223
                        will(returnValue(false));
1224
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalCargaHorariaExcedente)));
1225
                        will(returnValue(false));
1226
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1227
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1228
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1229
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1230
                        never(servidorRepositoryMock).alterar(getEntidade());
1231
                }});
1232
 
1233
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1234
                        @Override
1235
                        public void execute() throws Exception {
1236
                                servidorService.atualizarServidor(getEntidade());
1237
                        }
1238
                }, LIMITE_CARGA_HORARIA_ATINGIDO);
1239
        }
1240
 
1241
        @Test
1242
        public void aoAtualizarAlterandoServidorComTipoEfetivoEeTipoPrestadorExcedendoLimite60HorasDeveriaLancarExcecao() {
1243
 
1244
                ServidorDadoFuncional dadoFuncionalCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
1245
                dadoFuncionalCarreiraMedica.setServidor(getEntidade());
1246
 
1247
                List<ServidorDadoFuncional> listaDadosFuncionais = new ArrayList<ServidorDadoFuncional>(getEntidade().getListaServidorDadoFuncional());
1248
                listaDadosFuncionais.remove(dadoFuncionalCarreiraMedica);
1249
                getEntidade().setListaServidorDadoFuncional(new HashSet<ServidorDadoFuncional>(listaDadosFuncionais));
1250
 
1251
                final ServidorDadoFuncional dadoFuncionalSemCarreiraMedica = gerarDadoFuncionalTipoMatriculaCarreira();
1252
                ((ServidorDadoFuncionalMatriculaCarreira)dadoFuncionalSemCarreiraMedica).setCarreira(new CarreiraBuilder().comCodigo(SEQUENCIAL_CARREIRA_APOIO_SAUDE_9).build());
1253
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalSemCarreiraMedica);
1254
 
1255
                final ServidorDadoFuncional dadoFuncionalCargaHorariaExcedente = gerarDadoFuncionalTipoPrestador();
1256
                dadoFuncionalCargaHorariaExcedente.setCargaHoraria(new Integer(CARGA_HORARIA_20));
1257
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalCargaHorariaExcedente);
1258
 
1259
                getContexto().checking(new Expectations(){{
1260
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1261
                        will(returnValue(true));
1262
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1263
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1264
                        will(returnValue(null));
1265
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(dadoFuncionalSemCarreiraMedica)));
1266
                        will(returnValue(null));
1267
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1268
                        will(returnValue(false));
1269
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(dadoFuncionalSemCarreiraMedica)));
1270
                        will(returnValue(false));
1271
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1272
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1273
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1274
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1275
                        never(servidorRepositoryMock).alterar(getEntidade());
1276
                }});
1277
 
1278
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1279
                        @Override
1280
                        public void execute() throws Exception {
1281
                                servidorService.atualizarServidor(getEntidade());
1282
                        }
1283
                }, LIMITE_CARGA_HORARIA_ATINGIDO);
1284
        }
1285
 
1286
        @Test
1287
        public void aoAtualizarAlterandoServidorComTipoEfetivoComCargoSemVagasDeveriaLancarExcecao() {
1288
                getContexto().checking(new Expectations(){{
1289
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1290
                        will(returnValue(true));
1291
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1292
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1293
                        will(returnValue(null));
1294
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1295
                        will(returnValue(null));
1296
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1297
                        will(returnValue(false));
1298
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1299
                        will(returnValue(false));
1300
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1301
                        will(returnValue(gerarCargoSemVagas()));
1302
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1303
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1304
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1305
                        never(servidorRepositoryMock).alterar(getEntidade());
1306
                }});
1307
 
1308
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1309
                        @Override
1310
                        public void execute() throws Exception {
1311
                                servidorService.atualizarServidor(getEntidade());
1312
                        }
1313
                }, "O limite de vagas para o cargo " + gerarCargoSemVagas().getDescricao() + " foi atingido.");
1314
        }
1315
 
1316
        @Test
1317
        public void aoAtualizarAlterandoServidorComTipoComissionadoComFuncaoSemVagasDeveriaLancarExcecao() {
1318
                getContexto().checking(new Expectations(){{
1319
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1320
                        will(returnValue(true));
1321
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1322
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1323
                        will(returnValue(null));
1324
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1325
                        will(returnValue(null));
1326
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1327
                        will(returnValue(false));
1328
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1329
                        will(returnValue(false));
1330
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1331
                        will(returnValue(gerarCargoComVagas()));
1332
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1333
                        will(returnValue(gerarFuncaoSemVagas()));
1334
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1335
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1336
                        never(servidorRepositoryMock).alterar(getEntidade());
1337
                }});
1338
 
1339
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1340
                        @Override
1341
                        public void execute() throws Exception {
1342
                                servidorService.atualizarServidor(getEntidade());
1343
                        }
1344
                }, "O limite de vagas para a função " + gerarFuncaoSemVagas().getNivel() + " - " + gerarFuncaoSemVagas().getTipo().getDescricao() + " foi atingido.");
1345
        }
1346
 
1347
        @Test
1348
        public void aoAtualizarAlterandoServidorComQuantidadeFuncaoGratificadaExcedendoLimiteDeveriaLancarExcecao() {
1349
                getContexto().checking(new Expectations(){{
1350
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1351
                        will(returnValue(true));
1352
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1353
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1354
                        will(returnValue(null));
1355
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1356
                        will(returnValue(null));
1357
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1358
                        will(returnValue(false));
1359
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1360
                        will(returnValue(false));
1361
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1362
                        will(returnValue(gerarCargoComVagas()));
1363
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1364
                        will(returnValue(gerarFuncaoComVagas()));
1365
                        oneOf(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1366
                        will(returnValue(gerarParametroQuantidadeVagasFuncaoGratificada()));
1367
                        oneOf(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1368
                        will(returnValue(1));
1369
                        never(servidorRepositoryMock).alterar(getEntidade());
1370
                }});
1371
 
1372
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1373
                        @Override
1374
                        public void execute() throws Exception {
1375
                                servidorService.atualizarServidor(getEntidade());
1376
                        }
1377
                }, LIMITE_VAGAS_FUNCAO_TIPO_GRATIFICADA_FOI_ATINGIDO);
1378
        }
1379
 
1380
        @Test
1381
        public void aoAtualizarAlterandoServidorComFotoDeFormatoInvalidoDeveriaLancarExcecao() {
1382
                getEntidade().setFoto(FileUtil.getConteudoArquivoImagem(DIRETORIO_FOTOS, NOME_FOTO_GIF));
1383
 
1384
                getContexto().checking(new Expectations(){{
1385
                        oneOf(servidorRepositoryMock).consultarSeExisteServidorPassandoRestricoes(gerarListaRestricoesConsultarServidorExiste(getEntidade()));
1386
                        will(returnValue(true));
1387
                        oneOf(getValidadorMock()).validar(with(getEntidade()), with(new Class<?>[]{Alterar.class}));
1388
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1389
                        never(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1390
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1391
                        never(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1392
                        never(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1393
                        never(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1394
                        never(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1395
                        never(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1396
                        never(servidorRepositoryMock).alterar(getEntidade());
1397
                }});
1398
 
1399
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1400
                        @Override
1401
                        public void execute() throws Exception {
1402
                                servidorService.atualizarServidor(getEntidade());
1403
                        }
1404
                }, EXTENSAO_ARQUIVO_FOTO_INVALIDA);
1405
        }
1406
 
1407
        @Test
1408
        public void aoAlterarSituacaoCadastralServidorDeveriaDelegarParaRepositorio() {
1409
                getContexto().checking(new Expectations(){{
1410
                        oneOf(servidorRepositoryMock).alterar(getEntidade());
1411
                }});
1412
 
1413
                servidorService.alterarSituacaoFichaCadastral(getEntidade(), TipoSituacaoCadastral.HOMOLOGADO);
1414
        }
1415
 
1416
        @Test
1417
        public void aoAlterarSituacaoCadastralServidorComUsuarioTecnicoSEREeDadoFuncionalApenasEstagiarioDeveriaDelegarParaRepositorio() {
1418
                getEntidade().setUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissaoTecnicoSER());
1419
                getEntidade().getListaServidorDadoFuncional().clear();
1420
 
1421
                ServidorDadoFuncional dadoFuncionalEstagiario = gerarDadoFuncionalTipoEstagiario();
1422
                dadoFuncionalEstagiario.setServidor(getEntidade());
1423
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalEstagiario);
1424
 
1425
                getContexto().checking(new Expectations(){{
1426
                        oneOf(servidorRepositoryMock).alterar(getEntidade());
1427
                }});
1428
 
1429
                servidorService.alterarSituacaoFichaCadastral(getEntidade(), TipoSituacaoCadastral.HOMOLOGADO);
1430
        }
1431
 
1432
        @Test
1433
        public void aoAlterarSituacaoCadastralServidorComUsuarioTecnicoSAFPEeDadoFuncionalApenasPrestadorDeveriaDelegarParaRepositorio() {
1434
                getEntidade().setUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissaoTecnicoSAFP());
1435
                getEntidade().getListaServidorDadoFuncional().clear();
1436
 
1437
                ServidorDadoFuncional dadoFuncionalPrestador = gerarDadoFuncionalTipoPrestador();
1438
                dadoFuncionalPrestador.setServidor(getEntidade());
1439
                getEntidade().getListaServidorDadoFuncional().add(dadoFuncionalPrestador);
1440
 
1441
                getContexto().checking(new Expectations(){{
1442
                        oneOf(servidorRepositoryMock).alterar(getEntidade());
1443
                }});
1444
 
1445
                servidorService.alterarSituacaoFichaCadastral(getEntidade(), TipoSituacaoCadastral.HOMOLOGADO);
1446
        }
1447
 
1448
        @Test
1449
        public void aoAlterarSituacaoCadastralServidorComUsuarioTecnicoSEREeDadoFuncionalDiferenteEstagiarioDeveriaLancarExcecao() {
1450
                getEntidade().setUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissaoTecnicoSER());
1451
 
1452
                getContexto().checking(new Expectations(){{
1453
                        never(servidorRepositoryMock).alterar(getEntidade());
1454
                }});
1455
 
1456
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1457
                        @Override
1458
                        public void execute() throws Exception {
1459
                                servidorService.alterarSituacaoFichaCadastral(getEntidade(), TipoSituacaoCadastral.HOMOLOGADO);
1460
                        }
1461
                }, MSG_ERRO_NAO_EH_PERMITIDO_ALTERAR_SITUACAO_SERVIDOR_COM_DADO_FUNCIONAL_DIFERENTE_ESTAGIARIO);
1462
        }
1463
 
1464
        @Test
1465
        public void aoAlterarSituacaoCadastralServidorComUsuarioTecnicoSAFPEeDadoFuncionalDiferentePrestadorDeveriaLancarExcecao() {
1466
                getEntidade().setUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissaoTecnicoSAFP());
1467
 
1468
                getContexto().checking(new Expectations(){{
1469
                        never(servidorRepositoryMock).alterar(getEntidade());
1470
                }});
1471
 
1472
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
1473
                        @Override
1474
                        public void execute() throws Exception {
1475
                                servidorService.alterarSituacaoFichaCadastral(getEntidade(), TipoSituacaoCadastral.HOMOLOGADO);
1476
                        }
1477
                }, MSG_ERRO_NAO_EH_PERMITIDO_ALTERAR_SITUACAO_SERVIDOR_COM_DADO_FUNCIONAL_DIFERENTE_PRESTADOR);
1478
        }
1479
 
1480
        @Test
1481
        public void aoConsultarDeveriaDelegarParaOhRepositorio() throws Exception {
1482
                final ParametroConsultaServidorDTO parametroConsultaServidorDTO = new ParametroConsultaServidorDTO();
1483
                getContexto().checking(new Expectations(){{
1484
                        oneOf(servidorRepositoryMock).consultar(parametroConsultaServidorDTO);
1485
                }});
1486
 
1487
                servidorService.consultar(parametroConsultaServidorDTO);
1488
        }
1489
 
1490
        @Test
1491
        public void aoObterQuantidadeDeRegistrosDeveriaDelegarParaOhRepositorio() throws Exception {
1492
                final ParametroConsultaServidorDTO parametroConsultaServidorDTO = new ParametroConsultaServidorDTO();
1493
                getContexto().checking(new Expectations(){{
1494
                        oneOf(servidorRepositoryMock).obterQuantidadeDeRegistros(parametroConsultaServidorDTO);
1495
                }});
1496
 
1497
                servidorService.obterQuantidadeDeRegistros(parametroConsultaServidorDTO);
1498
        }
1499
 
1500
        @Test
1501
        public void aoConsultarServidorPorNossoNumeroDeveriaDelegarParaOhServico() throws Exception {
1502
                getContexto().checking(new Expectations(){{
1503
                        oneOf(servidorRepositoryMock).consultarServidorPorNossoNumero(with(any(Long.class)));
1504
                }});
1505
 
1506
                servidorService.consultarServidorPorNossoNumero(new Long(1l));
1507
        }
1508
 
1509
        @Test
1510
        public void aoConsultarServidorAtivoDeveriaDelegarParaOhRepositorio() throws Exception {
1511
                getContexto().checking(new Expectations(){{
1512
                        oneOf(servidorRepositoryMock).consultarServidorUnidade(with(any(ParametroConsultaServidorAtivoDTO.class)));
1513
                }});
1514
 
1515
                servidorService.consultarServidorAtivo(new ParametroConsultaServidorAtivoDTO());
1516
        }
1517
 
1518
        @Test
1519
        public void aoConsultarServidorNaoPendenteDeveriaDelegarParaOhRepositorio() throws Exception {
1520
                getContexto().checking(new Expectations(){{
1521
                        oneOf(servidorRepositoryMock).consultarServidorUnidade(with(any(ParametroConsultaServidorAtivoDTO.class)));
1522
                }});
1523
 
1524
                servidorService.consultarServidorNaoPendente(new ParametroConsultaServidorAtivoDTO());
1525
        }
1526
 
1527
        @Test
1528
        public void aoObterQuantidadeDeRegistrosParaConsultarServidorAtivoDeveriaDelegarParaOhRepositorio() throws Exception {
1529
                getContexto().checking(new Expectations(){{
1530
                        oneOf(servidorRepositoryMock).obterQuantidadeDeRegistrosParaServidorUnidade(with(any(ParametroConsultaServidorAtivoDTO.class)));
1531
                }});
1532
 
1533
                servidorService.obterQuantidadeDeRegistrosParaConsultarServidorAtivo(new ParametroConsultaServidorAtivoDTO());
1534
        }
1535
 
1536
        @Test
1537
        public void aoObterQuantidadeDeRegistrosParaConsultarServidorNaoPendenteDeveriaDelegarParaOhRepositorio() throws Exception {
1538
                getContexto().checking(new Expectations(){{
1539
                        oneOf(servidorRepositoryMock).obterQuantidadeDeRegistrosParaServidorUnidade(with(any(ParametroConsultaServidorAtivoDTO.class)));
1540
                }});
1541
 
1542
                servidorService.obterQuantidadeDeRegistrosParaConsultarServidorNaoPendente(new ParametroConsultaServidorAtivoDTO());
1543
        }
1544
 
1545
 
1546
        @Override
1547
        protected void expectativasDeNegocioFuncionalidadeCadastrar() {
1548
                expectativasDeNegocioFuncionalidadesCadastrarEeAlterar();
1549
        };
1550
 
1551
        @Override
1552
        protected void expectativasDeNegocioFuncionalidadeAlterar() {
1553
                expectativasDeNegocioFuncionalidadesCadastrarEeAlterar();
1554
        }
1555
 
1556
        private void expectativasDeNegocioFuncionalidadesCadastrarEeAlterar() {
1557
                getContexto().checking(new Expectations(){{
1558
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatricula())));
1559
                        will(returnValue(null));
1560
                        oneOf(servidorRepositoryMock).consultarServidorPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmaMatricula(gerarDadoFuncionalTipoMatriculaCarreira())));
1561
                        will(returnValue(null));
1562
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatricula())));
1563
                        will(returnValue(false));
1564
                        oneOf(servidorRepositoryMock).consultarSeExisteDadoFuncionalPassandoRestricoes(with(gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(gerarDadoFuncionalTipoMatriculaCarreira())));
1565
                        will(returnValue(false));
1566
                        oneOf(cargoRepositoryMock).consultarCargoAtivo(((ServidorDadoFuncionalMatriculaCarreira)gerarDadoFuncionalTipoMatriculaCarreira()).getCargoCarreira());
1567
                        will(returnValue(gerarCargoComVagas()));
1568
                        oneOf(funcaoRepositoryMock).consultarFuncaoAtiva(((ServidorDadoFuncionalMatricula)gerarDadoFuncionalTipoMatricula()).getFuncao());
1569
                        will(returnValue(gerarFuncaoComVagas()));
1570
                        oneOf(parametroRepositoryMock).consultarPorId(gerarParametroConsultaQuantidadeVagasFuncaoGratificada());
1571
                        will(returnValue(gerarParametroQuantidadeVagasFuncaoGratificada()));
1572
                        oneOf(servidorRepositoryMock).obterQuantidadeRegistrosParaFuncaoGratificada();
1573
                        will(returnValue(0));
1574
                }});
1575
        }
1576
 
1577
        private Servidor gerarServidorMesmaMatricula() {
1578
                Servidor servidor = new ServidorBuilder()
1579
                        .comPessoa(gerarPessoaFisicaYanne())
1580
                        .build();
1581
 
1582
                return servidor;
1583
        }
1584
 
1585
        private PessoaFisicaView gerarPessoaFisicaYanne() {
1586
                PessoaFisicaView pessoa = new PessoaFisicaView();
1587
                pessoa.setSequencialPessoa(new Long(SEQUENCIAL_PESSOA_13));
1588
                pessoa.setNumeroDocumento(NUMERO_CPF_03147532062);
1589
                pessoa.setNomePessoa(NOME_PESSOA_YANNE_ALMEIDA);
1590
                return pessoa;
1591
        }
1592
 
1593
        private Servidor gerarServidorCompleto() {
1594
                Servidor servidor = new ServidorBuilder()
1595
                        .comGrauInstrucao(new GrauInstrucaoBuilder().comCodigo(SEQUENCIAL_GRAU_INSTRUCAO_SUPERIOR_4).build())
1596
                        .comNacionalidade(new NacionalidadeBuilder().comCodigo(SEQUENCIAL_NACIONALIDADE_BRASILEIRA_1).build())
1597
                        .comDeficiencia(new DeficienciaBuilder().comCodigo(SEQUENCIAL_DEFICIENCIA_FISICA_3).build())
1598
                        .comDependente(gerarDependentes())
1599
                        .comQualificacao(gerarQualificacoes())
1600
                        .comDadoFuncional(gerarDadosFuncionais())
1601
                        .comUsuarioCadastro(SEQUENCIAL_USUARIO_3)
1602
                        .comUsuarioAlteracaoSituacaoCadastral(gerarUsuarioComPermissoesCompletas())
1603
                .build();
1604
 
1605
                return servidor;
1606
        }
1607
 
1608
        private Set<ServidorDependente> gerarDependentes() {
1609
                Set<ServidorDependente> dependentes = new HashSet<ServidorDependente>();
1610
 
1611
                ServidorDependente servidorDependente = new ServidorDependenteBuilder()
1612
                        .comNome(NOME_PESSOA_JOSE_MARIA)
1613
                        .comCPF(NUMERO_CPF_07771278495)
1614
                        .comDataNascimento(DATA_NASCIMENTO_01_01_1995)
1615
                        .comSexo(DESCRICAO_SEXO_MASCULINO)
1616
                        .comTipoParentesco(GRAU_PARENTESCO_FILHO_F)
1617
                        .build();
1618
 
1619
                dependentes.add(servidorDependente);
1620
 
1621
                return dependentes;
1622
        }
1623
 
1624
        private Set<ServidorQualificacao> gerarQualificacoes() {
1625
                Set<ServidorQualificacao> qualificacoes = new HashSet<ServidorQualificacao>();
1626
 
1627
                ServidorQualificacao servidorQualificacao = new ServidorQualificacaoBuilder()
1628
                        .comTipoQualificacao(TIPO_QUALIFICACAO_FORMACAO_ACADEMICA_A)
1629
                        .comDescricao(DESCRICAO_CURSO_ANALISE_SISTEMAS)
1630
                        .comInstituicao(INSTITUICAO_CESMAC)
1631
                        .comCargaHoraria(NUMERO_CARGA_HORARIA_10)
1632
                        .comDataInicial(DATA_INICIAL_01_01_2012)
1633
                        .comDataFinal(DATA_FINAL_01_03_2012)
1634
                        .build();
1635
 
1636
                qualificacoes.add(servidorQualificacao);
1637
 
1638
                return qualificacoes;
1639
        }
1640
 
1641
        private Set<ServidorDadoFuncional> gerarDadosFuncionais() {
1642
                Set<ServidorDadoFuncional> dadosFuncionais = new HashSet<ServidorDadoFuncional>();
1643
 
1644
                dadosFuncionais.add(gerarDadoFuncionalTipoMatricula());
1645
                dadosFuncionais.add(gerarDadoFuncionalTipoMatriculaCarreira());
1646
                dadosFuncionais.add(gerarDadoFuncionalTipoEstagiario());
1647
                dadosFuncionais.add(gerarDadoFuncionalTipoPrestador());
1648
 
1649
                return dadosFuncionais;
1650
        }
1651
 
1652
        private FormaIngresso gerarFormaIngresso(Integer codigo, TipoVinculo tipoVinculo) {
1653
                return new FormaIngressoBuilder().comCodigo(codigo.toString()).comTipoVinculo(tipoVinculo).build();
1654
        }
1655
 
1656
        private Orgao gerarOrgao(String codigoOrgao) {
1657
                return new OrgaoBuilder().comSequencial(codigoOrgao).build();
1658
        }
1659
 
1660
        private Unidade gerarUnidade(String codigoUnidade) {
1661
                return new UnidadeBuilder().comCodigo(codigoUnidade).build();
1662
        }
1663
 
1664
        private SetorView gerarSetor(String codigoSetor) {
1665
                return new SetorViewBuilder().comCodigo(codigoSetor).build();
1666
        }
1667
 
1668
        private Funcao gerarFuncaoGratificada(String codigo) {
1669
                return new FuncaoBuilder().comCodigo(codigo).comTipoFuncao(TipoFuncao.FUNCAO_GRATIFICADA.getValue()).comAtivo(ATIVO_SIM).build();
1670
        }
1671
 
1672
        private Funcao gerarFuncaoCargoComissionado(String codigo) {
1673
                return new FuncaoBuilder().comCodigo(codigo).comTipoFuncao(TipoFuncao.CARGO_COMISSIONADO.getValue()).comAtivo(ATIVO_SIM).build();
1674
        }
1675
 
1676
        private ServidorDadoFuncional gerarDadoFuncionalTipoMatricula() {
1677
                ServidorDadoFuncionalMatricula servidorDadoFuncional = new ServidorDadoFuncionalMatriculaBuilder()
1678
                        .comMatricula(NUMERO_MATRICULA_96754522)
1679
                        .comDigitoMatricula(DIGITO_MATRICULA_0)
1680
                        .comNumeroOrdem(NUMERO_ORDEM_3542)
1681
                        .comSituacaoServidor(SEQUENCIAL_SITUACAO_SERVIDOR_ATIVO_1)
1682
                        .comDataNomeacao(DATA_INICIO_01_01_2011)
1683
                        .comDataPosse(DATA_INICIO_01_01_2011)
1684
                        .comDataExercicio(DATA_INICIO_01_01_2011)
1685
                        .comFuncao(gerarFuncaoGratificada(SEQUENCIAL_FUNCAO_ANALISTA_SISTEMAS_19))
1686
                        .comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20)
1687
                        .comTipoRegimeTrabalho(TIPO_REGIME_TRABALHO_NORMAL_N)
1688
                        .comFormaIngresso(gerarFormaIngresso(FormaIngresso.FORMA_INGRESSO_COMISSIONADO, TipoVinculo.COMISSIONADO))
1689
                        .comDataInicio(DATA_INICIO_01_01_2011)
1690
                        .comCargaHoraria(CARGA_HORARIA_10)
1691
                        .comOrgaoLotacao(gerarOrgao(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20))
1692
                        .comUnidadeLotacao(gerarUnidade(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25))
1693
                        .comSetor(gerarSetor(CODIGO_SETOR_INFORMATICA_100))
1694
                .build();
1695
 
1696
                return servidorDadoFuncional;
1697
        }
1698
 
1699
        private ServidorDadoFuncional gerarDadoFuncionalTipoMatriculaExonerado() {
1700
                ServidorDadoFuncionalMatricula servidorDadoFuncional = new ServidorDadoFuncionalMatriculaBuilder()
1701
                        .comMatricula(NUMERO_MATRICULA_9889424)
1702
                        .comDigitoMatricula(DIGITO_MATRICULA_8)
1703
                        .comNumeroOrdem(NUMERO_ORDEM_1357)
1704
                        .comSituacaoServidor(SEQUENCIAL_SITUACAO_SERVIDOR_EXONERADO_2)
1705
                        .comDataNomeacao(DATA_INICIO_01_01_2011)
1706
                        .comDataPosse(DATA_INICIO_01_01_2011)
1707
                        .comDataExercicio(DATA_INICIO_01_01_2011)
1708
                        .comFuncao(gerarFuncaoCargoComissionado(SEQUENCIAL_FUNCAO_ASSESSOR_TECNICO_23))
1709
                        .comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20)
1710
                        .comTipoRegimeTrabalho(TIPO_REGIME_TRABALHO_NORMAL_N)
1711
                        .comFormaIngresso(gerarFormaIngresso(FormaIngresso.FORMA_INGRESSO_COMISSIONADO, TipoVinculo.COMISSIONADO))
1712
                        .comDataInicio(DATA_INICIO_01_01_2011)
1713
                        .comCargaHoraria(CARGA_HORARIA_10)
1714
                        .comOrgaoLotacao(gerarOrgao(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20))
1715
                        .comUnidadeLotacao(gerarUnidade(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25))
1716
                        .comSetor(gerarSetor(CODIGO_SETOR_INFORMATICA_100))
1717
                .build();
1718
 
1719
                return servidorDadoFuncional;
1720
        }
1721
 
1722
        private ServidorDadoFuncional gerarDadoFuncionalTipoMatriculaCarreira() {
1723
                ServidorDadoFuncionalMatriculaCarreira servidorDadoFuncional = new ServidorDadoFuncionalMatriculaCarreiraBuilder()
1724
                        .comUnidadeExercicio(SEQUENCIAL_UNIDADE_SEDE_33)
1725
                        .comCargo(SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13)
1726
                        .comCarreira(SEQUENCIAL_CARREIRA_MEDICA_8)
1727
                        .comTipoClasse(TIPO_CLASSE_A)
1728
                        .comTipoNivel(TIPO_NIVEL_4)
1729
                        .comMatricula(NUMERO_MATRICULA_96754522)
1730
                        .comDigitoMatricula(DIGITO_MATRICULA_0)
1731
                        .comNumeroOrdem(NUMERO_ORDEM_3542)
1732
                        .comSituacaoServidor(SEQUENCIAL_SITUACAO_SERVIDOR_ATIVO_1)
1733
                        .comDataNomeacao(DATA_INICIO_01_01_2011)
1734
                        .comDataPosse(DATA_INICIO_01_01_2011)
1735
                        .comDataExercicio(DATA_INICIO_01_01_2011)
1736
                        .comFuncao(gerarFuncaoGratificada(SEQUENCIAL_FUNCAO_ANALISTA_SISTEMAS_19))
1737
                        .comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20)
1738
                        .comTipoRegimeTrabalho(TIPO_REGIME_TRABALHO_NORMAL_N)
1739
                        .comFormaIngresso(gerarFormaIngresso(FormaIngresso.FORMA_INGRESSO_CONCURSADO, TipoVinculo.EFETIVO))
1740
                        .comDataInicio(DATA_INICIO_01_01_2011)
1741
                        .comCargaHoraria(CARGA_HORARIA_10)
1742
                        .comOrgaoLotacao(gerarOrgao(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20))
1743
                        .comUnidadeLotacao(gerarUnidade(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25))
1744
                        .comSetor(gerarSetor(CODIGO_SETOR_INFORMATICA_100))
1745
                        .build();
1746
 
1747
                return servidorDadoFuncional;
1748
        }
1749
 
1750
        private ServidorDadoFuncional gerarDadoFuncionalTipoEstagiario() {
1751
                ServidorDadoFuncionalContratadoEstagiario servidorDadoFuncional = new ServidorDadoFuncionalContratadoEstagiarioBuilder()
1752
                        .comInstituicao(CODIGO_INSTITUICAO_CESMAC_3)
1753
                        .comCursoEstagio(CODIGO_CURSO_MEDICINA_1)
1754
                        .comIndicadorObrigatorio(OBRIGATORIO_NAO)
1755
                        .comIndicadorRemunerado(DESCRICAO_SIM)
1756
                        .comTipoNivel(NIVEL_ENSINO_SUPERIOR_S)
1757
                        .comNumeroContrato(NUMERO_CONTRATO_354_2010)
1758
                        .comDataFim(DATA_ATUAL_MAIS_365_DIA)
1759
                        .comDataRescisao(DATA_ATUAL_MAIS_1_DIA)
1760
                        .comFormaIngresso(gerarFormaIngresso(FormaIngresso.FORMA_INGRESSO_ESTAGIARIO, TipoVinculo.CONTRATADO))
1761
                        .comDataInicio(DATA_INICIO_01_01_2011)
1762
                        .comCargaHoraria(CARGA_HORARIA_10)
1763
                        .comOrgaoLotacao(gerarOrgao(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20))
1764
                        .comUnidadeLotacao(gerarUnidade(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25))
1765
                        .comSetor(gerarSetor(CODIGO_SETOR_INFORMATICA_100))
1766
                        .build();
1767
 
1768
                return servidorDadoFuncional;
1769
        }
1770
 
1771
        private ServidorDadoFuncional gerarDadoFuncionalTipoPrestador() {
1772
                ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo servidorDadoFuncional = new ServidorDadoFuncionalContratadoPrestadorProcessoSeletivoBuilder()
1773
                        .comCargo(SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13)
1774
                        .comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20)
1775
                        .comNumeroContrato(NUMERO_CONTRATO_35_2013)
1776
                        .comDataFim(DATA_ATUAL_MAIS_1_DIA)
1777
                        .comFormaIngresso(gerarFormaIngresso(FormaIngresso.FORMA_INGRESSO_PRESTADOR, TipoVinculo.CONTRATADO))
1778
                        .comDataInicio(DATA_INICIO_01_01_2011)
1779
                        .comCargaHoraria(CARGA_HORARIA_20)
1780
                        .comOrgaoLotacao(gerarOrgao(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20))
1781
                        .comUnidadeLotacao(gerarUnidade(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25))
1782
                        .comSetor(gerarSetor(CODIGO_SETOR_INFORMATICA_100))
1783
                        .build();
1784
 
1785
                return servidorDadoFuncional;
1786
        }
1787
 
1788
        private ServidorDadoFuncional gerarDadoFuncionalTipoPrestadorInativo() {
1789
                ServidorDadoFuncionalContratadoPrestadorProcessoSeletivo servidorDadoFuncional = new ServidorDadoFuncionalContratadoPrestadorProcessoSeletivoBuilder()
1790
                        .comCargo(SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13)
1791
                        .comOrgaoOrigem(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20)
1792
                        .comNumeroContrato(NUMERO_CONTRATO_905_2013)
1793
                        .comDataFim(DATA_ATUAL_MENOS_1_DIA)
1794
                        .comFormaIngresso(gerarFormaIngresso(FormaIngresso.FORMA_INGRESSO_PROCESSO_SELETIVO, TipoVinculo.CONTRATADO))
1795
                        .comDataInicio(DATA_INICIO_01_01_2011)
1796
                        .comCargaHoraria(CARGA_HORARIA_20)
1797
                        .comOrgaoLotacao(gerarOrgao(SEQUENCIAL_ORGAO_SECRETARIA_ESTADO_SAUDE_20))
1798
                        .comUnidadeLotacao(gerarUnidade(SEQUENCIAL_UNIDADE_HOSPITAL_GERAL_ESTADO_25))
1799
                        .comSetor(gerarSetor(CODIGO_SETOR_INFORMATICA_100))
1800
                        .build();
1801
 
1802
                return servidorDadoFuncional;
1803
        }
1804
 
1805
        private List<Restricoes> gerarListaRestricoesConsultarServidorMesmaMatricula(ServidorDadoFuncional dadoFuncional) {
1806
                List<Restricoes> listaRestricoes = new ArrayList<Restricoes>();
1807
 
1808
                listaRestricoes.add(Restricoes.igualComAlias("df", "matriculaServidor", ((ServidorDadoFuncionalMatricula)dadoFuncional).getMatriculaServidor()));
1809
                listaRestricoes.add(Restricoes.igualComAlias("df", "situacaoServidor.codigo", SituacaoServidor.CODIGO_SITUACAO_ATIVO_1));
1810
                if(VerificadorUtil.naoEstaNulo(dadoFuncional.getSequencial())) {
1811
                        listaRestricoes.add(Restricoes.diferenteDeComAlias("df", "sequencial", dadoFuncional.getSequencial()));
1812
                }
1813
 
1814
                return listaRestricoes;
1815
        }
1816
 
1817
        private List<Restricoes> gerarListaRestricoesConsultarServidorMesmoNumeroOrdem(ServidorDadoFuncional dadoFuncional) {
1818
                List<Restricoes> listaRestricoes = new ArrayList<Restricoes>();
1819
 
1820
                listaRestricoes.add(Restricoes.igual("ordem", ((ServidorDadoFuncionalMatricula)dadoFuncional).getOrdem()));
1821
                if(VerificadorUtil.naoEstaNulo(dadoFuncional.getSequencial())) {
1822
                        listaRestricoes.add(Restricoes.diferenteDe("sequencial", dadoFuncional.getSequencial()));
1823
                }
1824
 
1825
                return listaRestricoes;
1826
        }
1827
 
1828
        private List<Restricoes> gerarListaRestricoesConsultarServidorExiste(Servidor entidade) {
1829
                List<Restricoes> listaRestricoes = new ArrayList<Restricoes>();
1830
                listaRestricoes.add(Restricoes.igual("pessoa", entidade.getPessoa()));
1831
 
1832
                return listaRestricoes;
1833
        }
1834
 
1835
        private CargoDTO gerarCargoComVagas() {
1836
                CargoDTO cargo = gerarCargo();
1837
                cargo.setQuantidadeVagasOcupadas(20L);
1838
                return cargo;
1839
        }
1840
 
1841
        private CargoDTO gerarCargoSemVagas() {
1842
                CargoDTO cargo = gerarCargo();
1843
                cargo.setQuantidadeVagasOcupadas(30L);
1844
                return cargo;
1845
        }
1846
 
1847
        private FuncaoDTO gerarFuncaoComVagas() {
1848
                FuncaoDTO funcao = gerarFuncao();
1849
                funcao.setQuantidadeVagasOcupadas(6L);
1850
                return funcao;
1851
        }
1852
 
1853
        private FuncaoDTO gerarFuncaoSemVagas() {
1854
                FuncaoDTO funcao = gerarFuncao();
1855
                funcao.setQuantidadeVagasOcupadas(10L);
1856
                return funcao;
1857
        }
1858
 
1859
        private CargoDTO gerarCargo() {
1860
                CargoDTO cargo = new CargoDTO();
1861
                cargo.setCodigo(new Integer(SEQUENCIAL_CARGO_ANALISTA_SISTEMAS_13));
1862
                cargo.setDescricao(DESCRICAO_CARGO_ANALISTA_SISTEMAS);
1863
                cargo.setQuantidadeVagas(30L);
1864
                return cargo;
1865
        }
1866
 
1867
        private FuncaoDTO gerarFuncao() {
1868
                FuncaoDTO funcao = new FuncaoDTO();
1869
                funcao.setCodigo(new Integer(SEQUENCIAL_FUNCAO_ANALISTA_SISTEMAS_19));
1870
                funcao.setDescricao(DESCRICAO_FUNCAO_ANALISTA_SISTEMAS);
1871
                funcao.setNivel(NIVEL_AS3);
1872
                funcao.setTipo(TipoFuncao.CARGO_COMISSIONADO);
1873
                funcao.setQuantidadeVagas(10L);
1874
                return funcao;
1875
        }
1876
 
1877
        private UsuarioView gerarUsuarioComPermissoesCompletas() {
1878
                UsuarioView usuario = new UsuarioViewBuilder()
1879
                        .comSequencial(SEQUENCIAL_PESSOA_13)
1880
                        .comPermissao(gerarPermissao(PAPEL_SERVIDOR_TECNICO_SIF_SEM_PREFIXO_ROLE))
1881
                        .comPermissao(gerarPermissao(PAPEL_SERVIDOR_TECNICO_SER_SEM_PREFIXO_ROLE))
1882
                        .comPermissao(gerarPermissao(PAPEL_SERVIDOR_TECNICO_SAFP_SEM_PREFIXO_ROLE))
1883
                        .build();
1884
 
1885
                return usuario;
1886
        }
1887
 
1888
        private UsuarioView gerarUsuarioComPermissaoTecnicoSER() {
1889
                UsuarioView usuario = new UsuarioViewBuilder()
1890
                        .comSequencial(SEQUENCIAL_PESSOA_13)
1891
                        .comPermissao(gerarPermissao(PAPEL_SERVIDOR_TECNICO_SER_SEM_PREFIXO_ROLE))
1892
                        .build();
1893
 
1894
                return usuario;
1895
        }
1896
 
1897
        private UsuarioView gerarUsuarioComPermissaoTecnicoSAFP() {
1898
                UsuarioView usuario = new UsuarioViewBuilder()
1899
                        .comSequencial(SEQUENCIAL_PESSOA_13)
1900
                        .comPermissao(gerarPermissao(PAPEL_SERVIDOR_TECNICO_SAFP_SEM_PREFIXO_ROLE))
1901
                        .build();
1902
 
1903
                return usuario;
1904
        }
1905
 
1906
        private PermissaoView gerarPermissao(String descricaoPermissao) {
1907
                PermissaoView permissao = new PermissaoView();
1908
                permissao.setRole(descricaoPermissao);
1909
                return permissao;
1910
        }
1911
 
1912
        private Parametro gerarParametroConsultaQuantidadeVagasFuncaoGratificada() {
1913
                Parametro parametro = new Parametro();
1914
                parametro.setCodigo(CODIGO_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO_GRATIFICADA_1);
1915
                return parametro;
1916
        }
1917
 
1918
        private Parametro gerarParametroQuantidadeVagasFuncaoGratificada() {
1919
                Parametro parametro = new Parametro();
1920
                parametro.setCodigo(Integer.parseInt(CODIGO_PARAMETRO_1));
1921
                parametro.setDescricao(DESCRICAO_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO);
1922
                parametro.setValor(VALOR_PARAMETRO_QUANTIDADE_VAGAS_FUNCAO);
1923
                return parametro;
1924
        }
1925
 
1926
}