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.ServidorConstantes.MATRICULA_LUCIANO_BARBOSA_2301011;
4
import static br.gov.al.saude.test.ConstantesTestHelper.SolicitacaoRevisaoConstantes.DESCRICAO_SOLICITACAO_NA_SOLICITACAO_ANTERIOR_CORRECAO_EFETUADA_MAS_A_NOTA_CONTINUA_A_MESMA;
5
import static org.junit.Assert.assertEquals;
6
 
7
import java.util.ArrayList;
8
import java.util.List;
9
 
10
import org.jmock.Expectations;
11
import org.jmock.Mockery;
12
import org.jmock.integration.junit4.JMock;
13
import org.jmock.integration.junit4.JUnit4Mockery;
14
import org.junit.After;
15
import org.junit.Before;
16
import org.junit.Test;
17
import org.junit.runner.RunWith;
18
import org.junit.runners.Suite;
19
 
20
import br.gov.al.saude.framework.core.interfaces.Cadastrar;
21
import br.gov.al.saude.framework.core.validador.Validador;
22
import br.gov.al.saude.rhd.core.domain.avaliacao.AvaliacaoService;
23
import br.gov.al.saude.rhd.core.domain.avaliacao.impl.AvaliacaoServiceImpl;
24
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.AvaliacaoDesempenhoRepository;
25
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.AvaliacaoRepository;
26
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.ServidorFaltaRepository;
27
import br.gov.al.saude.rhd.core.infrastructure.persistence.jpa.ServidorRepository;
28
import br.gov.al.saude.rhd.model.Avaliacao;
29
import br.gov.al.saude.rhd.model.AvaliacaoDesempenho;
30
import br.gov.al.saude.rhd.model.QuestaoAvaliacaoDesempenho;
31
import br.gov.al.saude.rhd.model.RevisaoAvaliacao;
32
import br.gov.al.saude.rhd.model.RevisaoAvaliacaoDesempenho;
33
import br.gov.al.saude.rhd.model.RevisaoAvaliacaoDesempenhoId;
34
import br.gov.al.saude.rhd.model.ServidorAvaliacao;
35
import br.gov.al.saude.rhd.model.view.QualificacaoServidorView;
36
import br.gov.al.saude.rhd.model.view.ServidorDadoFuncionalView;
37
import br.gov.al.saude.rhd.model.view.ServidorView;
38
import br.gov.al.saude.rhd.parametros.ParametrosConsultarRevisaoAvaliacaoNaoRespondida;
39
import br.gov.al.saude.rhd.tipo.TipoAvaliacao;
40
import br.gov.al.saude.rhd.tipo.TipoAvaliacaoDesempenho;
41
import br.gov.al.saude.rhd.tipo.TipoQualificacao;
42
import br.gov.al.saude.rhd.tipo.TipoQuestao;
43
import br.gov.al.saude.rhd.tipo.TipoRespostaMultiplaEscolha;
44
import br.gov.al.saude.rhd.tipo.TipoRevisao;
45
import br.gov.al.saude.sca.model.usuario.view.UsuarioView;
46
import br.gov.al.saude.test.builder.AvaliacaoDesempenhoBuilder;
47
import br.gov.al.saude.test.builder.QualificacaoServidorBuilder;
48
import br.gov.al.saude.test.builder.QuestaoAvaliacaoDesempenhoBuilder;
49
import br.gov.al.saude.test.builder.RevisaoAvaliacaoBuilder;
50
import br.gov.al.saude.test.builder.RevisaoAvaliacaoDesempenhoBuilder;
51
import br.gov.al.saude.test.builder.ServidorAvaliacaoBuilder;
52
import br.gov.al.saude.test.builder.UsuarioViewBuilder;
53
import br.gov.al.saude.test.util.CommandSemMensagem;
54
import br.gov.al.saude.test.util.VerificadorLancamentoException;
55
 
56
@RunWith(JMock.class)
57
public class AvaliacaoServiceImplTest {
58
        @RunWith(Suite.class)
59
        @Suite.SuiteClasses({
60
                AoVisualizarNotaAvaliacao.AoCalcularPontuacaoExtra.class,
61
                AoVisualizarNotaAvaliacao.AoCalcularNotaAssiduidade.class,
62
                AoVisualizarNotaAvaliacao.AoCalcularNotaQualificacao.class,
63
                AoVisualizarNotaAvaliacao.AoCalcularNotaDesempenho.class,
64
                AoVisualizarNotaAvaliacao.AoCalcularNotaResultadoFinal.class,
65
                AoVisualizarNotaAvaliacao.AoConsultarIhSetarSolicitacoesDeRevisaoDasAvaliacoes.class,
66
                AoSolicitarRevisaoAvaliacao.class,
67
                AoResponderSolicitacaoRevisao.class,
68
                AoConsultarRevisaoNaoRespondida.class,
69
                AoObterQuantidadeRegistrosConsultarRevisaoNaoRespondida.class,
70
                AoConsultarRevisaoAvaliacaoPorSequencial.class
71
        })
72
 
73
        public static class AllTests{}
74
 
75
        protected String ROLE_AVALIADOR = "RHD_SERVIDOR_RHD_PAPEL";
76
        protected String ROLE_COORDENADOR = "RHD_COORDENADOR_RHD_PAPEL";
77
        protected AvaliacaoService avaliacaoService;
78
        protected ServidorRepository servidorRepositoryMock;
79
        protected ServidorFaltaRepository servidorFaltaRepositoryMock;
80
        protected AvaliacaoDesempenhoRepository avaliacaoDesempenhoRepositoryMock;
81
        protected AvaliacaoRepository avaliacaoRepositoryMock;
82
        protected Validador validadorMock;
83
        protected Mockery contexto = new JUnit4Mockery();
84
        protected ParametrosConsultarRevisaoAvaliacaoNaoRespondida parametrosConsultarRevisaoAvaliacaoNaoRespondida;
85
        protected UsuarioView usuario;
86
 
87
        @Before
88
        public void inicializarContexto(){
89
                servidorRepositoryMock = contexto.mock(ServidorRepository.class);
90
                servidorFaltaRepositoryMock = contexto.mock(ServidorFaltaRepository.class);
91
                avaliacaoRepositoryMock = contexto.mock(AvaliacaoRepository.class);
92
                avaliacaoDesempenhoRepositoryMock = contexto.mock(AvaliacaoDesempenhoRepository.class);
93
                validadorMock = contexto.mock(Validador.class);
94
                avaliacaoService = new AvaliacaoServiceImpl(servidorRepositoryMock, servidorFaltaRepositoryMock,
95
                avaliacaoRepositoryMock, avaliacaoDesempenhoRepositoryMock, validadorMock);
96
        }
97
 
98
        public static class AoVisualizarNotaAvaliacao extends AvaliacaoServiceImplTest {
99
 
100
                public static class AoConsultarIhSetarSolicitacoesDeRevisaoDasAvaliacoes extends AoVisualizarNotaAvaliacao {
101
                        @Test
102
                        public void aoVisualizarNotaAvaliacaoIhConsultarIhSetarSolicitacaoDeRevisaoAvaliacaoAssiduidadeDeveriaDelegarParaOhRepositorioAvaliacaoRepository() throws Exception {
103
                                contexto.checking(new Expectations(){{
104
                                        oneOf(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
105
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
106
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
107
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
108
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
109
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
110
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
111
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
112
                                }});
113
 
114
                                avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
115
                        }
116
 
117
                        @Test
118
                        public void aoVisualizarNotaAvaliacaoIhConsultarIhSetarSolicitacaoDeRevisaoAvaliacaoDesempenhoDeveriaDelegarParaOhRepositorioAvaliacaoRepository() throws Exception {
119
                                contexto.checking(new Expectations(){{
120
                                        oneOf(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
121
                                        oneOf(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
122
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
123
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
124
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
125
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
126
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
127
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
128
                                }});
129
 
130
                                avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
131
                        }
132
 
133
                        @Test
134
                        public void aoVisualizarNotaAvaliacaoIhConsultarIhSetarSolicitacaoDeRevisaoAvaliacaoQualificacaoDeveriaDelegarParaOhRepositorioAvaliacaoRepository() throws Exception {
135
                                contexto.checking(new Expectations(){{
136
                                        oneOf(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
137
                                        oneOf(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
138
                                        oneOf(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
139
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
140
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
141
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
142
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
143
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
144
                                }});
145
 
146
                                avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
147
                        }
148
                }
149
 
150
                public static class AoCalcularPontuacaoExtra extends AvaliacaoServiceImplTest {
151
                        @Test
152
                        public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaOhServidorRepository() throws Exception{
153
                                contexto.checking(new Expectations(){{
154
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
155
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
156
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
157
                                        oneOf(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
158
                                        will(returnValue(new ArrayList<QualificacaoServidorView>()));
159
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
160
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
161
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
162
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
163
                                }});
164
 
165
                                avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
166
                        }
167
 
168
                        @Test
169
                        public void aoVisualizarNotaAvaliacaoDeveriaCalcularPontuacaoExtraComo5Porcento() throws Exception {
170
                                QualificacaoServidorView qualificacaoServidorView = new QualificacaoServidorBuilder().comTipoQualificacao(TipoQualificacao.PRODUCAO_INTELECTUAL.getValue()).build();
171
                                final List<QualificacaoServidorView> listaQualificacaoServidorView = new ArrayList<QualificacaoServidorView>();
172
                                listaQualificacaoServidorView.add(qualificacaoServidorView);
173
 
174
                                contexto.checking(new Expectations(){{
175
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
176
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
177
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
178
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
179
                                        will(returnValue(listaQualificacaoServidorView));
180
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(new ServidorAvaliacaoBuilder().build());
181
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
182
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
183
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
184
                                }});
185
 
186
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
187
 
188
                                assertEquals("Deveria retornar pontuação extra 5%.", new Double(5),avaliacao.getNotaPontuacaoExtra());
189
                        }
190
 
191
                        @Test
192
                        public void aoVisualizarNotaAvaliacaoDeveriaCalcularPontuacaoExtraComoZeroPorcento() throws Exception {
193
                                QualificacaoServidorView qualificacaoServidorView = new QualificacaoServidorBuilder().comTipoQualificacao(TipoQualificacao.FORMACAO_ACADEMICA.getValue()).build();
194
                                final List<QualificacaoServidorView> listaQualificacaoServidorView = new ArrayList<QualificacaoServidorView>();
195
                                listaQualificacaoServidorView.add(qualificacaoServidorView);
196
 
197
                                contexto.checking(new Expectations(){{
198
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
199
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
200
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
201
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
202
                                        will(returnValue(listaQualificacaoServidorView));
203
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(new ServidorAvaliacaoBuilder().build());
204
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
205
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
206
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
207
                                }});
208
 
209
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
210
 
211
                                assertEquals("Deveria retornar pontuação extra 0%.", new Double(0),avaliacao.getNotaPontuacaoExtra());
212
                        }
213
 
214
                        @Test
215
                        public void aoVisualizarNotaAvaliacaoDeveriaCalcularPontuacaoDesempenhoComoZero() throws Exception {
216
                                ServidorView servidorView = new ServidorView();
217
                                ServidorAvaliacao servidorAvaliacao = new ServidorAvaliacaoBuilder().comServidor(servidorView).build();
218
                                contexto.checking(new Expectations(){{
219
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
220
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
221
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
222
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
223
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
224
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
225
                                }});
226
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(servidorAvaliacao);
227
                                assertEquals("Deveria calcular nota avaliação desempenho como zero.", new Double(0), avaliacao.getNotaDesempenho());
228
                        }
229
                }
230
 
231
                public static class AoCalcularNotaAssiduidade extends AoVisualizarNotaAvaliacao {
232
                        @Test
233
                        public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaOhServidorFaltaRepository() throws Exception {
234
                                contexto.checking(new Expectations(){{
235
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
236
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
237
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
238
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
239
                                        will(returnValue(new ArrayList<QualificacaoServidorView>()));
240
                                        oneOf(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
241
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
242
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
243
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
244
                                }});
245
 
246
                                avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
247
                        }
248
 
249
                        @Test
250
                        public void aoVisualizarNotaAvaliacaoComServidorQuePossuiUmaFaltaDeveriaCalcularAssiduidadeComoVintePorcento() throws Exception {
251
                                contexto.checking(new Expectations(){{
252
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
253
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
254
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
255
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
256
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
257
                                        will(returnValue(1L));
258
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
259
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
260
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
261
                                }});
262
 
263
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
264
 
265
                                assertEquals("Deveria retornar assiduidade 20%.", new Double(20), avaliacao.getNotaAssiduidade());
266
                        }
267
 
268
                        @Test
269
                        public void aoVisualizarNotaAvaliacaoComServidorQueNaoPossuiFaltaDeveriaCalcularAssiduidadeComoVintePorcento() throws Exception {
270
                                contexto.checking(new Expectations(){{
271
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
272
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
273
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
274
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
275
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
276
                                        will(returnValue(0L));
277
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
278
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
279
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
280
                                }});
281
 
282
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
283
 
284
                                assertEquals("Deveria retornar assiduidade 20%.", new Double(20),avaliacao.getNotaAssiduidade());
285
                        }
286
 
287
                        @Test
288
                        public void aoVisualizarNotaAvaliacaoComServidorQuePossuiCincoFaltasDeveriaCalcularAssiduidadeComoZeroPorcento() throws Exception {
289
                                contexto.checking(new Expectations(){{
290
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
291
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
292
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
293
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
294
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
295
                                        will(returnValue(5L));
296
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
297
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
298
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
299
                                }});
300
 
301
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
302
 
303
                                assertEquals("Deveria retornar assiduidade 0%.", new Double(0),avaliacao.getNotaAssiduidade());
304
                        }
305
 
306
                        @Test
307
                        public void aoVisualizarNotaAvaliacaoComServidorQuePossuiSeisFaltasDeveriaCalcularAssiduidadeComoZeroPorcento() throws Exception {
308
                                contexto.checking(new Expectations(){{
309
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
310
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
311
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
312
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
313
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
314
                                        will(returnValue(6L));
315
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
316
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
317
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
318
                                }});
319
 
320
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
321
 
322
                                assertEquals("Deveria retornar assiduidade 0%.", new Double(0),avaliacao.getNotaAssiduidade());
323
                        }
324
 
325
                        @Test
326
                        public void aoVisualizarNotaAvaliacaoComServidorQuePossuiTresFaltasDeveriaCalcularAssiduidadeComoDezPorcento() throws Exception {
327
                                contexto.checking(new Expectations(){{
328
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
329
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
330
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
331
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
332
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
333
                                        will(returnValue(3L));
334
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
335
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
336
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
337
                                }});
338
 
339
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
340
 
341
                                assertEquals("Deveria retornar assiduidade 10%.", new Double(10),avaliacao.getNotaAssiduidade());
342
                        }
343
 
344
                        @Test
345
                        public void aoVisualizarNotaAvaliacaoComServidorQuePossuiQuatroFaltasDeveriaCalcularAssiduidadeComoDezPorcento() throws Exception {
346
                                contexto.checking(new Expectations(){{
347
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
348
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
349
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
350
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
351
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
352
                                        will(returnValue(4L));
353
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
354
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
355
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
356
                                }});
357
 
358
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
359
 
360
                                assertEquals("Deveria retornar assiduidade 10%.", new Double(10),avaliacao.getNotaAssiduidade());
361
                        }
362
 
363
                }
364
 
365
                public static class AoCalcularNotaQualificacao extends AoVisualizarNotaAvaliacao {
366
 
367
                        @Test
368
                        public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaOhAvaliacaoRepository() throws Exception {
369
                                ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao();
370
                                contexto.checking(new Expectations(){{
371
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
372
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
373
                                        will(returnValue(new ArrayList<QualificacaoServidorView>()));
374
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
375
                                        oneOf(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
376
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
377
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
378
                                }});
379
 
380
                                avaliacaoService.visualizarNotaAvaliacao(servidorAvaliacao);
381
                        }
382
 
383
                        @Test
384
                        public void aoVisualizarNotaAvaliacaoComQualificaoComplementarDe40HorasIhCargaHorariaExigida40DeveriaCalcularQualificacaoCom10Porcento() throws Exception {
385
                                ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao();
386
                                QualificacaoServidorView qualificacaoServidorView = new QualificacaoServidorBuilder().comTipoQualificacao(TipoQualificacao.FORMACAO_COMPLEMENTAR.getValue()).comCargaHoraria("40") .build();
387
                                final List<QualificacaoServidorView> listaQualificacaoServidorView = new ArrayList<QualificacaoServidorView>();
388
                                listaQualificacaoServidorView.add(qualificacaoServidorView);
389
                                contexto.checking(new Expectations(){{
390
 
391
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
392
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
393
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
394
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
395
                                        will(returnValue(listaQualificacaoServidorView));
396
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
397
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
398
                                        will(returnValue(40));
399
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
400
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
401
                                }});
402
 
403
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(servidorAvaliacao);
404
 
405
                                assertEquals("Deveria retornar assiduidade 10%.", new Double(10), avaliacao.getNotaQualificacao());
406
                        }
407
 
408
                        @Test
409
                        public void aoVisualizarNotaAvaliacaoComQualificaoComplementarDe40HorasIhParticipaoEmEventoDe10HorasIhCargaHorariaExigida40DeveriaCalcularQualificacaoCom10Porcento() throws Exception {
410
                                ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao();
411
                                QualificacaoServidorView qualificacaoServidorViewCompementar = new QualificacaoServidorBuilder().comTipoQualificacao(TipoQualificacao.FORMACAO_COMPLEMENTAR.getValue()).comCargaHoraria("40") .build();
412
                                QualificacaoServidorView qualificacaoServidorViewParticipacaoEventos = new QualificacaoServidorBuilder().comTipoQualificacao(TipoQualificacao.PARTICIPACAO_EVENTOS.getValue()).comCargaHoraria("10") .build();
413
                                final List<QualificacaoServidorView> listaQualificacaoServidorView = new ArrayList<QualificacaoServidorView>();
414
                                listaQualificacaoServidorView.add(qualificacaoServidorViewCompementar);
415
                                listaQualificacaoServidorView.add(qualificacaoServidorViewParticipacaoEventos);
416
 
417
                                contexto.checking(new Expectations(){{
418
 
419
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
420
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
421
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
422
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
423
                                        will(returnValue(listaQualificacaoServidorView));
424
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
425
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
426
                                        will(returnValue(40));
427
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
428
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
429
                                }});
430
 
431
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(servidorAvaliacao);
432
 
433
                                assertEquals("Deveria retornar assiduidade 10%.", new Double(10),avaliacao.getNotaQualificacao());
434
                        }
435
 
436
                        @Test
437
                        public void aoVisualizarNotaAvaliacaoComQualificaoComplementarDe30HorasIhCargaHorariaExigida40DeveriaCalcularQualificacaoCom7Ponto5Porcento() throws Exception {
438
                                ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao();
439
                                QualificacaoServidorView qualificacaoServidorView = new QualificacaoServidorBuilder().comTipoQualificacao(TipoQualificacao.FORMACAO_COMPLEMENTAR.getValue()).comCargaHoraria("30") .build();
440
                                final List<QualificacaoServidorView> listaQualificacaoServidorView = new ArrayList<QualificacaoServidorView>();
441
                                listaQualificacaoServidorView.add(qualificacaoServidorView);
442
 
443
                                contexto.checking(new Expectations(){{
444
 
445
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
446
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
447
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
448
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
449
                                        will(returnValue(listaQualificacaoServidorView));
450
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
451
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
452
                                        will(returnValue(40));
453
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
454
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
455
                                }});
456
 
457
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(servidorAvaliacao);
458
 
459
                                assertEquals("Deveria retornar assiduidade 7.5%.", new Double(7.5),avaliacao.getNotaQualificacao());
460
                        }
461
 
462
                        @Test
463
                        public void aoVisualizarNotaAvaliacaoSemQualificaoComplementarIhCargaHorariaExigida40DeveriaCalcularQualificacaoComZeroPorcento() throws Exception {
464
                                final List<QualificacaoServidorView> listaQualificacaoServidorView = new ArrayList<QualificacaoServidorView>();
465
 
466
                                contexto.checking(new Expectations(){{
467
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
468
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
469
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
470
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
471
                                        will(returnValue(listaQualificacaoServidorView));
472
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
473
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
474
                                        will(returnValue(40));
475
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
476
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
477
                                }});
478
 
479
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
480
 
481
                                assertEquals("Deveria retornar assiduidade 0%.", new Double(0),avaliacao.getNotaQualificacao());
482
                        }
483
                }
484
 
485
                public static class AoCalcularNotaDesempenho extends AoVisualizarNotaAvaliacao {
486
                        @Test
487
                        public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaAvaliacaoDesempenhoRepositoryListarAutoAvaliacao() throws Exception {
488
                                contexto.checking(new Expectations(){{
489
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
490
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
491
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
492
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
493
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
494
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
495
                                        oneOf(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
496
                                        will(returnValue(new ArrayList<QuestaoAvaliacaoDesempenho>()));
497
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
498
                                }});
499
 
500
                                avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());      
501
                        }
502
 
503
                        @Test
504
                        public void aoVisualizarNotaAvaliacaoDeveriaDelegarParaAvaliacaoDesempenhoRepositoryListarAvaliacao() throws Exception {
505
                                contexto.checking(new Expectations(){{
506
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
507
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
508
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
509
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
510
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
511
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
512
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
513
                                        oneOf(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
514
                                        will(returnValue(new ArrayList<QuestaoAvaliacaoDesempenho>()));
515
                                }});
516
 
517
                                avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());      
518
                        }
519
 
520
                        @Test
521
                        public void aoVisualizarNotaAvaliacaoDeveriaCalcularNovaDesempenhoComo70Porcento() throws Exception {
522
                                AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaEsperado = new AvaliacaoDesempenhoBuilder().comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.SUPERA_O_ESPERADO.getValue()).build();
523
 
524
                                QuestaoAvaliacaoDesempenho questaoAutoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaEsperado) .comTipoAvaliacao(TipoAvaliacaoDesempenho.AUTOAVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
525
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAutoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
526
                                listaQuestaoAutoAvaliacao.add(questaoAutoAvaliacao);
527
 
528
                                QuestaoAvaliacaoDesempenho questaoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaEsperado) .comTipoAvaliacao(TipoAvaliacaoDesempenho.AVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
529
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
530
                                listaQuestaoAvaliacao.add(questaoAvaliacao);
531
 
532
                                contexto.checking(new Expectations(){{
533
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
534
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
535
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
536
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
537
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
538
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
539
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
540
                                        will(returnValue(listaQuestaoAutoAvaliacao));
541
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
542
                                        will(returnValue(listaQuestaoAvaliacao));
543
                                }});
544
 
545
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
546
 
547
                                assertEquals("Deveria retornar desempenho 70%.", new Double(70),avaliacao.getNotaDesempenho());
548
                        }
549
 
550
                        @Test
551
                        public void aoVisualizarNotaAvaliacaoDeveriaCalcularNovaDesempenhoComo59Ponto5Porcento() throws Exception {
552
                                AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaEsperado = new AvaliacaoDesempenhoBuilder().comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.SUPERA_O_ESPERADO.getValue()).build();
553
                                AvaliacaoDesempenho avaliacaoDesempenhoRespostaAtendeOhEsperado = new AvaliacaoDesempenhoBuilder().comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.ATENDE_O_ESPERADO.getValue()).build();
554
 
555
                                QuestaoAvaliacaoDesempenho questaoAutoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaEsperado) .comTipoAvaliacao(TipoAvaliacaoDesempenho.AUTOAVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
556
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAutoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
557
                                listaQuestaoAutoAvaliacao.add(questaoAutoAvaliacao);
558
 
559
                                QuestaoAvaliacaoDesempenho questaoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaAtendeOhEsperado) .comTipoAvaliacao(TipoAvaliacaoDesempenho.AVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
560
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
561
                                listaQuestaoAvaliacao.add(questaoAvaliacao);
562
 
563
                                contexto.checking(new Expectations(){{
564
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
565
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
566
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
567
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
568
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
569
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
570
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
571
                                        will(returnValue(listaQuestaoAutoAvaliacao));
572
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
573
                                        will(returnValue(listaQuestaoAvaliacao));
574
                                }});
575
 
576
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
577
 
578
                                assertEquals("Deveria retornar desempenho 59.5%.", new Double(59.5),avaliacao.getNotaDesempenho());
579
                        }
580
 
581
                        @Test
582
                        public void aoVisualizarNotaAvaliacaoDeveriaCalcularNovaDesempenhoComo28Porcento() throws Exception {
583
                                AvaliacaoDesempenho avaliacaoDesempenhoRespostaNaoAtendeOhEsperado = new AvaliacaoDesempenhoBuilder().comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.NAO_ATENDE_O_ESPERADO.getValue()).build();
584
                                AvaliacaoDesempenho avaliacaoDesempenhoRespostaAtendeParcialmente = new AvaliacaoDesempenhoBuilder().comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.ATENDE_PARCIALMENTE_O_ESPERADO.getValue()).build();
585
 
586
                                QuestaoAvaliacaoDesempenho questaoAutoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaNaoAtendeOhEsperado) .comTipoAvaliacao(TipoAvaliacaoDesempenho.AUTOAVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
587
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAutoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
588
                                listaQuestaoAutoAvaliacao.add(questaoAutoAvaliacao);
589
 
590
                                QuestaoAvaliacaoDesempenho questaoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaAtendeParcialmente) .comTipoAvaliacao(TipoAvaliacaoDesempenho.AVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
591
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
592
                                listaQuestaoAvaliacao.add(questaoAvaliacao);
593
 
594
                                contexto.checking(new Expectations(){{
595
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
596
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
597
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
598
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
599
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
600
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
601
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
602
                                        will(returnValue(listaQuestaoAutoAvaliacao));
603
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
604
                                        will(returnValue(listaQuestaoAvaliacao));
605
                                }});
606
 
607
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
608
 
609
                                assertEquals("Deveria retornar desempenho 28%.", new Double(28),avaliacao.getNotaDesempenho());
610
                        }
611
 
612
                        @Test
613
                        public void aoVisualizarNotaAvaliacaoDeveriaCalcularNovaDesempenhoComo42Porcento() throws Exception {
614
                                AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaOhEsperado = new AvaliacaoDesempenhoBuilder().comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.SUPERA_O_ESPERADO.getValue()).build();
615
 
616
                                QuestaoAvaliacaoDesempenho questaoAutoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comTipoAvaliacao(TipoAvaliacaoDesempenho.AUTOAVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
617
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAutoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
618
                                listaQuestaoAutoAvaliacao.add(questaoAutoAvaliacao);
619
 
620
                                QuestaoAvaliacaoDesempenho questaoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaOhEsperado).comTipoAvaliacao(TipoAvaliacaoDesempenho.AVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
621
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
622
                                listaQuestaoAvaliacao.add(questaoAvaliacao);
623
 
624
                                contexto.checking(new Expectations(){{
625
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
626
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
627
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
628
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
629
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
630
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
631
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
632
                                        will(returnValue(listaQuestaoAutoAvaliacao));
633
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
634
                                        will(returnValue(listaQuestaoAvaliacao));
635
                                }});
636
 
637
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
638
 
639
                                assertEquals("Deveria retornar desempenho 42%.", new Double(42),avaliacao.getNotaDesempenho());
640
                        }
641
 
642
 
643
                }
644
 
645
                public static class AoCalcularNotaResultadoFinal extends AoVisualizarNotaAvaliacao {
646
                        @Test
647
                        public void aoVisualizarNotaAvaliacaoDeveriaCalcularResultadoFinalComo67Porcento() throws Exception {
648
                                AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaOhEsperado = new AvaliacaoDesempenhoBuilder().comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.SUPERA_O_ESPERADO.getValue()).build();
649
 
650
                                QuestaoAvaliacaoDesempenho questaoAutoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comTipoAvaliacao(TipoAvaliacaoDesempenho.AUTOAVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
651
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAutoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
652
                                listaQuestaoAutoAvaliacao.add(questaoAutoAvaliacao);
653
 
654
                                QuestaoAvaliacaoDesempenho questaoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaOhEsperado).comTipoAvaliacao(TipoAvaliacaoDesempenho.AVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
655
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
656
                                listaQuestaoAvaliacao.add(questaoAvaliacao);
657
 
658
                                QualificacaoServidorView qualificacaoServidorView = new QualificacaoServidorBuilder().comTipoQualificacao(TipoQualificacao.PRODUCAO_INTELECTUAL.getValue()).build();
659
                                final List<QualificacaoServidorView> listaQualificacaoServidorView = new ArrayList<QualificacaoServidorView>();
660
                                listaQualificacaoServidorView.add(qualificacaoServidorView);
661
 
662
                                contexto.checking(new Expectations(){{
663
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
664
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
665
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
666
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
667
                                        will(returnValue(listaQualificacaoServidorView));
668
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
669
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
670
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
671
                                        will(returnValue(listaQuestaoAutoAvaliacao));
672
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
673
                                        will(returnValue(listaQuestaoAvaliacao));
674
                                }});
675
 
676
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(new ServidorAvaliacaoBuilder().build());
677
 
678
                                assertEquals("Deveria retornar desempenho 67%.", new Double(67),avaliacao.getNotaResultadoFinal());
679
                        }
680
 
681
                        @Test
682
                        public void aoVisualizarNotaAvaliacaoDeveriaCalcularResultadoFinalComo100Porcento() throws Exception {
683
                                ServidorAvaliacao servidorAvaliacao = criarServidorAvaliacaoPadrao();
684
 
685
                                AvaliacaoDesempenho avaliacaoDesempenhoRespostaSuperaOhEsperado = new AvaliacaoDesempenhoBuilder().comTipoRespostaMultiplaEscolha(TipoRespostaMultiplaEscolha.SUPERA_O_ESPERADO.getValue()).build();
686
 
687
                                QuestaoAvaliacaoDesempenho questaoAutoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaOhEsperado).comTipoAvaliacao(TipoAvaliacaoDesempenho.AUTOAVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
688
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAutoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
689
                                listaQuestaoAutoAvaliacao.add(questaoAutoAvaliacao);
690
 
691
                                QuestaoAvaliacaoDesempenho questaoAvaliacao = new QuestaoAvaliacaoDesempenhoBuilder().comAvaliacaoDesempenho(avaliacaoDesempenhoRespostaSuperaOhEsperado).comTipoAvaliacao(TipoAvaliacaoDesempenho.AVALIACAO.getValue()).comTipoQuestao(TipoQuestao.MULTIPLA_ESCOLHA.getValue()).build();
692
                                final List<QuestaoAvaliacaoDesempenho> listaQuestaoAvaliacao = new ArrayList<QuestaoAvaliacaoDesempenho>();
693
                                listaQuestaoAvaliacao.add(questaoAvaliacao);
694
 
695
                                QualificacaoServidorView qualificacaoServidorProducaoIntelectual = new QualificacaoServidorBuilder().comTipoQualificacao(TipoQualificacao.PRODUCAO_INTELECTUAL.getValue()).build();
696
                                QualificacaoServidorView qualificacaoServidorFormacaoComplementar = new QualificacaoServidorBuilder().comCargaHoraria("40") .comTipoQualificacao(TipoQualificacao.FORMACAO_COMPLEMENTAR.getValue()).build();
697
                                final List<QualificacaoServidorView> listaQualificacaoServidorView = new ArrayList<QualificacaoServidorView>();
698
                                listaQualificacaoServidorView.add(qualificacaoServidorProducaoIntelectual);
699
                                listaQualificacaoServidorView.add(qualificacaoServidorFormacaoComplementar);
700
 
701
                                contexto.checking(new Expectations(){{
702
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
703
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
704
                                        ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
705
                                        ignoring(servidorRepositoryMock).listarQualificacaoServidorCronograma(with(any(ServidorAvaliacao.class)));
706
                                        will(returnValue(listaQualificacaoServidorView));
707
                                        ignoring(servidorFaltaRepositoryMock).consultarTotalFaltasServidorNoCronograma(with(any(ServidorAvaliacao.class)));
708
                                        will(returnValue(0L));
709
                                        ignoring(avaliacaoRepositoryMock).consultarCargaHorariaExigida(with(any(String.class)), with(any(String.class)));
710
                                        will(returnValue(10));
711
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAutoAvaliacao(with(any(ServidorAvaliacao.class)));
712
                                        will(returnValue(listaQuestaoAutoAvaliacao));
713
                                        ignoring(avaliacaoDesempenhoRepositoryMock).listarQuestaoAvaliacao(with(any(ServidorAvaliacao.class)));
714
                                        will(returnValue(listaQuestaoAvaliacao));
715
                                }});
716
 
717
                                Avaliacao avaliacao = avaliacaoService.visualizarNotaAvaliacao(servidorAvaliacao);     
718
 
719
                                assertEquals("Deveria retornar desempenho 100%.", new Double(100),avaliacao.getNotaResultadoFinal());
720
                        }
721
                }
722
 
723
                protected ServidorAvaliacao criarServidorAvaliacaoPadrao() {
724
                        ServidorDadoFuncionalView servidorDadoFuncionalView = new ServidorDadoFuncionalView();
725
                        servidorDadoFuncionalView.setNumeroMatricula(new Long(MATRICULA_LUCIANO_BARBOSA_2301011));
726
                        ServidorView servidorView = new ServidorView();
727
                        servidorView.getListaDadosFuncionaisView().add(servidorDadoFuncionalView);
728
                        ServidorAvaliacao servidorAvaliacao = new ServidorAvaliacaoBuilder()
729
                                                                                                          .comServidor(servidorView)
730
                                                                                                          .build();
731
                        return servidorAvaliacao;
732
                }
733
        }
734
 
735
        public static class AoSolicitarRevisaoAvaliacao extends AvaliacaoServiceImplTest {
736
                RevisaoAvaliacao revisaoAvaliacaoTipoAssiduidade;
737
                RevisaoAvaliacao revisaoAvaliacaoTipoDesempenho;
738
                List<RevisaoAvaliacaoDesempenho> revisoesAvaliacaoDesempenho;
739
 
740
                @Before
741
                public void inicializarContexto(){
742
                        super.inicializarContexto();
743
                        revisaoAvaliacaoTipoAssiduidade = new RevisaoAvaliacaoBuilder().comTipoAvaliacao(TipoAvaliacao.ASSIDUIDADE.getValue()).build();
744
                        revisaoAvaliacaoTipoDesempenho = new RevisaoAvaliacaoBuilder().comTipoAvaliacao(TipoAvaliacao.DESEMPENHO.getValue()).build();
745
                }
746
 
747
                @Test
748
                public void aoSolicitarRevisaoAvaliacaoDesempenhoDeveriaDelegarParaOhRepositorioSolicitarRevisaoAvaliacao() throws Exception {
749
                        contexto.checking(new Expectations(){{
750
                                ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
751
                                oneOf(avaliacaoRepositoryMock).solicitarRevisaoAvaliacao(with(any(RevisaoAvaliacao.class)));
752
                                ignoring(validadorMock).validar(revisaoAvaliacaoTipoDesempenho, Cadastrar.class);
753
                                ignoring(avaliacaoRepositoryMock).solicitarRevisaoAvaliacaoDesempenho(with(any(RevisaoAvaliacaoDesempenho.class)));
754
                        }});
755
 
756
                        avaliacaoService.solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoDesempenho);
757
                }
758
 
759
                @Test
760
                public void aoSolicitarRevisaoAvaliacaoDesempenhoDeveriaDelegarParaOhRepositorioSolicitarRevisaoAvaliacaoDesempenho() throws Exception {
761
                        revisoesAvaliacaoDesempenho = new ArrayList<RevisaoAvaliacaoDesempenho>();
762
                        revisoesAvaliacaoDesempenho.add(new RevisaoAvaliacaoDesempenhoBuilder()
763
                                                                                                .comRevisaoAvaliacaoDesempenhoId(new RevisaoAvaliacaoDesempenhoId())
764
                                                                                                .comSolicitacao(DESCRICAO_SOLICITACAO_NA_SOLICITACAO_ANTERIOR_CORRECAO_EFETUADA_MAS_A_NOTA_CONTINUA_A_MESMA)
765
                                                                                                .build());
766
                        revisaoAvaliacaoTipoDesempenho.setRevisoesAvaliacaoDesempenho(revisoesAvaliacaoDesempenho);
767
                        contexto.checking(new Expectations(){{
768
                                ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
769
                                ignoring(avaliacaoRepositoryMock).solicitarRevisaoAvaliacao(with(any(RevisaoAvaliacao.class)));
770
                                ignoring(validadorMock).validar(new RevisaoAvaliacaoDesempenhoBuilder().comRevisaoAvaliacaoDesempenhoId(new RevisaoAvaliacaoDesempenhoId()).build(), Cadastrar.class);
771
                                oneOf(avaliacaoRepositoryMock).solicitarRevisaoAvaliacaoDesempenho(with(any(RevisaoAvaliacaoDesempenho.class)));
772
                        }});
773
 
774
                        avaliacaoService.solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoDesempenho);
775
                }
776
 
777
                @Test
778
                public void aoSolicitarRevisaoAvaliacaoAssiduidadeDeveriaDelegarParaOhAvaliacaoRepositorySolicitarRevisaoAvaliacao() throws Exception {
779
                        contexto.checking(new Expectations(){{
780
                                ignoring(validadorMock).validar(revisaoAvaliacaoTipoAssiduidade, Cadastrar.class);
781
                                ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
782
                                oneOf(avaliacaoRepositoryMock).solicitarRevisaoAvaliacao(with(any(RevisaoAvaliacao.class)));
783
                        }});
784
 
785
                        avaliacaoService.solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoAssiduidade);
786
                }
787
 
788
                @Test
789
                public void aoSolicitarRevisaoAvaliacaoAssiduidadeDeveriaDelegarParaOhValidador() throws Exception {
790
                        contexto.checking(new Expectations(){{
791
                                oneOf(validadorMock).validar(revisaoAvaliacaoTipoAssiduidade, Cadastrar.class);
792
                                ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
793
                                ignoring(avaliacaoRepositoryMock).solicitarRevisaoAvaliacao(with(any(RevisaoAvaliacao.class)));
794
                        }});
795
 
796
                        avaliacaoService.solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoAssiduidade);
797
                }
798
 
799
                @Test
800
                public void aoSolicitarRevisaoAvaliacaoAssiduidadeDeveriaDelegarParaOhAvaliacaoRepositoryListarRevisaoAvaliacaoServidor() throws Exception {
801
                        contexto.checking(new Expectations(){{
802
                                ignoring(validadorMock).validar(revisaoAvaliacaoTipoAssiduidade, Cadastrar.class);
803
                                oneOf(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
804
                                ignoring(avaliacaoRepositoryMock).solicitarRevisaoAvaliacao(with(any(RevisaoAvaliacao.class)));
805
                        }});
806
 
807
                        avaliacaoService.solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoAssiduidade);
808
                }
809
 
810
                @Test
811
                public void aoSolicitarRevisaoAvaliacaoAssiduidadeComListaRevisaoComTipoRevisaoRecursoDeveriaLancarExcecao() throws Exception {
812
                        final List<RevisaoAvaliacao> revisoes = new ArrayList<RevisaoAvaliacao>();
813
                        RevisaoAvaliacao revisaoAvaliacao = new RevisaoAvaliacaoBuilder()
814
                                                                                                        .comTipoRevisao(TipoRevisao.RECURSO.getValue())
815
                                                                                                        .comTipoAvaliacao(TipoAvaliacao.ASSIDUIDADE.getValue())
816
                                                                                                        .build();
817
                        revisoes.add(revisaoAvaliacao);
818
 
819
                        contexto.checking(new Expectations(){{
820
                                ignoring(validadorMock).validar(revisaoAvaliacaoTipoAssiduidade, Cadastrar.class);
821
                                ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
822
                                will(returnValue(revisoes));
823
                                ignoring(avaliacaoRepositoryMock).solicitarRevisaoAvaliacao(with(any(RevisaoAvaliacao.class)));
824
                        }});
825
 
826
                        VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
827
                                @Override
828
                                public void execute() throws Exception {
829
                                        avaliacaoService.solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoAssiduidade);
830
                                }
831
                        }, "Já foi realizada anteriormente uma revisão do tipo Recurso para a avaliação Assiduidade.");
832
                }
833
 
834
                @Test
835
                public void aoSolicitarRevisaoAvaliacaoSemInformarSolicitacaoDeveriaLancarExcecaoXXX() throws Exception {
836
                        revisoesAvaliacaoDesempenho = new ArrayList<RevisaoAvaliacaoDesempenho>();
837
                        revisoesAvaliacaoDesempenho.add(new RevisaoAvaliacaoDesempenhoBuilder().build());
838
                        revisaoAvaliacaoTipoDesempenho.setRevisoesAvaliacaoDesempenho(revisoesAvaliacaoDesempenho);
839
                        contexto.checking(new Expectations(){{
840
                                ignoring(avaliacaoRepositoryMock).listarRevisaoAvaliacaoServidor(with(any(ServidorAvaliacao.class)), with(any(String.class)));
841
                                ignoring(avaliacaoRepositoryMock).solicitarRevisaoAvaliacao(with(any(RevisaoAvaliacao.class)));
842
                                ignoring(validadorMock).validar(new RevisaoAvaliacaoDesempenhoBuilder().comRevisaoAvaliacaoDesempenhoId(new RevisaoAvaliacaoDesempenhoId()).build(), Cadastrar.class);
843
                                never(avaliacaoRepositoryMock).solicitarRevisaoAvaliacaoDesempenho(with(any(RevisaoAvaliacaoDesempenho.class)));
844
                        }});
845
 
846
                        VerificadorLancamentoException.verificarMensagemLancamentoExceptionSemRetornoMensagem(new CommandSemMensagem() {
847
                                @Override
848
                                public void execute() throws Exception {
849
                                        avaliacaoService.solicitarRevisaoAvaliacao(revisaoAvaliacaoTipoDesempenho);
850
                                }
851
                        }, "Obrigatório informar a solicitação.");
852
                }
853
 
854
        }
855
 
856
        public static class AoResponderSolicitacaoRevisao extends AvaliacaoServiceImplTest {
857
                @Test
858
                public void aoResponderSolicitacaoRevisaoDeveriaDelegarParaOhRepositorio() throws Exception {
859
                        contexto.checking(new Expectations(){{
860
                                oneOf(avaliacaoRepositoryMock).responderSolicitacaoRevisao(with(new RevisaoAvaliacao()));
861
                        }});
862
 
863
                        avaliacaoService.responderSolicitacaoRevisao(new RevisaoAvaliacao());
864
                }
865
        }
866
 
867
        public static class AoConsultarRevisaoNaoRespondida extends AvaliacaoServiceImplTest {
868
 
869
                @Before
870
                public void setUp(){
871
                        parametrosConsultarRevisaoAvaliacaoNaoRespondida = new ParametrosConsultarRevisaoAvaliacaoNaoRespondida();
872
                }
873
 
874
                @Test
875
                public void informandoUsuarioComPapelComumDeveriaDelegarParaOhRepositorio() throws Exception {
876
                        usuario = new UsuarioViewBuilder().comRole(ROLE_AVALIADOR).build();
877
                        parametrosConsultarRevisaoAvaliacaoNaoRespondida.setUsuario(usuario);
878
                        contexto.checking(new Expectations(){{
879
                                oneOf(avaliacaoRepositoryMock).consultarRevisaoReconsideracaoNaoRespondida(with(same(parametrosConsultarRevisaoAvaliacaoNaoRespondida)));
880
                                never(avaliacaoRepositoryMock).consultarRevisaoRecursoNaoRespondida(with(same(parametrosConsultarRevisaoAvaliacaoNaoRespondida)));
881
                        }});
882
                        avaliacaoService.consultarRevisaoNaoRespondida(parametrosConsultarRevisaoAvaliacaoNaoRespondida);
883
                }
884
 
885
                @Test
886
                public void informandoUsuarioComPapelCoordenadorDeveriaDelegarParaOhRepositorio() throws Exception {
887
                        usuario = new UsuarioViewBuilder().comRole(ROLE_COORDENADOR).build();
888
                        parametrosConsultarRevisaoAvaliacaoNaoRespondida.setUsuario(usuario);
889
                        contexto.checking(new Expectations(){{
890
                                oneOf(avaliacaoRepositoryMock).consultarRevisaoReconsideracaoNaoRespondida(with(same(parametrosConsultarRevisaoAvaliacaoNaoRespondida)));
891
                                oneOf(avaliacaoRepositoryMock).consultarRevisaoRecursoNaoRespondida(with(same(parametrosConsultarRevisaoAvaliacaoNaoRespondida)));
892
                        }});
893
                        avaliacaoService.consultarRevisaoNaoRespondida(parametrosConsultarRevisaoAvaliacaoNaoRespondida);
894
                }
895
 
896
                @After
897
                public void tearDown(){
898
                        parametrosConsultarRevisaoAvaliacaoNaoRespondida = null;
899
                        usuario = null;
900
                }
901
        }
902
 
903
        public static class AoObterQuantidadeRegistrosConsultarRevisaoNaoRespondida extends AvaliacaoServiceImplTest {
904
 
905
                @Before
906
                public void setUp(){
907
                        parametrosConsultarRevisaoAvaliacaoNaoRespondida = new ParametrosConsultarRevisaoAvaliacaoNaoRespondida();
908
                }
909
 
910
                @Test
911
                public void informandoUsuarioComPapelComumDeveriaDelegarParaOhRepositorio() throws Exception {
912
                        usuario = new UsuarioViewBuilder().comRole(ROLE_AVALIADOR).build();
913
                        parametrosConsultarRevisaoAvaliacaoNaoRespondida.setUsuario(usuario);
914
                        contexto.checking(new Expectations(){{
915
                                oneOf(avaliacaoRepositoryMock).obterQuantidadeRegistrosConsultarRevisaoReconsideracaoNaoRespondida(with(same(parametrosConsultarRevisaoAvaliacaoNaoRespondida)));
916
                                never(avaliacaoRepositoryMock).obterQuantidadeRegistrosConsultarRevisaoRecursoNaoRespondida(with(same(parametrosConsultarRevisaoAvaliacaoNaoRespondida)));
917
                        }});
918
                        avaliacaoService.obterQuantidadeRegistrosConsultarRevisaoNaoRespondida(parametrosConsultarRevisaoAvaliacaoNaoRespondida);
919
                }
920
 
921
                @Test
922
                public void informandoUsuarioComPapelCoordenadorDeveriaDelegarParaOhRepositorio() throws Exception {
923
                        usuario = new UsuarioViewBuilder().comRole(ROLE_COORDENADOR).build();
924
                        parametrosConsultarRevisaoAvaliacaoNaoRespondida.setUsuario(usuario);
925
                        contexto.checking(new Expectations(){{
926
                                oneOf(avaliacaoRepositoryMock).obterQuantidadeRegistrosConsultarRevisaoReconsideracaoNaoRespondida(with(same(parametrosConsultarRevisaoAvaliacaoNaoRespondida)));
927
                                oneOf(avaliacaoRepositoryMock).obterQuantidadeRegistrosConsultarRevisaoRecursoNaoRespondida(with(same(parametrosConsultarRevisaoAvaliacaoNaoRespondida)));
928
                        }});
929
                        avaliacaoService.obterQuantidadeRegistrosConsultarRevisaoNaoRespondida(parametrosConsultarRevisaoAvaliacaoNaoRespondida);
930
                }
931
 
932
                @After
933
                public void tearDown(){
934
                        parametrosConsultarRevisaoAvaliacaoNaoRespondida = null;
935
                        usuario = null;
936
                }
937
        }
938
 
939
        public static class AoConsultarRevisaoAvaliacaoPorSequencial extends AvaliacaoServiceImplTest {
940
 
941
                @Test
942
                public void informandoSequencialValidoDeveriaDelegarParaOhRepositorio() throws Exception {
943
                        contexto.checking(new Expectations(){{
944
                                oneOf(avaliacaoRepositoryMock).consultarRevisaoAvaliacaoPorSequencial(with(any(Long.class)));
945
                        }});
946
                        avaliacaoService.consultarRevisaoAvaliacaoPorSequencial(new Long("1"));
947
                }
948
 
949
 
950
                @Test
951
                public void informandoSequencialNuloDeveriaDelegarParaOhRepositorio() throws Exception {
952
                        contexto.checking(new Expectations(){{
953
                                oneOf(avaliacaoRepositoryMock).consultarRevisaoAvaliacaoPorSequencial(with(any(Long.class)));
954
                        }});
955
                        avaliacaoService.consultarRevisaoAvaliacaoPorSequencial(null);
956
                }
957
 
958
        }
959
 
960
}