/** * Copyright (C) 2008-2010, Squale Project - http://www.squale.org * * This file is part of Squale. * * Squale is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of the * License, or any later version. * * Squale is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Squale. If not, see <http://www.gnu.org/licenses/>. */ package org.squale.squalecommon.daolayer.rule; import org.squale.jraf.helper.PersistenceHelper; import org.squale.jraf.provider.persistence.hibernate.AbstractDAOImpl; import org.squale.jraf.provider.persistence.hibernate.facade.FacadeHelper; import org.squale.jraf.spi.persistence.IPersistenceProvider; import org.squale.jraf.spi.persistence.ISession; import org.squale.squalecommon.SqualeTestCase; import org.squale.squalecommon.enterpriselayer.businessobject.rule.AbstractFormulaBO; import org.squale.squalecommon.enterpriselayer.businessobject.rule.CriteriumRuleBO; import org.squale.squalecommon.enterpriselayer.businessobject.rule.FactorRuleBO; import org.squale.squalecommon.enterpriselayer.businessobject.rule.PracticeRuleBO; import org.squale.squalecommon.enterpriselayer.businessobject.rule.SimpleFormulaBO; /** * Tests de la couche DAO des r�gles qualit� */ public class QualityRuleDAOImplTest extends SqualeTestCase { /** * Test du findAll */ public void testFindAll() { QualityRuleDAOImpl daoImpl = QualityRuleDAOImpl.getInstance(); final IPersistenceProvider PERSISTENTPROVIDER = PersistenceHelper.getPersistenceProvider(); ISession session; try { session = PERSISTENTPROVIDER.getSession(); assertEquals( 0, daoImpl.findAll( session ).size() ); FacadeHelper.closeSession( session, "" ); } catch ( Exception e ) { e.printStackTrace(); fail( "Exception inattendue" ); } } /** * Test du delete en cascade On v�rifie qu'un facteur lorsqu'il est d�truit provoque la destruction des donn�es * rattach�es */ public void testDeleteCascade() { QualityRuleDAOImpl ruleDaoImpl = QualityRuleDAOImpl.getInstance(); AbstractDAOImpl formulaDaoImpl = new AbstractDAOImpl() { { initialize( AbstractFormulaBO.class ); } }; final IPersistenceProvider PERSISTENTPROVIDER = PersistenceHelper.getPersistenceProvider(); ISession session; try { session = PERSISTENTPROVIDER.getSession(); assertEquals( "condition initiale", 0, ruleDaoImpl.findAll( session ).size() ); assertEquals( "condition initiale", 0, formulaDaoImpl.findAll( session ).size() ); // On cree un facteur/critere/pratique/formule que l'on d�truit // pour v�rifier le delete cascade int nb = 0; SimpleFormulaBO formula = new SimpleFormulaBO(); PracticeRuleBO practice = new PracticeRuleBO(); practice.setFormula( formula ); ruleDaoImpl.create( session, practice ); nb++; // Objet cr�� CriteriumRuleBO criterium = new CriteriumRuleBO(); criterium.addPractice( practice, new Float( 1 ) ); ruleDaoImpl.create( session, criterium ); nb++; // Objet cr�� FactorRuleBO factor = new FactorRuleBO(); factor.addCriterium( criterium, new Float( 1 ) ); ruleDaoImpl.create( session, factor ); nb++; // Objet cr�� assertEquals( nb, ruleDaoImpl.count( session ).intValue() ); ruleDaoImpl.remove( session, factor ); FacadeHelper.closeSession( session, "" ); } catch ( Exception e ) { e.printStackTrace(); fail( "Exception inattendue" ); } } }