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.rhd.core.domain;
2
 
3
import static br.gov.al.saude.test.ConstantesTestHelper.MensagensRetorno.MSG_ERRO_SERVIDOR_NAO_EXISTE;
4
import static br.gov.al.saude.test.ConstantesTestHelper.ServidorConstantes.SEQUENCIAL_SERVIDOR_LUCIANO_BARBOSA_1;
5
import static org.junit.Assert.assertTrue;
6
 
7
import java.util.ArrayList;
8
import java.util.List;
9
 
10
import org.jmock.Expectations;
11
import org.junit.Before;
12
import org.junit.Test;
13
 
14
import br.gov.al.saude.framework.core.consulta.restricao.Restricoes;
15
import br.gov.al.saude.framework.core.generic.GenericRepository;
16
import br.gov.al.saude.framework.core.generic.GenericService;
17
import br.gov.al.saude.framework.core.validador.Validador;
18
import br.gov.al.saude.rhd.core.domain.servidor.ServidorService;
19
import br.gov.al.saude.rhd.core.domain.servidor.impl.ServidorServiceImpl;
20
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.ServidorAvaliacaoRepository;
21
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.ServidorRepository;
22
import br.gov.al.saude.rhd.model.Cronograma;
23
import br.gov.al.saude.rhd.model.QualificacaoServidorCronograma;
24
import br.gov.al.saude.rhd.model.ServidorAvaliacao;
25
import br.gov.al.saude.rhd.model.view.QualificacaoServidorView;
26
import br.gov.al.saude.rhd.model.view.ServidorDadoFuncionalView;
27
import br.gov.al.saude.rhd.model.view.ServidorView;
28
import br.gov.al.saude.test.builder.ServidorAvaliacaoBuilder;
29
import br.gov.al.saude.test.unidade.generic.service.ServiceImplTest;
30
import br.gov.al.saude.test.util.CommandSemMensagem;
31
import br.gov.al.saude.test.util.VerificadorLancamentoException;
32
 
33
/**
34
 * @author Bruno Lopes
35
 * @since 29/05/2013
36
 */
37
public class ServidorServiceImplTest extends ServiceImplTest<ServidorView> {
38
 
39
        protected static final Long CRONOGRAMA_2013 = 2013L;
40
        protected static final Integer PRIMEIRO_REGISTRO_0 = 0;
41
        protected static final Integer TAMANHO_PAGINA_5 = 5;
42
 
43
        private ServidorService servidorService;
44
        private ServidorRepository servidorRepositoryMock;
45
        private ServidorAvaliacaoRepository servidorAvaliacaoRepositoryMock;
46
 
47
        @Before
48
        public void inicializarContexto() {
49
                super.inicializarContexto();
50
                servidorRepositoryMock = getContexto().mock(ServidorRepository.class);
51
                servidorAvaliacaoRepositoryMock = getContexto().mock(ServidorAvaliacaoRepository.class);
52
                validadorMock = getContexto().mock(Validador.class);
53
                servidorService = new ServidorServiceImpl(validadorMock, servidorRepositoryMock, servidorAvaliacaoRepositoryMock);
54
        }
55
 
56
        protected GenericService<ServidorView> getService() {
57
                return servidorService;
58
        }
59
 
60
        protected GenericRepository<ServidorView> getRepositoryMock() {
61
                return servidorRepositoryMock;
62
        }
63
 
64
        @Test
65
        public void aoConsultarDadosPessoaisDeveriaDelegarParaOhRepositorio() {
66
                getContexto().checking(new Expectations(){{
67
                        oneOf(servidorRepositoryMock).consultarServidorPorSequencialPessoa(new Long(SEQUENCIAL_SERVIDOR_LUCIANO_BARBOSA_1));
68
                        will(returnValue(new ServidorView()));
69
                }});
70
                servidorService.consultarDadosPessoais(new Long(SEQUENCIAL_SERVIDOR_LUCIANO_BARBOSA_1));
71
        }
72
 
73
        @Test
74
        public void aoConsultarDadosPessoaisComServidorNaoExistenteDeveriaLancarExcecao() {
75
                getContexto().checking(new Expectations(){{
76
                        oneOf(servidorRepositoryMock).consultarServidorPorSequencialPessoa(new Long(SEQUENCIAL_SERVIDOR_LUCIANO_BARBOSA_1));
77
                        will(returnValue(null));
78
                }});
79
 
80
                VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
81
                        @Override
82
                        public void execute() throws Exception {
83
                                servidorService.consultarDadosPessoais(new Long(SEQUENCIAL_SERVIDOR_LUCIANO_BARBOSA_1));
84
                        }
85
                }, MSG_ERRO_SERVIDOR_NAO_EXISTE);
86
        }
87
 
88
 
89
        @Test @SuppressWarnings("unchecked")
90
        public void aoListarServidorParticipanteDoOrgaoEhCronogramaDeveriaDelegarParaOhRepositorio() {
91
                getContexto().checking(new Expectations(){{
92
                        oneOf(servidorRepositoryMock).listarServidorParticipanteDeGrupoDaUnidadeEhCronograma(with(any(List.class)), with(any(Long.class)), with(any(Integer.class)), with(any(Integer.class)));
93
                }});
94
                servidorService.listarServidorParticipanteDeGrupoDaUnidadeEhCronograma(new ArrayList<Long>(), CRONOGRAMA_2013, PRIMEIRO_REGISTRO_0, TAMANHO_PAGINA_5);
95
        }
96
 
97
        @Test @SuppressWarnings("unchecked")
98
        public void aoListarServidorParticipanteDoOrgaoEhCronogramaDeveriaRetornarUmaLista() {
99
                getContexto().checking(new Expectations(){{
100
                        oneOf(servidorRepositoryMock).listarServidorParticipanteDeGrupoDaUnidadeEhCronograma(with(any(List.class)), with(any(Long.class)), with(any(Integer.class)), with(any(Integer.class)));
101
                        will(returnValue(new ArrayList<ServidorView>()));
102
                }});
103
                List<?> listaRetorno = servidorService.listarServidorParticipanteDeGrupoDaUnidadeEhCronograma(new ArrayList<Long>(), CRONOGRAMA_2013, PRIMEIRO_REGISTRO_0, TAMANHO_PAGINA_5);
104
                assertTrue("Deveria retornar uma lista.", listaRetorno.getClass().equals(java.util.ArrayList.class));
105
        }
106
 
107
        @Test @SuppressWarnings("unchecked")
108
        public void aoListarServidorParticipanteDoOrgaoEhCronogramaDeveriaRetornarUmaListaDeServidoresView() {
109
                final List<ServidorView> listaServidores = new ArrayList<ServidorView>();
110
                listaServidores.add(new ServidorView());
111
                getContexto().checking(new Expectations(){{
112
                        oneOf(servidorRepositoryMock).listarServidorParticipanteDeGrupoDaUnidadeEhCronograma(with(any(List.class)), with(any(Long.class)), with(any(Integer.class)), with(any(Integer.class)));
113
                        will(returnValue(listaServidores));
114
                }});
115
                List<?> listaRetorno = servidorService.listarServidorParticipanteDeGrupoDaUnidadeEhCronograma(new ArrayList<Long>(), CRONOGRAMA_2013, PRIMEIRO_REGISTRO_0, TAMANHO_PAGINA_5);
116
                assertTrue("Deveria retornar uma lista de servidores.", listaRetorno.get(PRIMEIRO_REGISTRO_0).getClass().equals(ServidorView.class));
117
        }
118
 
119
        @Test
120
        public void aoListarQualificacaoServidorDeveriaDelegarParaOhRepositorio() {
121
                getContexto().checking(new Expectations() {{
122
                        oneOf(servidorRepositoryMock).listarQualificacaoServidor(with(any(ServidorDadoFuncionalView.class)));
123
                }});
124
                servidorService.listarQualificacaoServidor(new ServidorDadoFuncionalView());
125
        }
126
 
127
        @Test
128
        public void aoListarQualificacaoServidorCronogramaDeveriaDelegarParaOhRepositorio() {
129
                getContexto().checking(new Expectations() {{
130
                        oneOf(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
131
                }});
132
                servidorService.listarQualificacaoServidorCronograma(new ServidorAvaliacaoBuilder().build());
133
        }
134
 
135
        @Test
136
        public void aoListarQualificacaoServidorDeveriaRetornarUmaLista() {
137
                getContexto().checking(new Expectations(){{
138
                        oneOf(servidorRepositoryMock).listarQualificacaoServidor(with(any(ServidorDadoFuncionalView.class)));
139
                        will(returnValue(new ArrayList<ServidorView>()));
140
                }});
141
                List<?> listaRetorno = servidorService.listarQualificacaoServidor(new ServidorDadoFuncionalView());
142
                assertTrue("Deveria retornar uma lista.", listaRetorno.getClass().equals(java.util.ArrayList.class));
143
        }
144
 
145
        @Test
146
        public void aoListarQualificacaoServidorDeveriaRetornarUmaListaDeQualificacaoServidorView() {
147
                final List<QualificacaoServidorView> listaQualificacoes = new ArrayList<QualificacaoServidorView>();
148
                listaQualificacoes.add(new QualificacaoServidorView());
149
                getContexto().checking(new Expectations(){{
150
                        oneOf(servidorRepositoryMock).listarQualificacaoServidor(with(any(ServidorDadoFuncionalView.class)));
151
                        will(returnValue(listaQualificacoes));
152
                }});
153
                List<?> listaRetorno = servidorService.listarQualificacaoServidor(new ServidorDadoFuncionalView());
154
                assertTrue("Deveria retornar uma lista de servidores.", listaRetorno.get(PRIMEIRO_REGISTRO_0).getClass().equals(QualificacaoServidorView.class));
155
        }
156
 
157
        @Test
158
        @SuppressWarnings("unchecked")
159
        public void aoVincularQualificacaoDeveriaDelegarParaOhRepositorio() {
160
                QualificacaoServidorView qualificacaoRedes = new QualificacaoServidorView();
161
                QualificacaoServidorView[] qualificacoes = new QualificacaoServidorView[1];
162
                qualificacoes[0] = qualificacaoRedes;
163
                getContexto().checking(new Expectations(){{
164
                        oneOf(servidorRepositoryMock).vincularQualificacao(with(any(QualificacaoServidorCronograma.class)));
165
                        oneOf(servidorRepositoryMock).desvincularQualificacoesNaoSelecionadasPorQualificacoesSelecionadas(with(any(ServidorDadoFuncionalView.class)), with(any(Cronograma.class)), with(any(List.class)));
166
                }});
167
                servidorService.vincularQualificacao(new ServidorDadoFuncionalView(), new Cronograma(), qualificacoes);
168
        }
169
 
170
        @Test
171
        @SuppressWarnings("unchecked")
172
        public void aoVincularDuasQualificacoesDeveriaDelegarParaOhRepositorioDuasVezes() {
173
                QualificacaoServidorView qualificacaoRedes = new QualificacaoServidorView();
174
                QualificacaoServidorView qualificacaoJava = new QualificacaoServidorView();
175
                QualificacaoServidorView[] qualificacoes = new QualificacaoServidorView[2];
176
                qualificacoes[0] = qualificacaoRedes;
177
                qualificacoes[1] = qualificacaoJava;
178
                getContexto().checking(new Expectations(){{
179
                        exactly(2).of(servidorRepositoryMock).vincularQualificacao(with(any(QualificacaoServidorCronograma.class)));
180
                        oneOf(servidorRepositoryMock).desvincularQualificacoesNaoSelecionadasPorQualificacoesSelecionadas(with(any(ServidorDadoFuncionalView.class)), with(any(Cronograma.class)), with(any(List.class)));
181
                }});
182
                servidorService.vincularQualificacao(new ServidorDadoFuncionalView(), new Cronograma(), qualificacoes);
183
        }
184
 
185
        @Test
186
        @SuppressWarnings("unchecked")
187
        public void aoVincularSemSelecionarQualificacaoNaoDeveriaDelegarParaOhRepositorio() {
188
                getContexto().checking(new Expectations(){{
189
                        never(servidorRepositoryMock).vincularQualificacao(with(any(QualificacaoServidorCronograma.class)));
190
                        oneOf(servidorRepositoryMock).desvincularQualificacoesNaoSelecionadasPorQualificacoesSelecionadas(with(any(ServidorDadoFuncionalView.class)), with(any(Cronograma.class)), with(any(List.class)));
191
                }});
192
                servidorService.vincularQualificacao(new ServidorDadoFuncionalView(), new Cronograma(), new QualificacaoServidorView[0]);
193
        }
194
 
195
        @Test
196
        public void aoListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemandaDeveriaDelegarParaOhServidorAvaliacaoRepository() {
197
                final List<Restricoes> restricoes = new ArrayList<Restricoes>();
198
                restricoes.add(Restricoes.igual("tipoEfetivoExercicio", "SIM"));
199
                restricoes.add(Restricoes.igual("cronograma.numeroAno", 2013L));
200
                restricoes.add(Restricoes.igual("nome", "Antonio Geroncio"));
201
                getContexto().checking(new Expectations(){{
202
                        oneOf(servidorAvaliacaoRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorAvaliacao(with(restricoes), with(any(Integer.class)), with(any(Integer.class)));
203
                        never(servidorRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorDadoFuncional(with(restricoes), with(any(Long.class)), with(any(Integer.class)), with(any(Integer.class)));
204
                }});
205
                servidorService.listarServidorDadoFuncionalParticipacaoAvaliacaoPorDemanda(restricoes, new Integer(0), new Integer(0));
206
        }
207
 
208
        @Test @SuppressWarnings("unchecked")
209
        public void aoListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemandaDeveriaDelegarParaOhServidorRepository() {
210
                final List<Restricoes> restricoes = new ArrayList<Restricoes>();
211
                restricoes.add(Restricoes.igual("nome", "Antonio Geroncio"));
212
                restricoes.add(Restricoes.igual("cronograma.numeroAno", 2013L));
213
                getContexto().checking(new Expectations(){{
214
                        never(servidorAvaliacaoRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorAvaliacao(with(restricoes), with(any(Integer.class)), with(any(Integer.class)));
215
                        oneOf(servidorRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorDadoFuncional(with(any(List.class)), with(any(Long.class)), with(any(Integer.class)), with(any(Integer.class)));
216
                }});
217
                servidorService.listarServidorDadoFuncionalParticipacaoAvaliacaoPorDemanda(restricoes, new Integer(0), new Integer(0));
218
        }
219
 
220
 
221
        @Test @SuppressWarnings("unchecked")
222
        public void aoListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemandaComRestricaoCronogramaNulaDeveriaDelegarParaOhServidorRepository() {
223
                final List<Restricoes> restricoes = new ArrayList<Restricoes>();
224
                restricoes.add(Restricoes.igual("cronograma.numeroAno", null));
225
                getContexto().checking(new Expectations(){{
226
                        never(servidorAvaliacaoRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorAvaliacao(with(restricoes), with(any(Integer.class)), with(any(Integer.class)));
227
                        oneOf(servidorRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorDadoFuncional(with(any(List.class)), with(any(Long.class)), with(any(Integer.class)), with(any(Integer.class)));
228
                }});
229
                servidorService.listarServidorDadoFuncionalParticipacaoAvaliacaoPorDemanda(restricoes, new Integer(0), new Integer(0));
230
        }
231
 
232
        @Test
233
        public void aoListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemandaComListaRestricoesVaziaDeveriaNaoDelegarParaOhServidorRepository() {
234
                final List<Restricoes> restricoes = new ArrayList<Restricoes>();
235
                getContexto().checking(new Expectations(){{
236
                        never(servidorAvaliacaoRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorAvaliacao(with(restricoes), with(any(Integer.class)), with(any(Integer.class)));
237
                        never(servidorRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorDadoFuncional(with(restricoes), with(any(Long.class)), with(any(Integer.class)), with(any(Integer.class)));
238
                }});
239
                servidorService.listarServidorDadoFuncionalParticipacaoAvaliacaoPorDemanda(restricoes, new Integer(0), new Integer(0));
240
        }
241
 
242
        @Test
243
        public void aoListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemandaComListaRestricoesNulaDeveriaNaoDelegarParaOhRepository() {
244
                final List<Restricoes> restricoes = null;
245
                getContexto().checking(new Expectations(){{
246
                        never(servidorAvaliacaoRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorAvaliacao(with(restricoes), with(any(Integer.class)), with(any(Integer.class)));
247
                        never(servidorRepositoryMock).listarServidorDadoFuncionalViewDtoPorServidorDadoFuncional(with(restricoes), with(any(Long.class)), with(any(Integer.class)), with(any(Integer.class)));
248
                }});
249
                servidorService.listarServidorDadoFuncionalParticipacaoAvaliacaoPorDemanda(restricoes, new Integer(0), new Integer(0));
250
        }
251
 
252
        @Test
253
        public void aoObterQuantidadeDeRegistrosListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemandaDeveriaDelegarParaOhServidorAvaliacaoRepository() {
254
                final List<Restricoes> restricoes = new ArrayList<Restricoes>();
255
                restricoes.add(Restricoes.igual("tipoEfetivoExercicio", "SIM"));
256
                restricoes.add(Restricoes.igual("cronograma.numeroAno", 2013L));
257
                restricoes.add(Restricoes.igual("nome", "Antonio Geroncio"));
258
                getContexto().checking(new Expectations(){{
259
                        oneOf(servidorAvaliacaoRepositoryMock).obterQuantidadeDeRegistrosListarServidorDadoFuncionalViewDtoPorServidorAvaliacao(with(restricoes));
260
                        never(servidorRepositoryMock).obterQuantidadeDeRegistrosListarServidorDadoFuncionalViewDtoPorServidorDadoFuncional(with(restricoes));
261
                }});
262
                servidorService.obterQuantidadeDeRegistrosListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemanda(restricoes);
263
        }
264
 
265
 
266
        @Test @SuppressWarnings("unchecked")
267
        public void aoObterQuantidadeDeRegistrosListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemandaDeveriaDelegarParaOhServidorRepository() {
268
                final List<Restricoes> restricoes = new ArrayList<Restricoes>();
269
                restricoes.add(Restricoes.igual("cronograma.numeroAno", 2013L));
270
                restricoes.add(Restricoes.igual("nome", "Antonio Geroncio"));
271
                getContexto().checking(new Expectations(){{
272
                        never(servidorAvaliacaoRepositoryMock).obterQuantidadeDeRegistrosListarServidorDadoFuncionalViewDtoPorServidorAvaliacao(with(restricoes));
273
                        oneOf(servidorRepositoryMock).obterQuantidadeDeRegistrosListarServidorDadoFuncionalViewDtoPorServidorDadoFuncional(with(any(List.class)));
274
                }});
275
                servidorService.obterQuantidadeDeRegistrosListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemanda(restricoes);
276
        }
277
 
278
        @Test @SuppressWarnings("unchecked")
279
        public void aoObterQuantidadeDeRegistrosListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemandaComListaRestricoesNulaDeveriaNaoDelegarParaOhRepository() {
280
                final List<Restricoes> restricoes = null;
281
                getContexto().checking(new Expectations(){{
282
                        never(servidorAvaliacaoRepositoryMock).obterQuantidadeDeRegistrosListarServidorDadoFuncionalViewDtoPorServidorAvaliacao(with(restricoes));
283
                        never(servidorRepositoryMock).obterQuantidadeDeRegistrosListarServidorDadoFuncionalViewDtoPorServidorDadoFuncional(with(any(List.class)));
284
                }});
285
                servidorService.obterQuantidadeDeRegistrosListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemanda(restricoes);
286
        }
287
 
288
        @Test @SuppressWarnings("unchecked")
289
        public void aoObterQuantidadeDeRegistrosListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemandaComListaRestricoesVaziaDeveriaNaoDelegarParaOhServidorRepository() {
290
                final List<Restricoes> restricoes = new ArrayList<Restricoes>();
291
                getContexto().checking(new Expectations(){{
292
                        never(servidorAvaliacaoRepositoryMock).obterQuantidadeDeRegistrosListarServidorDadoFuncionalViewDtoPorServidorAvaliacao(with(restricoes));
293
                        never(servidorRepositoryMock).obterQuantidadeDeRegistrosListarServidorDadoFuncionalViewDtoPorServidorDadoFuncional(with(any(List.class)));
294
                }});
295
                servidorService.obterQuantidadeDeRegistrosListarServidorDadoFuncionalParticipacaoAvaliacaoPorDemanda(restricoes);
296
        }
297
 
298
        @Test @SuppressWarnings("unchecked")
299
        public void aoObterQuantidadeDeRegistrosListarServidorParticipanteDeGrupoDaUnidadeEhCronogramaDeveriaDelegarParaOhService() {
300
                getContexto().checking(new Expectations() {{
301
                        oneOf(servidorRepositoryMock).obterQuantidadeDeRegistrosListarServidorParticipanteDeGrupoDaUnidadeEhCronograma(with(any(List.class)), with(any(Long.class)));
302
                }});
303
                servidorService.obterQuantidadeDeRegistrosListarServidorParticipanteDeGrupoDaUnidadeEhCronograma(new ArrayList<Long>(), new Long(0));
304
        }
305
 
306
}