@Test public void planejarProximoPeriodoDificil() { for (Disciplina disciplina : grade.getTodasDisciplinas()) { disciplina.addDificuldade(usuario, 3); } sistema.getDisciplinaPorNome("Cálculo Diferencial e Integral III").addDificuldade(usuario, 4); sistema.getDisciplinaPorNome("Compiladores").addDificuldade(usuario, 4); sistema.getDisciplinaPorNome("Inglês").addDificuldade(usuario, 5); sistema.getDisciplinaPorNome("Análise e Técnica de Algoritmos").addDificuldade(usuario, 4); usuario.getPlano().setPlanejadorProximoPeriodo(new PlanejadorDePeriodoDificil()); usuario.getPlano().setPeriodoAtual(3); usuario.getPlano().planejaProximoPeriodo(); assertTrue( usuario .getPlano() .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Cálculo Diferencial e Integral III"))); assertTrue( usuario .getPlano() .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Compiladores"))); assertTrue( usuario.getPlano().getDisciplinasAlocadas().contains(grade.getDisciplinaPorNome("Inglês"))); assertTrue( usuario .getPlano() .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Análise e Técnica de Algoritmos"))); }
@Test public void disciplinasOfertadas() { List<Disciplina> naoAlocadas = new ArrayList<Disciplina>(); naoAlocadas.add(grade.getDisciplinaPorNome("Inglês")); naoAlocadas.add(grade.getDisciplinaPorNome("Engenharia de Software II")); assertTrue(plano1.getDisciplinasOfertadas(grade).containsAll(naoAlocadas)); }
@Test public void comparaDeferencasEntrePlanos() { Plano plano2 = new Plano(); plano2.iniciaPlanoSugerido(grade); assertEquals(0, plano1.getDiferencaDePlanos(plano2)); plano2.removeDisciplina(grade.getDisciplinaPorNome("Projeto em Computação I")); assertEquals(2, plano1.getDiferencaDePlanos(plano2)); plano2.addDisciplina(grade.getDisciplinaPorNome("Projeto em Computação I"), 6); assertEquals(1, plano1.getDiferencaDePlanos(plano2)); plano2.addDisciplina(grade.getDisciplinaPorNome("Projeto em Computação II"), 7); plano2.addDisciplina(grade.getDisciplinaPorNome("Inglês"), 7); assertEquals(1, plano1.getDiferencaDePlanos(plano2)); }
@Test public void mudarDisciplinaDePeriodo() { assertTrue( plano1 .getPeriodos() .get(6) .contemDisciplina(grade.getDisciplinaPorNome("Métodos e Software Numéricos"))); plano1.addDisciplina(grade.getDisciplinaPorNome("Métodos e Software Numéricos"), 7); assertFalse( plano1 .getPeriodos() .get(6) .contemDisciplina(grade.getDisciplinaPorNome("Métodos e Software Numéricos"))); assertTrue( plano1 .getPeriodos() .get(7) .contemDisciplina(grade.getDisciplinaPorNome("Métodos e Software Numéricos"))); }
@Test public void planejarProximoPeriodoFacil() { for (Disciplina disciplina : grade.getTodasDisciplinas()) { disciplina.addDificuldade(usuario, 3); } grade.getDisciplinaPorNome("Economia").addDificuldade(usuario, 2); grade.getDisciplinaPorNome("Administração").addDificuldade(usuario, 2); grade.getDisciplinaPorNome("Informática e Sociedade").addDificuldade(usuario, 2); grade.getDisciplinaPorNome("Direito e Cidadania").addDificuldade(usuario, 2); usuario.getPlano().setPlanejadorProximoPeriodo(new PlanejadorDePeriodoFacil()); usuario.getPlano().setPeriodoAtual(3); usuario.getPlano().planejaProximoPeriodo(); assertTrue( usuario .getPlano() .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Economia"))); assertTrue( usuario .getPlano() .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Administração"))); assertTrue( usuario .getPlano() .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Informática e Sociedade"))); assertTrue( usuario .getPlano() .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Direito e Cidadania"))); }
@Test public void definirPeriodoAtual() { plano1.setPeriodoAtual(3); plano1.addDisciplina(grade.getDisciplinaPorNome("Cálculo Diferencial e Integral III"), 2); assertFalse( plano1 .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Cálculo Diferencial e Integral III"))); plano1.addDisciplina(grade.getDisciplinaPorNome("Cálculo Diferencial e Integral III"), 3); assertFalse( plano1 .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Cálculo Diferencial e Integral III"))); plano1.removeDisciplina(grade.getDisciplinaPorNome("Projeto em Computação II")); plano1.addDisciplina(grade.getDisciplinaPorNome("Cálculo Diferencial e Integral III"), 6); plano1.addDisciplina(grade.getDisciplinaPorNome("Economia"), 6); plano1.addDisciplina(grade.getDisciplinaPorNome("Administração"), 6); plano1.addDisciplina(grade.getDisciplinaPorNome("Engenharia de Software II"), 6); plano1.addDisciplina(grade.getDisciplinaPorNome("Inglês"), 6); assertTrue( plano1 .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Cálculo Diferencial e Integral III"))); assertTrue(plano1.getDisciplinasAlocadas().contains(grade.getDisciplinaPorNome("Economia"))); assertTrue( plano1.getDisciplinasAlocadas().contains(grade.getDisciplinaPorNome("Administração"))); assertTrue( plano1 .getDisciplinasAlocadas() .contains(grade.getDisciplinaPorNome("Engenharia de Software II"))); assertTrue(plano1.getDisciplinasAlocadas().contains(grade.getDisciplinaPorNome("Inglês"))); assertEquals(33, plano1.getPeriodos().get(6).getTotalDeCreditos()); }