Commit d7f17457e4d25f03bf274f2ac935932e525418e6

Authored by Eriksen Costa
1 parent 9309126c
Exists in master

Code refactoring

ieducar/lib/App/Model/IedFinder.php
... ... @@ -63,85 +63,222 @@ class App_Model_IedFinder extends CoreExt_Entity
63 63 }
64 64  
65 65 /**
66   - * Retorna uma instância de RegraAvaliacao_Model_Regra a partir dos dados
67   - * da matrícula.
  66 + * Retorna um nome de curso, procurando pelo seu código.
  67 + * @param int $id
  68 + * @return string|FALSE
  69 + */
  70 + public static function getCurso($id)
  71 + {
  72 + $curso = self::addClassToStorage('clsPmieducarCurso', NULL,
  73 + 'include/pmieducar/clsPmieducarCurso.inc.php');
  74 + $curso->cod_curso = $id;
  75 + $curso = $curso->detalhe();
  76 + return $curso['nm_curso'];
  77 + }
  78 +
  79 + /**
  80 + * Retorna um array com as informações da série a partir de seu código.
68 81 *
69   - * @param int $codMatricula
70   - * @param RegraAvaliacao_Model_RegraDataMapper $mapper
71   - * @return RegraAvaliacao_Model_Regra
  82 + * @param int $codSerie
  83 + * @return array
72 84 * @throws App_Model_Exception
73 85 */
74   - public static function getRegraAvaliacaoPorMatricula($codMatricula,
75   - RegraAvaliacao_Model_RegraDataMapper $mapper = NULL)
  86 + public static function getSerie($codSerie)
76 87 {
77   - $matricula = self::getMatricula($codMatricula);
78   - $serie = self::getSerie($matricula['ref_ref_cod_serie']);
  88 + // Recupera clsPmieducarSerie do storage de classe estático
  89 + $serie = self::addClassToStorage('clsPmieducarSerie', NULL,
  90 + 'include/pmieducar/clsPmieducarSerie.inc.php');
79 91  
80   - if (is_null($mapper)) {
81   - require_once 'RegraAvaliacao/Model/RegraDataMapper.php';
82   - $mapper = new RegraAvaliacao_Model_RegraDataMapper();
  92 + // Usa o atributo público para depois chamar o método detalhe()
  93 + $serie->cod_serie = $codSerie;
  94 + $serie = $serie->detalhe();
  95 +
  96 + if (FALSE === $serie) {
  97 + throw new App_Model_Exception(
  98 + sprintf('Série com o código "%d" não existe.', $codSerie)
  99 + );
83 100 }
84 101  
85   - return $mapper->find($serie['regra_avaliacao_id']);
  102 + return $serie;
86 103 }
87 104  
88 105 /**
89   - * Retorna um array de instâncias ComponenteCurricular_Model_Componente ao
90   - * qual um aluno cursa através de sua matrícula.
  106 + * Retorna todas as séries cadastradas na tabela pmieducar.serie, selecionando
  107 + * opcionalmente pelo código da instituição.
  108 + * @param int $instituicaoId
  109 + * @return array
  110 + */
  111 + public static function getSeries($instituicaoId = NULL)
  112 + {
  113 + $serie = self::addClassToStorage('clsPmieducarSerie', NULL,
  114 + 'include/pmieducar/clsPmieducarSerie.inc.php');
  115 +
  116 + // Carrega as séries
  117 + $serie->setOrderby('ref_cod_curso ASC, cod_serie ASC, etapa_curso ASC');
  118 + $serie = $serie->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  119 + NULL, NULL, NULL, NULL, $instituicaoId);
  120 +
  121 + $series = array();
  122 + foreach ($serie as $key => $val) {
  123 + $series[$val['cod_serie']] = $val;
  124 + }
  125 +
  126 + return $series;
  127 + }
  128 +
  129 + /**
  130 + * Retorna as turmas de uma escola.
  131 + * @param int $escola
  132 + * @return array (cod_turma => nm_turma)
  133 + */
  134 + public static function getTurmas($escola)
  135 + {
  136 + $turma = self::addClassToStorage('clsPmieducarTurma', NULL,
  137 + 'include/pmieducar/clsPmieducarTurma.inc.php');
  138 +
  139 + // Carrega as turmas da escola
  140 + $turma->setOrderBy('nm_turma ASC');
  141 + $turmas = $turma->lista(NULL, NULL, NULL, NULL, $escola);
  142 +
  143 + $ret = array();
  144 + foreach ($turmas as $turma) {
  145 + $ret[$turma['cod_turma']] = $turma['nm_turma'];
  146 + }
  147 +
  148 + return $ret;
  149 + }
  150 +
  151 + /**
  152 + * Retorna o total de módulos do ano letivo da escola ou turma (caso o ano
  153 + * escolar do curso não seja "padrão"). Retorna um array com o total de
  154 + * módulos atribuídos ao ano letivo e o nome do módulo. Ex:
91 155 *
92   - * Exclui todas os componentes curriculares ao qual o aluno está dispensado
93   - * de cursar.
  156 + * <code>
  157 + * <?php
  158 + * array(
  159 + * 'total' => 4,
  160 + * 'nome' => 'Bimestre'
  161 + * );
  162 + * </code>
94 163 *
95   - * @param int $codMatricula
96   - * @param ComponenteCurricular_Model_ComponenteDataMapper $mapper
  164 + * @param int $codEscola
  165 + * @param int $codCurso
  166 + * @param int $codTurma
  167 + * @param int|NULL $ano Ano letivo da escola ou turma. Opcional.
97 168 * @return array
98   - * @throws App_Model_Exception
99 169 */
100   - public static function getComponentesPorMatricula($codMatricula,
101   - ComponenteCurricular_Model_ComponenteDataMapper $mapper = NULL)
  170 + public static function getModulo($codEscola, $codCurso, $codTurma,
  171 + $ano = NULL)
102 172 {
103   - $matricula = self::getMatricula($codMatricula);
  173 + $modulos = array();
104 174  
105   - $codEscola = $matricula['ref_ref_cod_escola'];
106   - $codSerie = $matricula['ref_ref_cod_serie'];
  175 + $curso = self::addClassToStorage('clsPmieducarCurso', NULL,
  176 + 'include/pmieducar/clsPmieducarCurso.inc.php');
107 177  
108   - $serie = self::getSerie($codSerie);
  178 + $curso->cod_curso = $codCurso;
  179 + $curso = $curso->detalhe();
109 180  
110   - // Disciplinas da escola na série em que o aluno está matriculado
111   - $disciplinas = self::getEscolaSerieDisciplina($codSerie, $codEscola);
  181 + $padraoAnoEscolar = $curso['padrao_ano_escolar'] == 1 ? TRUE : FALSE;
112 182  
113   - // Dispensas do aluno
114   - $disciplinasDispensa = self::getDisciplinasDispensadasPorMatricula(
115   - $codMatricula, $codSerie, $codEscola
  183 + // Segue o padrão
  184 + if (TRUE == $padraoAnoEscolar) {
  185 + $escolaAnoLetivo = self::addClassToStorage('clsPmieducarEscolaAnoLetivo',
  186 + NULL, 'include/pmieducar/clsPmieducarEscolaAnoLetivo.inc.php');
  187 +
  188 + $anosEmAndamento = $escolaAnoLetivo->lista($codEscola, $ano, NULL, NULL,
  189 + 1, NULL, NULL, NULL, NULL, 1);
  190 +
  191 + // Pela restrição na criação de anos letivos, eu posso confiar no primeiro
  192 + // e único resultado que deve ter retornado
  193 + if (FALSE !== $anosEmAndamento && 1 == count($anosEmAndamento)) {
  194 + $ano = array_shift($anosEmAndamento);
  195 + $ano = $ano['ano'];
  196 + }
  197 + else {
  198 + throw new App_Model_Exception('Existem vários anos escolares em andamento.');
  199 + }
  200 +
  201 + $anoLetivoModulo = self::addClassToStorage('clsPmieducarAnoLetivoModulo',
  202 + NULL, 'include/pmieducar/clsPmieducarAnoLetivoModulo.inc.php');
  203 +
  204 + $modulos = $anoLetivoModulo->lista($ano, $codEscola);
  205 + }
  206 + else {
  207 + $turmaModulo = self::addClassToStorage('clsPmieducarTurmaModulo',
  208 + NULL, 'include/pmieducar/clsPmieducarTurmaModulo.inc.php');
  209 +
  210 + $modulos = $turmaModulo->lista($codTurma);
  211 + }
  212 +
  213 + if (FALSE === $modulos) {
  214 + return 0;
  215 + }
  216 +
  217 + // Total de módulos
  218 + $total = count($modulos);
  219 +
  220 + // Código do tipo de módulo
  221 + $modulo = array_shift($modulos);
  222 + $codModulo = $modulo['ref_cod_modulo'];
  223 +
  224 + // Recupera do regstry o objeto legado
  225 + $modulo = self::addClassToStorage('clsPmieducarModulo', NULL,
  226 + 'include/pmieducar/clsPmieducarModulo.inc.php');
  227 +
  228 + $modulo->cod_modulo = $codModulo;
  229 + $modulo = $modulo->detalhe();
  230 + $modulo = $modulo['nm_tipo'];
  231 +
  232 + return array(
  233 + 'total' => $total,
  234 + 'nome' => $modulo
116 235 );
  236 + }
117 237  
118   - // Instancia um data mapper caso nenhum seja provido
119   - if (is_null($mapper)) {
  238 + /**
  239 + * Retorna array com as referências de pmieducar.escola_serie_disciplina
  240 + * a modules.componente_curricular ('ref_ref_cod_disciplina').
  241 + *
  242 + * @param int $codSerie
  243 + * @param int $codEscola
  244 + * @param bool $hydrate
  245 + * @return array
  246 + * @throws App_Model_Exception
  247 + */
  248 + public static function getEscolaSerieDisciplina($codSerie, $codEscola, $hydrate = FALSE)
  249 + {
  250 + // Disciplinas na série na escola
  251 + $escolaSerieDisciplina = self::addClassToStorage('clsPmieducarEscolaSerieDisciplina',
  252 + NULL, 'include/pmieducar/clsPmieducarEscolaSerieDisciplina.inc.php');
  253 +
  254 + $disciplinasEscolaSerie = $escolaSerieDisciplina->lista($codSerie, $codEscola, NULL, 1);
  255 +
  256 + if (FALSE === $disciplinasEscolaSerie) {
  257 + throw new App_Model_Exception(
  258 + sprintf('Nenhuma disciplina para a série (%d) e a escola (%d) informados',
  259 + $codSerie, $codEscola)
  260 + );
  261 + }
  262 +
  263 + if ($hydrate) {
120 264 require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php';
121 265 $mapper = new ComponenteCurricular_Model_ComponenteDataMapper();
122 266 }
123 267  
124   - // Seleciona os componentes curriculares em que o aluno está cursando
125   - $componentes = array();
126   -
127   - foreach ($disciplinas as $disciplina) {
128   - if (in_array($disciplina['ref_cod_disciplina'], $disciplinasDispensa)) {
  268 + $disciplinas = array();
  269 + foreach ($disciplinasEscolaSerie as $disciplinaEscolaSerie) {
  270 + if ($hydrate) {
  271 + $disciplinas[] = $mapper->find($disciplinaEscolaSerie['ref_cod_disciplina']);
129 272 continue;
130 273 }
131 274  
132   - $componenteCurricular = $mapper->findComponenteCurricularAnoEscolar(
133   - $disciplina['ref_cod_disciplina'],
134   - $codSerie
  275 + $disciplinas[] = array(
  276 + 'ref_cod_disciplina' => $disciplinaEscolaSerie['ref_cod_disciplina'],
  277 + 'carga_horaria' => $disciplinaEscolaSerie['carga_horaria']
135 278 );
136   -
137   - if (!is_null($disciplina['carga_horaria'])) {
138   - $componenteCurricular->cargaHoraria = $disciplina['carga_horaria'];
139   - }
140   -
141   - $componentes[$componenteCurricular->id] = $componenteCurricular;
142 279 }
143 280  
144   - return $componentes;
  281 + return $disciplinas;
145 282 }
146 283  
147 284 /**
... ... @@ -206,75 +343,85 @@ class App_Model_IedFinder extends CoreExt_Entity
206 343 }
207 344  
208 345 /**
209   - * Retorna um array com as informações da série a partir de seu código.
  346 + * Retorna uma instância de RegraAvaliacao_Model_Regra a partir dos dados
  347 + * da matrícula.
210 348 *
211   - * @param int $codSerie
212   - * @return array
  349 + * @param int $codMatricula
  350 + * @param RegraAvaliacao_Model_RegraDataMapper $mapper
  351 + * @return RegraAvaliacao_Model_Regra
213 352 * @throws App_Model_Exception
214 353 */
215   - public static function getSerie($codSerie)
  354 + public static function getRegraAvaliacaoPorMatricula($codMatricula,
  355 + RegraAvaliacao_Model_RegraDataMapper $mapper = NULL)
216 356 {
217   - // Recupera clsPmieducarSerie do storage de classe estático
218   - $serie = self::addClassToStorage('clsPmieducarSerie', NULL,
219   - 'include/pmieducar/clsPmieducarSerie.inc.php');
220   -
221   - // Usa o atributo público para depois chamar o método detalhe()
222   - $serie->cod_serie = $codSerie;
223   - $serie = $serie->detalhe();
  357 + $matricula = self::getMatricula($codMatricula);
  358 + $serie = self::getSerie($matricula['ref_ref_cod_serie']);
224 359  
225   - if (FALSE === $serie) {
226   - throw new App_Model_Exception(
227   - sprintf('Série com o código "%d" não existe.', $codSerie)
228   - );
  360 + if (is_null($mapper)) {
  361 + require_once 'RegraAvaliacao/Model/RegraDataMapper.php';
  362 + $mapper = new RegraAvaliacao_Model_RegraDataMapper();
229 363 }
230 364  
231   - return $serie;
  365 + return $mapper->find($serie['regra_avaliacao_id']);
232 366 }
233 367  
234 368 /**
235   - * Retorna array com as referências de pmieducar.escola_serie_disciplina
236   - * a modules.componente_curricular ('ref_ref_cod_disciplina').
  369 + * Retorna um array de instâncias ComponenteCurricular_Model_Componente ao
  370 + * qual um aluno cursa através de sua matrícula.
237 371 *
238   - * @param int $codSerie
239   - * @param int $codEscola
240   - * @param bool $hydrate
  372 + * Exclui todas os componentes curriculares ao qual o aluno está dispensado
  373 + * de cursar.
  374 + *
  375 + * @param int $codMatricula
  376 + * @param ComponenteCurricular_Model_ComponenteDataMapper $mapper
241 377 * @return array
242 378 * @throws App_Model_Exception
243 379 */
244   - public static function getEscolaSerieDisciplina($codSerie, $codEscola, $hydrate = FALSE)
  380 + public static function getComponentesPorMatricula($codMatricula,
  381 + ComponenteCurricular_Model_ComponenteDataMapper $mapper = NULL)
245 382 {
246   - // Disciplinas na série na escola
247   - $escolaSerieDisciplina = self::addClassToStorage('clsPmieducarEscolaSerieDisciplina',
248   - NULL, 'include/pmieducar/clsPmieducarEscolaSerieDisciplina.inc.php');
  383 + $matricula = self::getMatricula($codMatricula);
249 384  
250   - $disciplinasEscolaSerie = $escolaSerieDisciplina->lista($codSerie, $codEscola, NULL, 1);
  385 + $codEscola = $matricula['ref_ref_cod_escola'];
  386 + $codSerie = $matricula['ref_ref_cod_serie'];
251 387  
252   - if (FALSE === $disciplinasEscolaSerie) {
253   - throw new App_Model_Exception(
254   - sprintf('Nenhuma disciplina para a série (%d) e a escola (%d) informados',
255   - $codSerie, $codEscola)
256   - );
257   - }
  388 + $serie = self::getSerie($codSerie);
258 389  
259   - if ($hydrate) {
  390 + // Disciplinas da escola na série em que o aluno está matriculado
  391 + $disciplinas = self::getEscolaSerieDisciplina($codSerie, $codEscola);
  392 +
  393 + // Dispensas do aluno
  394 + $disciplinasDispensa = self::getDisciplinasDispensadasPorMatricula(
  395 + $codMatricula, $codSerie, $codEscola
  396 + );
  397 +
  398 + // Instancia um data mapper caso nenhum seja provido
  399 + if (is_null($mapper)) {
260 400 require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php';
261 401 $mapper = new ComponenteCurricular_Model_ComponenteDataMapper();
262 402 }
263 403  
264   - $disciplinas = array();
265   - foreach ($disciplinasEscolaSerie as $disciplinaEscolaSerie) {
266   - if ($hydrate) {
267   - $disciplinas[] = $mapper->find($disciplinaEscolaSerie['ref_cod_disciplina']);
  404 + // Seleciona os componentes curriculares em que o aluno está cursando
  405 + $componentes = array();
  406 +
  407 + foreach ($disciplinas as $disciplina) {
  408 + if (in_array($disciplina['ref_cod_disciplina'], $disciplinasDispensa)) {
268 409 continue;
269 410 }
270 411  
271   - $disciplinas[] = array(
272   - 'ref_cod_disciplina' => $disciplinaEscolaSerie['ref_cod_disciplina'],
273   - 'carga_horaria' => $disciplinaEscolaSerie['carga_horaria']
  412 + $componenteCurricular = $mapper->findComponenteCurricularAnoEscolar(
  413 + $disciplina['ref_cod_disciplina'],
  414 + $codSerie
274 415 );
  416 +
  417 + if (!is_null($disciplina['carga_horaria'])) {
  418 + $componenteCurricular->cargaHoraria = $disciplina['carga_horaria'];
  419 + }
  420 +
  421 + $componentes[$componenteCurricular->id] = $componenteCurricular;
275 422 }
276 423  
277   - return $disciplinas;
  424 + return $componentes;
278 425 }
279 426  
280 427 /**
... ... @@ -328,153 +475,6 @@ class App_Model_IedFinder extends CoreExt_Entity
328 475 }
329 476  
330 477 /**
331   - * Retorna o total de módulos do ano letivo da escola ou turma (caso o ano
332   - * escolar do curso não seja "padrão"). Retorna um array com o total de
333   - * módulos atribuídos ao ano letivo e o nome do módulo. Ex:
334   - *
335   - * <code>
336   - * <?php
337   - * array(
338   - * 'total' => 4,
339   - * 'nome' => 'Bimestre'
340   - * );
341   - * </code>
342   - *
343   - * @param int $codEscola
344   - * @param int $codCurso
345   - * @param int $codTurma
346   - * @param int|NULL $ano Ano letivo da escola ou turma. Opcional.
347   - * @return array
348   - */
349   - public static function getModulo($codEscola, $codCurso, $codTurma,
350   - $ano = NULL)
351   - {
352   - $modulos = array();
353   -
354   - $curso = self::addClassToStorage('clsPmieducarCurso', NULL,
355   - 'include/pmieducar/clsPmieducarCurso.inc.php');
356   -
357   - $curso->cod_curso = $codCurso;
358   - $curso = $curso->detalhe();
359   -
360   - $padraoAnoEscolar = $curso['padrao_ano_escolar'] == 1 ? TRUE : FALSE;
361   -
362   - // Segue o padrão
363   - if (TRUE == $padraoAnoEscolar) {
364   - $escolaAnoLetivo = self::addClassToStorage('clsPmieducarEscolaAnoLetivo',
365   - NULL, 'include/pmieducar/clsPmieducarEscolaAnoLetivo.inc.php');
366   -
367   - $anosEmAndamento = $escolaAnoLetivo->lista($codEscola, $ano, NULL, NULL,
368   - 1, NULL, NULL, NULL, NULL, 1);
369   -
370   - // Pela restrição na criação de anos letivos, eu posso confiar no primeiro
371   - // e único resultado que deve ter retornado
372   - if (FALSE !== $anosEmAndamento && 1 == count($anosEmAndamento)) {
373   - $ano = array_shift($anosEmAndamento);
374   - $ano = $ano['ano'];
375   - }
376   - else {
377   - throw new App_Model_Exception('Existem vários anos escolares em andamento.');
378   - }
379   -
380   - $anoLetivoModulo = self::addClassToStorage('clsPmieducarAnoLetivoModulo',
381   - NULL, 'include/pmieducar/clsPmieducarAnoLetivoModulo.inc.php');
382   -
383   - $modulos = $anoLetivoModulo->lista($ano, $codEscola);
384   - }
385   - else {
386   - $turmaModulo = self::addClassToStorage('clsPmieducarTurmaModulo',
387   - NULL, 'include/pmieducar/clsPmieducarTurmaModulo.inc.php');
388   -
389   - $modulos = $turmaModulo->lista($codTurma);
390   - }
391   -
392   - if (FALSE === $modulos) {
393   - return 0;
394   - }
395   -
396   - // Total de módulos
397   - $total = count($modulos);
398   -
399   - // Código do tipo de módulo
400   - $modulo = array_shift($modulos);
401   - $codModulo = $modulo['ref_cod_modulo'];
402   -
403   - // Recupera do regstry o objeto legado
404   - $modulo = self::addClassToStorage('clsPmieducarModulo', NULL,
405   - 'include/pmieducar/clsPmieducarModulo.inc.php');
406   -
407   - $modulo->cod_modulo = $codModulo;
408   - $modulo = $modulo->detalhe();
409   - $modulo = $modulo['nm_tipo'];
410   -
411   - return array(
412   - 'total' => $total,
413   - 'nome' => $modulo
414   - );
415   - }
416   -
417   - /**
418   - * Retorna todas as séries cadastradas na tabela pmieducar.serie, selecionando
419   - * opcionalmente pelo código da instituição.
420   - * @param int $instituicaoId
421   - * @return array
422   - */
423   - public static function getSeries($instituicaoId = NULL)
424   - {
425   - $serie = self::addClassToStorage('clsPmieducarSerie', NULL,
426   - 'include/pmieducar/clsPmieducarSerie.inc.php');
427   -
428   - // Carrega as séries
429   - $serie->setOrderby('ref_cod_curso ASC, cod_serie ASC, etapa_curso ASC');
430   - $serie = $serie->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
431   - NULL, NULL, NULL, NULL, $instituicaoId);
432   -
433   - $series = array();
434   - foreach ($serie as $key => $val) {
435   - $series[$val['cod_serie']] = $val;
436   - }
437   -
438   - return $series;
439   - }
440   -
441   - /**
442   - * Retorna um nome de curso, procurando pelo seu código.
443   - * @param int $id
444   - * @return string|FALSE
445   - */
446   - public static function getCurso($id)
447   - {
448   - $curso = self::addClassToStorage('clsPmieducarCurso', NULL,
449   - 'include/pmieducar/clsPmieducarCurso.inc.php');
450   - $curso->cod_curso = $id;
451   - $curso = $curso->detalhe();
452   - return $curso['nm_curso'];
453   - }
454   -
455   - /**
456   - * Retorna as turmas de uma escola.
457   - * @param int $escola
458   - * @return array (cod_turma => nm_turma)
459   - */
460   - public static function getTurmas($escola)
461   - {
462   - $turma = self::addClassToStorage('clsPmieducarTurma', NULL,
463   - 'include/pmieducar/clsPmieducarTurma.inc.php');
464   -
465   - // Carrega as turmas da escola
466   - $turma->setOrderBy('nm_turma ASC');
467   - $turmas = $turma->lista(NULL, NULL, NULL, NULL, $escola);
468   -
469   - $ret = array();
470   - foreach ($turmas as $turma) {
471   - $ret[$turma['cod_turma']] = $turma['nm_turma'];
472   - }
473   -
474   - return $ret;
475   - }
476   -
477   - /**
478 478 * @see CoreExt_Entity_Validatable#getDefaultValidatorCollection()
479 479 */
480 480 public function getDefaultValidatorCollection()
... ...
ieducar/tests/unit/App/Model/IedFinderTest.php
... ... @@ -101,7 +101,7 @@ class App_Model_IedFinderTest extends UnitBaseTest
101 101 return $tabela;
102 102 }
103 103  
104   - public function testCarregaNomeDeCursoPorCodigo()
  104 + public function testGetCurso()
105 105 {
106 106 $returnValue = array(
107 107 'nm_curso' => 'Ensino Fundamental'
... ... @@ -117,45 +117,63 @@ class App_Model_IedFinderTest extends UnitBaseTest
117 117 'clsPmieducarCurso', $mock, NULL, TRUE);
118 118  
119 119 $curso = App_Model_IedFinder::getCurso(1);
120   - $this->assertEquals($returnValue['nm_curso'], $curso);
  120 + $this->assertEquals(
  121 + $returnValue['nm_curso'], $curso,
  122 + '::getCurso() retorna o nome do curso através de uma busca pelo código.'
  123 + );
121 124 }
122 125  
123   - public function testCarregaSeries()
  126 + public function testGetInstituicoes()
124 127 {
125   - $returnValue = array(1 => array('cod_serie' => 1, 'nm_serie' => 'Pré'));
  128 + $returnValue = array(array('cod_instituicao' => 1, 'nm_instituicao' => 'Instituição'));
  129 + $expected = array(1 => 'Instituição');
126 130  
127   - $mock = $this->getCleanMock('clsPmieducarSerie');
  131 + $mock = $this->getCleanMock('clsPmieducarInstituicao');
128 132 $mock->expects($this->once())
129 133 ->method('lista')
130 134 ->will($this->returnValue($returnValue));
131 135  
132 136 // Registra a instância no repositório de classes de CoreExt_Entity
133   - $instance = CoreExt_Entity::addClassToStorage(
134   - 'clsPmieducarSerie', $mock, NULL, TRUE);
  137 + $instance = App_Model_IedFinder::addClassToStorage(
  138 + 'clsPmieducarInstituicao', $mock);
135 139  
136   - $series = App_Model_IedFinder::getSeries(1);
137   - $this->assertEquals($returnValue, $series);
  140 + $instituicoes = App_Model_IedFinder::getInstituicoes();
  141 + $this->assertEquals(
  142 + $expected, $instituicoes,
  143 + '::getInstituicoes() retorna todas as instituições cadastradas.'
  144 + );
138 145 }
139 146  
140   - public function testCarregaInstituicoes()
  147 + public function testGetSeries()
141 148 {
142   - $returnValue = array(array('cod_instituicao' => 1, 'nm_instituicao' => 'Instituição'));
143   - $expected = array(1 => 'Instituição');
  149 + $returnValue = array(
  150 + 1 => array('cod_serie' => 1, 'ref_ref_cod_instituicao' => 1, 'nm_serie' => 'Pré'),
  151 + 2 => array('cod_serie' => 2, 'ref_ref_cod_instituicao' => 2, 'nm_serie' => 'Pré')
  152 + );
144 153  
145   - $mock = $this->getCleanMock('clsPmieducarInstituicao');
146   - $mock->expects($this->once())
  154 + $mock = $this->getCleanMock('clsPmieducarSerie');
  155 + $mock->expects($this->exactly(2))
147 156 ->method('lista')
148   - ->will($this->returnValue($returnValue));
  157 + ->will($this->onConsecutiveCalls($returnValue, array($returnValue[1])));
149 158  
150 159 // Registra a instância no repositório de classes de CoreExt_Entity
151   - $instance = App_Model_IedFinder::addClassToStorage(
152   - 'clsPmieducarInstituicao', $mock);
  160 + $instance = CoreExt_Entity::addClassToStorage(
  161 + 'clsPmieducarSerie', $mock, NULL, TRUE);
153 162  
154   - $instituicoes = App_Model_IedFinder::getInstituicoes();
155   - $this->assertEquals($expected, $instituicoes);
  163 + $series = App_Model_IedFinder::getSeries();
  164 + $this->assertEquals(
  165 + $returnValue, $series,
  166 + '::getSeries() retorna todas as séries cadastradas.'
  167 + );
  168 +
  169 + $series = App_Model_IedFinder::getSeries(1);
  170 + $this->assertEquals(
  171 + array(1 => $returnValue[1]), $series,
  172 + '::getSeries() retorna todas as séries de uma instituição.'
  173 + );
156 174 }
157 175  
158   - public function testCarregaTurmas()
  176 + public function testGetTurmas()
159 177 {
160 178 $returnValue = array(1 => array('cod_turma' => 1, 'nm_turma' => 'Primeiro ano'));
161 179 $expected = array(1 => 'Primeiro ano');
... ... @@ -170,7 +188,10 @@ class App_Model_IedFinderTest extends UnitBaseTest
170 188 'clsPmieducarTurma', $mock, NULL, TRUE);
171 189  
172 190 $turmas = App_Model_IedFinder::getTurmas(1);
173   - $this->assertEquals($expected, $turmas);
  191 + $this->assertEquals(
  192 + $expected, $turmas,
  193 + '::getTurmas() retorna todas as turmas de uma escola.'
  194 + );
174 195 }
175 196  
176 197 public function testGetMatricula()
... ... @@ -222,10 +243,13 @@ class App_Model_IedFinderTest extends UnitBaseTest
222 243 CoreExt_Entity::addClassToStorage('clsPmieducarCurso', $cursoMock, NULL, TRUE);
223 244  
224 245 $matricula = App_Model_IedFinder::getMatricula(1);
225   - $this->assertEquals($expected, $matricula);
  246 + $this->assertEquals(
  247 + $expected, $matricula,
  248 + '::getMatricula() retorna os dados (escola, série, curso, turma e carga horária) de uma matrícula.'
  249 + );
226 250 }
227 251  
228   - public function testInstanciaRegraDeAvaliacaoPorMatricula()
  252 + public function testGetRegraAvaliacaoPorMatricula()
229 253 {
230 254 $expected = new RegraAvaliacao_Model_Regra(array(
231 255 'id' => 1,
... ... @@ -268,13 +292,16 @@ class App_Model_IedFinderTest extends UnitBaseTest
268 292 ->will($this->returnValue($expected));
269 293  
270 294 $regraAvaliacao = App_Model_IedFinder::getRegraAvaliacaoPorMatricula(1, $mapperMock);
271   - $this->assertEquals($expected, $regraAvaliacao);
  295 + $this->assertEquals(
  296 + $expected, $regraAvaliacao,
  297 + '::getRegraAvaliacaoPorMatricula() retorna a regra de avaliação de uma matrícula.'
  298 + );
272 299 }
273 300  
274 301 /**
275   - * @depends App_Model_IedFinderTest::testInstanciaRegraDeAvaliacaoPorMatricula
  302 + * @depends App_Model_IedFinderTest::testGetRegraAvaliacaoPorMatricula
276 303 */
277   - public function testDisciplinasPorMatricula()
  304 + public function testGetComponentesPorMatricula()
278 305 {
279 306 $componentes = array(
280 307 new ComponenteCurricular_Model_Componente(
... ... @@ -346,13 +373,16 @@ class App_Model_IedFinderTest extends UnitBaseTest
346 373 $expected[3] = clone($expected[3]);
347 374 $expected[3]->cargaHoraria = 60;
348 375  
349   - $this->assertEquals($expected, $disciplinas);
  376 + $this->assertEquals(
  377 + $expected, $disciplinas,
  378 + '::getComponentesPorMatricula() retorna um array de ComponenteCurricular_Model_Componente para uma matrícula.'
  379 + );
350 380 }
351 381  
352 382 /**
353   - * @depends App_Model_IedFinderTest::testInstanciaRegraDeAvaliacaoPorMatricula
  383 + * @depends App_Model_IedFinderTest::testGetRegraAvaliacaoPorMatricula
354 384 */
355   - public function testModulosDeUmCursoPadraoAnoEscolar()
  385 + public function testGetQuantidadeDeModulosMatricula()
356 386 {
357 387 $returnEscolaAno = array(
358 388 array('ref_cod_escola' => 1, 'ano' => 2009, 'andamento' => 1, 'ativo' => 1)
... ... @@ -408,13 +438,16 @@ class App_Model_IedFinderTest extends UnitBaseTest
408 438  
409 439 $modulos = App_Model_IedFinder::getQuantidadeDeModulosMatricula(1);
410 440  
411   - $this->assertEquals(4, $modulos);
  441 + $this->assertEquals(
  442 + 4, $modulos,
  443 + '::getQuantidadeDeModulosMatricula() retorna a quantidade de módulos para uma matrícula de ano escolar padrão (curso padrão ano escolar).'
  444 + );
412 445 }
413 446  
414 447 /**
415   - * @depends App_Model_IedFinderTest::testInstanciaRegraDeAvaliacaoPorMatricula
  448 + * @depends App_Model_IedFinderTest::testGetRegraAvaliacaoPorMatricula
416 449 */
417   - public function testEtapasDeUmCursoAnoNaoPadrao()
  450 + public function testGetQuantidadeDeModulosMatriculaCursoAnoNaoPadrao()
418 451 {
419 452 // Curso não padrão
420 453 $returnCurso = array('cod_curso' => 1, 'carga_horaria' => 800, 'hora_falta' => (50 / 60), 'padrao_ano_escolar' => 0);
... ... @@ -444,6 +477,9 @@ class App_Model_IedFinderTest extends UnitBaseTest
444 477  
445 478 $etapas = App_Model_IedFinder::getQuantidadeDeModulosMatricula(1);
446 479  
447   - $this->assertEquals(4, $etapas);
  480 + $this->assertEquals(
  481 + 4, $etapas,
  482 + '::getQuantidadeDeModulosMatricula() retorna a quantidade de módulos para uma matrícula de um ano escolar não padrão (curso não padrão).'
  483 + );
448 484 }
449 485 }
450 486 \ No newline at end of file
... ...