/**
* 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.component.parameter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.squale.squalecommon.SqualeTestCase;
import org.squale.squalecommon.daolayer.component.ProjectDAOImpl;
import org.squale.squalecommon.daolayer.component.ProjectParameterDAOImpl;
import org.squale.squalecommon.enterpriselayer.businessobject.component.ApplicationBO;
import org.squale.squalecommon.enterpriselayer.businessobject.component.ProjectBO;
import org.squale.squalecommon.enterpriselayer.businessobject.component.parameters.ListParameterBO;
import org.squale.squalecommon.enterpriselayer.businessobject.component.parameters.MapParameterBO;
import org.squale.squalecommon.enterpriselayer.businessobject.component.parameters.ProjectParameterBO;
import org.squale.squalecommon.enterpriselayer.businessobject.component.parameters.StringParameterBO;
/**
*/
public class ProjectParameterDAOImplTest
extends SqualeTestCase
{
/**
* Teste l'insertion dans la base
*/
public void testInsert()
{
ProjectParameterDAOImpl ProjectParameterDAO = null;
ProjectParameterBO projectParamBO = null;
try
{
ProjectParameterDAO = ProjectParameterDAOImpl.getInstance();
MapParameterBO mapParams = new MapParameterBO();
StringParameterBO strParam = new StringParameterBO();
strParam.setValue( "value" );
ProjectParameterDAO.create( getSession(), strParam );
assertEquals( 1, ProjectParameterDAO.count( getSession() ).intValue() );
}
catch ( Exception e )
{
e.printStackTrace();
fail( "unexpected exception" );
}
}
/**
* test basic pour la cr�ation d'objet
*/
public void testCreate()
{
try
{
ProjectParameterDAOImpl dao = ProjectParameterDAOImpl.getInstance();
StringParameterBO str = new StringParameterBO();
str.setValue( "VALUE" );
dao.create( getSession(), str );
ListParameterBO lst = new ListParameterBO();
lst.getParameters().add( str );
dao.create( getSession(), lst );
lst = new ListParameterBO();
lst.getParameters().add( new StringParameterBO() );
dao.create( getSession(), lst );
MapParameterBO mapBO = new MapParameterBO();
mapBO.getParameters().put( "Test map", lst );
dao.create( getSession(), mapBO );
}
catch ( Exception e )
{
e.printStackTrace();
fail( "unexpected exception" );
}
}
/**
* Teste en profondeur la r�cup�ration correcte des param�tres d'un projectBO.
*/
public void testRetrieve()
{
try
{
// Remplissage de la structure
MapParameterBO mapParamBO = new MapParameterBO();
ListParameterBO listParamBO1 = new ListParameterBO();
ListParameterBO listParamBO2 = new ListParameterBO();
ArrayList liste1 = new ArrayList( 0 );
ArrayList liste2 = new ArrayList( 0 );
StringParameterBO stringParamBO1 = new StringParameterBO();
StringParameterBO stringParamBO2 = new StringParameterBO();
StringParameterBO stringParamBO3 = new StringParameterBO();
StringParameterBO stringParamBO4 = new StringParameterBO();
StringParameterBO stringParamBO5 = new StringParameterBO();
StringParameterBO stringParamBO6 = new StringParameterBO();
stringParamBO1.setValue( " BO1" );
stringParamBO2.setValue( " BO2" );
stringParamBO3.setValue( " BO3" );
stringParamBO4.setValue( " BO4" );
stringParamBO5.setValue( " BO5" );
stringParamBO6.setValue( " BO6" );
liste1.add( stringParamBO2 );
liste1.add( stringParamBO5 );
liste2.add( stringParamBO4 );
liste2.add( stringParamBO3 );
listParamBO1.setParameters( liste1 );
listParamBO2.setParameters( liste2 );
Map m = new HashMap();
m.put( "liste1", listParamBO1 );
m.put( "string1", stringParamBO1 );
m.put( "liste2", listParamBO2 );
m.put( "string2", stringParamBO2 );
mapParamBO.setParameters( m );
// Fin de remplissage de la structure
// Enregistrement du ProjectBO dans la base
ProjectDAOImpl projectDAO = ProjectDAOImpl.getInstance();
ApplicationBO appBO = getComponentFactory().createApplication( getSession() );
ProjectBO projectBO =
getComponentFactory().createProject( getSession(), appBO,
getComponentFactory().createGrid( getSession() ) );
ProjectParameterDAOImpl.getInstance().create( getSession(), mapParamBO );
projectBO.setParameters( mapParamBO );
ProjectDAOImpl.getInstance().save( getSession(), projectBO );
// R�cup�ration du projectBO depuis la base
ProjectBO projectBO2 = (ProjectBO) projectDAO.load( getSession(), new Long( projectBO.getId() ) );
projectDAO.refresh( getSession(), projectBO );
// test en profondeur sur l'ensemble de l'objet.
assertEquals( projectBO, projectBO2 );
assertEquals( projectBO.getParameters(), projectBO2.getParameters() );
assertEquals( projectBO.getParameters().getParameters(), projectBO2.getParameters().getParameters() );
assertEquals( projectBO.getParameters().getParameters().get( "liste1" ),
projectBO2.getParameters().getParameters().get( "liste1" ) );
assertEquals( projectBO.getParameters().getParameters().get( "liste2" ),
projectBO2.getParameters().getParameters().get( "liste2" ) );
assertEquals( projectBO.getParameters().getParameters().get( "string1" ),
projectBO2.getParameters().getParameters().get( "string1" ) );
assertEquals( projectBO.getParameters().getParameters().get( "string2" ),
projectBO2.getParameters().getParameters().get( "string2" ) );
assertEquals(
( (ListParameterBO) projectBO.getParameters().getParameters().get( "liste1" ) ).getParameters().get(
0 ),
( (ListParameterBO) projectBO2.getParameters().getParameters().get( "liste1" ) ).getParameters().get(
0 ) );
assertEquals(
( (ListParameterBO) projectBO.getParameters().getParameters().get( "liste2" ) ).getParameters().get(
0 ),
( (ListParameterBO) projectBO2.getParameters().getParameters().get( "liste2" ) ).getParameters().get(
0 ) );
assertEquals(
( (ListParameterBO) projectBO.getParameters().getParameters().get( "liste1" ) ).getParameters().get(
1 ),
( (ListParameterBO) projectBO2.getParameters().getParameters().get( "liste1" ) ).getParameters().get(
1 ) );
assertEquals(
( (ListParameterBO) projectBO.getParameters().getParameters().get( "liste2" ) ).getParameters().get(
1 ),
( (ListParameterBO) projectBO2.getParameters().getParameters().get( "liste2" ) ).getParameters().get(
1 ) );
assertEquals(
( (StringParameterBO) ( (ListParameterBO) projectBO.getParameters().getParameters().get(
"liste1" ) ).getParameters().get(
0 ) ).getValue(),
( (StringParameterBO) ( (ListParameterBO) projectBO2.getParameters().getParameters().get(
"liste1" ) ).getParameters().get(
0 ) ).getValue() );
assertEquals(
( (StringParameterBO) ( (ListParameterBO) projectBO.getParameters().getParameters().get(
"liste1" ) ).getParameters().get(
1 ) ).getValue(),
( (StringParameterBO) ( (ListParameterBO) projectBO2.getParameters().getParameters().get(
"liste1" ) ).getParameters().get(
1 ) ).getValue() );
assertEquals(
( (StringParameterBO) ( (ListParameterBO) projectBO.getParameters().getParameters().get(
"liste2" ) ).getParameters().get(
0 ) ).getValue(),
( (StringParameterBO) ( (ListParameterBO) projectBO2.getParameters().getParameters().get(
"liste2" ) ).getParameters().get(
0 ) ).getValue() );
assertEquals(
( (StringParameterBO) ( (ListParameterBO) projectBO.getParameters().getParameters().get(
"liste2" ) ).getParameters().get(
1 ) ).getValue(),
( (StringParameterBO) ( (ListParameterBO) projectBO2.getParameters().getParameters().get(
"liste2" ) ).getParameters().get(
1 ) ).getValue() );
}
catch ( Exception e )
{
e.printStackTrace();
fail( "unexpected exception" );
}
}
}