/*
*
* Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute
- Graduate School and Research in Engineering.
* See the file license.txt for copyright permission.
*
*/
package plpermod;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import modelo.CadPlan;
import modelo.Modelo;
import modelo.PerioPM;
import modelo.PlPerMod;
import modelo.PlanoModelo;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import service.PlPerModAppService;
import service.controleTransacao.FabricaDeAppService;
import util.JPAUtil;
import DAO.CadPlanDAO;
import DAO.ModeloDAO;
import DAO.PerioPMDAO;
import DAO.PlPerModDAO;
import DAO.PlanoModeloDAO;
import DAO.Impl.CadPlanDAOImpl;
import DAO.Impl.ModeloDAOImpl;
import DAO.Impl.PerioPMDAOImpl;
import DAO.Impl.PlPerModDAOImpl;
import DAO.Impl.PlanoModeloDAOImpl;
import DAO.controle.FabricaDeDao;
import DAO.exception.ObjetoNaoEncontradoException;
public class TestePlPerMod {
private static PerioPMDAO perioPMDAO;
private static CadPlanDAO cadPlanDAO;
private static ModeloDAO modeloDAO;
private static PlanoModeloDAO planoModeloDAO;
private static PlPerModDAO plPerModDAO;
private static PlPerModAppService plPerModService;
@BeforeClass
public void setupClass(){
try {
System.out.println("-----------------------------> Startando a JPA...");
JPAUtil.JPAstartUp();
System.out.println("-----------------------------> JPA startada com sucesso!");
perioPMDAO = FabricaDeDao.getDao(PerioPMDAOImpl.class);
cadPlanDAO = FabricaDeDao.getDao(CadPlanDAOImpl.class);
modeloDAO = FabricaDeDao.getDao(ModeloDAOImpl.class);
planoModeloDAO = FabricaDeDao.getDao(PlanoModeloDAOImpl.class);
plPerModDAO = FabricaDeDao.getDao(PlPerModDAOImpl.class);
plPerModService = FabricaDeAppService.getAppService(PlPerModAppService.class);
} catch (Exception e) {
}
}
//@Test
public void recuperaPlPerModsDePlanoModelo() {
CadPlan cadPlan1 = null;
try {
cadPlan1 = cadPlanDAO.recuperaCadPlanComPlanosModelo("c");
} catch (ObjetoNaoEncontradoException e) {
}
Set<PlanoModelo> planosModeloSet = new TreeSet<PlanoModelo>();
Iterator it = cadPlan1.getPlanosModelo().iterator();
while (it.hasNext()){
PlanoModelo pm = (PlanoModelo) it.next();
planosModeloSet.add(pm);
}
System.out.println("Tamanho do Set = " + planosModeloSet.size());
}
//@Test
public void compararPlPerMods(){
PerioPM periodo1 = null;
PerioPM periodo2 = null;
PerioPM periodo3 = null;
CadPlan cadPlan1 = null;
try {
periodo1 = perioPMDAO.recuperaPerioPMPorPeriodoPM(1);
periodo2 = perioPMDAO.recuperaPerioPMPorPeriodoPM(2);
periodo2 = perioPMDAO.recuperaPerioPMPorPeriodoPM(3);
cadPlan1 = cadPlanDAO.recuperaCadPlanComPlanosModelo("2");
} catch (ObjetoNaoEncontradoException e) {
}
List<PlanoModelo> planosModeloList = new ArrayList<PlanoModelo>();
Set<PlanoModelo> planosModeloSet = new TreeSet<PlanoModelo>();
PlanoModelo planoModelo2 = new PlanoModelo();
Iterator it = cadPlan1.getPlanosModelo().iterator();
while (it.hasNext()){
PlanoModelo pm = (PlanoModelo) it.next();
planosModeloSet.add(pm);
}
for (PlanoModelo planoModelo : planosModeloSet) {
System.out.println("PlanoModelo.getModelo() = " + planoModelo.getModelo());
}
System.out.println("Modelo do PlanoModelo2 = " + planoModelo2.getModelo());
PlPerMod plPerMod1 = new PlPerMod();
plPerMod1.setPlanoModelo(planoModelo2);
plPerMod1.setPerioPM(periodo1);
PlPerMod plPerMod2 = new PlPerMod();
plPerMod2.setPlanoModelo(planoModelo2);
plPerMod2.setPerioPM(periodo2);
PlPerMod plPerMod3 = new PlPerMod();
plPerMod2.setPlanoModelo(planoModelo2);
plPerMod2.setPerioPM(periodo3);
System.out.println("PlPerMod2 = PlPerMod3 ??? ---> " + plPerMod1.equals(plPerMod2) + "!");
Set<PlPerMod> plPerMods = new TreeSet<PlPerMod>();
System.out.println("Adicionou PlPerMod3 ? ->" + plPerMods.add(plPerMod3));
System.out.println("Adicionou PlPerMod1 ? ->" + plPerMods.add(plPerMod1));
System.out.println("Adicionou PlPerMod2 ? ->" + plPerMods.add(plPerMod2));
System.out.println("");
for (PlPerMod plPerMod : plPerMods) {
System.out.println("PLPERMOD --> PlanoModelo = " + plPerMod.getPlanoModelo().getId());
System.out.println("PLPERMOD --> PerioPM = " + plPerMod.getPerioPM().getId());
System.out.println("");
}
}
public void testarRetornoPorParametro(){
ArrayList<Boolean> bools = new ArrayList<Boolean>(4);
// bools.add(false);
// bools.add(false);
// bools.add(false);
// bools.add(false);
this.metodoQueDeveRetornarPorParametro(bools);
for(Boolean b: bools){
System.out.println(">>>"+b);
}
}
public void metodoQueDeveRetornarPorParametro(ArrayList<Boolean> booleanos){
booleanos.set(2,true);
}
@Test
public void testarRecuperaIntervaloDePlPerModPorPlanoModeloEIntervaloDePerioPM(){
PlanoModelo planoModelo=null;
try {
planoModelo = (PlanoModelo) cadPlanDAO.recuperaCadPlanApenasComPlanosModelo("1").getPlanosModelo().iterator().next();
} catch (ObjetoNaoEncontradoException e) {
e.printStackTrace();
}
List<PlPerMod> intervalo = plPerModDAO.recuperaIntervaloDePlPerModPorPlanoModeloEIntervaloDePerioPM
(planoModelo, 2, 4);
for(PlPerMod plPerMod: intervalo){
System.out.println("plpermod="+plPerMod.getPerioPM());
}
}
}