[Suiviobsmer-commits] r386 - in trunk: wao-business wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/io wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources wao-business/src/main/resources/oldmappings wao-business/src/main/resources/oldmappings/WaoModel wao-business/src/main/resources/oldmappings/WaoModel/1.1 wao-business/src/main/resources/oldmappin
Author: fdesbois Date: 2010-03-25 08:57:20 +0000 (Thu, 25 Mar 2010) New Revision: 386 Added: trunk/wao-business/src/main/java/fr/ifremer/wao/PgMigrationCallback.java trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java trunk/wao-business/src/main/resources/oldmappings/ trunk/wao-business/src/main/resources/oldmappings/WaoModel/ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityCalendarImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityMonthImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityProfessionImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityZoneImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/BoatImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/BoatInfosImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/CompanyImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ContactImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ElligibleBoatImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/FishingZoneImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/NewsImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ProfessionImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleMonthImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ShipOwnerImpl.hbm.xml trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/WaoUserImpl.hbm.xml trunk/wao-business/src/test/java/fr/ifremer/wao/service/ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ActivityCalendarImportTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialImplTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java Removed: trunk/wao-business/src/test/java/fr/ifremer/wao/services/ActivityCalendarImportTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceBoatImplTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceReferentialImplTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSamplingImplTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSynthesisImplTest.java Modified: trunk/wao-business/pom.xml trunk/wao-business/src/main/java/fr/ifremer/wao/WaoGlobal.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoRunnerImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/io/SamplingExport.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java Log: Evo #2063/1980 : - Update model to add readOnly and userRole (suppression of boolean admin) - Add migration callback for 1.1 - Add UserRole enum Modified: trunk/wao-business/pom.xml =================================================================== --- trunk/wao-business/pom.xml 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/pom.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -140,7 +140,7 @@ <goal>smart-generate</goal> </goals> </execution> -<!-- <execution> + <execution> <phase>generate-sources</phase> <id>copy-version-files</id> <configuration> @@ -153,7 +153,7 @@ <goals> <goal>copyVersionFiles</goal> </goals> - </execution>--> + </execution> </executions> </plugin> </plugins> Added: trunk/wao-business/src/main/java/fr/ifremer/wao/PgMigrationCallback.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/PgMigrationCallback.java (rev 0) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PgMigrationCallback.java 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,30 @@ + +package fr.ifremer.wao; + +import java.util.List; + +/** + * PgMigrationCallback + * + * Created: 24 mars 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class PgMigrationCallback extends WaoMigrationCallBack { + + @Override + protected void createUserRoleColumn_1_1(List<String> queries) { + // Evo #2063 + queries.add("ALTER TABLE WaoUser ADD role SMALLINT;"); + queries.add("UPDATE WaoUser SET role = 0 WHERE admin = TRUE;"); + queries.add("UPDATE WaoUser SET role = 1 WHERE admin = FALSE;"); + queries.add("ALTER TABLE WaoUser DROP COLUMN admin;"); + // Evo #1980 + queries.add("ALTER TABLE WaoUser ADD readOnly BOOLEAN;"); + } + +} Property changes on: trunk/wao-business/src/main/java/fr/ifremer/wao/PgMigrationCallback.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoGlobal.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoGlobal.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoGlobal.java 2010-03-25 08:57:20 UTC (rev 386) @@ -21,6 +21,7 @@ package fr.ifremer.wao; +import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.CompanyDAO; import fr.ifremer.wao.entity.WaoUser; @@ -75,7 +76,7 @@ String password = WaoContext.encodeString("password"); WaoUser user = dao.create( - WaoUser.ADMIN, true, + WaoUser.ROLE, UserRole.ADMIN.ordinal(), WaoUser.ACTIVE, true, WaoUser.LOGIN, "admin", WaoUser.PASSWORD, password, Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-03-25 08:57:20 UTC (rev 386) @@ -20,8 +20,7 @@ */ package fr.ifremer.wao; -import fr.ifremer.wao.entity.SampleRow; -import fr.ifremer.wao.entity.SampleRowDAO; +import java.util.ArrayList; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.TopiaException; @@ -31,28 +30,31 @@ import java.util.List; -public class WaoMigrationCallBack extends ManualMigrationCallback { +public abstract class WaoMigrationCallBack extends ManualMigrationCallback { /** * Logger */ private static final Log log = LogFactory.getLog(WaoMigrationCallBack.class); - public void migrateTo_0_4(TopiaContextImplementor tx, + public void migrateTo_1_1(TopiaContextImplementor tx, boolean showSql, boolean showProgression) throws TopiaException { if (log.isInfoEnabled()) { - log.info("Migrate to version 0.4"); + log.info("Migrate to version 1.1"); } - SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(tx); - for (SampleRow row : dao.findAll()) { - String newCode = WaoContext.prepareSampleRowCode(row.getCode()); - row.setCode(newCode); - } + List<String> queries = new ArrayList<String>(); + + createUserRoleColumn_1_1(queries); + + String[] strings = queries.toArray(new String[queries.size()]); + + executeSQL(tx, showSql, showProgression, strings); } + protected abstract void createUserRoleColumn_1_1(List<String> queries); @Override public boolean askUser(Version dbVersion, Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoRunnerImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoRunnerImpl.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoRunnerImpl.java 2010-03-25 08:57:20 UTC (rev 386) @@ -28,6 +28,8 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.migration.ManualMigrationEngine; import org.nuiton.util.ApplicationConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * StartWao @@ -44,6 +46,9 @@ private ApplicationConfig configuration; + private static final Logger logger = + LoggerFactory.getLogger(WaoRunnerImpl.class); + public WaoRunnerImpl() { } @@ -57,13 +62,38 @@ WaoModelDAOHelper.getImplementationClassesAsString()); // migration configuration - // Temporarly unused before 1.0 version -// configuration.setOption(ManualMigrationEngine.MIGRATION_APPLICATION_VERSION, WaoModelDAOHelper.getModelVersion()); -// configuration.setOption(ManualMigrationEngine.MIGRATION_MAPPING_DIRECTORY, "oldmappings"); -// configuration.setOption(ManualMigrationEngine.MIGRATION_MODEL_NAME, "WaoModel"); -// configuration.setOption("topia.service.migration", ManualMigrationEngine.class.getName()); -// configuration.setOption(ManualMigrationEngine.MIGRATION_CALLBACK, WaoMigrationCallBack.class.getName()); + String callBackName = null; + String dialect = configuration.getOption("hibernate.dialect"); + if (dialect.contains("PostgreSQL")) { + callBackName = PgMigrationCallback.class.getName(); + } else if (dialect.contains("H2")) { + // Unsupported yet + callBackName = null; + } + if (callBackName != null) { + configuration.setOption( + ManualMigrationEngine.MIGRATION_APPLICATION_VERSION, + WaoModelDAOHelper.getModelVersion()); + configuration.setOption( + ManualMigrationEngine.MIGRATION_MAPPING_DIRECTORY, + "oldmappings"); + configuration.setOption( + ManualMigrationEngine.MIGRATION_MODEL_NAME, + WaoModelDAOHelper.getModelName()); + configuration.setOption( + "topia.service.migration", + ManualMigrationEngine.class.getName()); + configuration.setOption( + ManualMigrationEngine.MIGRATION_CALLBACK, + callBackName); + } else { + if (logger.isWarnEnabled()) { + logger.warn("Database with dialect " + dialect + " is not" + + "supported for migration from 1.0 version"); + } + } + configuration.printConfig(); I18n.init(Locale.FRANCE); @@ -72,7 +102,8 @@ // Create the default admin in database WaoGlobal.createDefaultAdmin(); } catch (Exception eee) { - WaoContext.serviceException(null, "Error during loadConfiguration from " + + WaoContext.serviceException(null, + "Error during loadConfiguration from " + "'Wao.properties' file", eee); } } Added: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java (rev 0) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,41 @@ + +package fr.ifremer.wao.bean; + +/** + * UserRole + * + * Created: 24 mars 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public enum UserRole { + /** Admin role **/ + ADMIN("Administrateur"), + /** User/observer role **/ + OBSERVER("Observateur"), + /** Coordinator role **/ + COORDINATOR("Coordinateur"); + + private String libelle; + + UserRole(String libelle) { + this.libelle = libelle; + } + + public String getLibelle() { + return libelle; + } + + public static UserRole valueOf(int ordinal) { + for (UserRole curr : UserRole.values()) { + if (curr.ordinal() == ordinal) { + return curr; + } + } + return null; + } +} Property changes on: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/UserRole.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java 2010-03-25 08:57:20 UTC (rev 386) @@ -22,6 +22,7 @@ package fr.ifremer.wao.entity; import fr.ifremer.wao.WaoContext; +import fr.ifremer.wao.bean.UserRole; import java.io.Serializable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -76,4 +77,14 @@ return this.passwordChanged; } + @Override + public boolean isAdmin() { + return getUserRole().equals(UserRole.ADMIN); + } + + @Override + public UserRole getUserRole() { + return UserRole.valueOf(getRole()); + } + } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/SamplingExport.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/io/SamplingExport.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/SamplingExport.java 2010-03-25 08:57:20 UTC (rev 386) @@ -82,7 +82,7 @@ SamplingHeader header = WaoCsvHeader.getHeaderForSamplingCsv(index, nbHeadersForMonths); // for an admin, same text as in Import (enum name) // for a user, the text is complete - result = user.getAdmin() ? header.name() : header.toString(); + result = user.isAdmin() ? header.name() : header.toString(); } return result; } @@ -110,7 +110,7 @@ String real = String.valueOf(sampleMonth.getRealTidesValue()); // The admin as only expected value (to be the same as // in import) - if (user.getAdmin()) { + if (user.isAdmin()) { record(index, expected); //record[index] = expected; // The user as both expected and real values } else { Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2010-03-25 08:57:20 UTC (rev 386) @@ -350,7 +350,8 @@ BoatDAO dao = WaoModelDAOHelper.getBoatDAO(transaction); - results = (List<String>)dao.createQuery().addDistinct().setSelect(Boat.NAME).add(Boat.NAME, Op.LIKE, input + "%").execute(); + results = dao.createQuery().addDistinct().setSelect(Boat.NAME). + add(Boat.NAME, Op.LIKE, input + "%").execute(); //transaction.closeContext(); } catch (Exception eee) { @@ -618,7 +619,7 @@ } // Log ActivityCalendar access only for non admin user - if (!user.getAdmin()) { + if (!user.isAdmin()) { Company company = user.getCompany(); WaoContext.addActivityCalendarAccessLog( "Calendrier " + result.getYear() + " du navire " + Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2010-03-25 08:57:20 UTC (rev 386) @@ -367,7 +367,7 @@ if (observer != null) { Company company = user.getCompany(); // For an admin, get the company from database - if (user.getAdmin()) { + if (user.isAdmin()) { // FIXME-FD20100104 findContains not optimized in TopiaDAOImpl company = companyDAO.findContainsWaoUser(observer); // For a user, check if the observer as the same company as the current user @@ -462,7 +462,7 @@ // Import validations only for superadmin and a new contact : useful for archives // FIXME : can update validation when the user is the super admin - if (newContact && user.getAdmin() && user.getLogin().equals("admin")) { + if (newContact && user.isAdmin() && user.getLogin().equals("admin")) { if (log.isDebugEnabled()) { log.debug("SuperAdmin import :: validations"); } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-03-25 08:57:20 UTC (rev 386) @@ -552,7 +552,7 @@ SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction); TopiaQuery query = dao.createQuery("S"); - if (!user.getAdmin()) { + if (!user.isAdmin()) { query.add("S." + SampleRow.COMPANY, user.getCompany()); } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-03-25 08:57:20 UTC (rev 386) @@ -26,6 +26,7 @@ import fr.ifremer.wao.WaoException; import fr.ifremer.wao.WaoModelDAOHelper; import fr.ifremer.wao.WaoContext; +import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.CompanyDAO; import fr.ifremer.wao.entity.Contact; @@ -227,11 +228,11 @@ try { transaction = rootContext.beginTransaction(); - String userType = user.getAdmin() ? "administrateur" : "observateur"; + String userType = user.isAdmin() ? "administrateur" : "observateur"; String msgBegin = "L'" + userType + " '" + user.getLogin() + "' ne peut pas être supprimé"; String msgEnd = "Vous pouvez cependant le désactiver pour qu'il ne puisse plus se connecter."; - if (user.getAdmin()) { + if (user.isAdmin()) { SampleRowLogDAO logDAO = WaoModelDAOHelper.getSampleRowLogDAO(transaction); List<SampleRowLog> results = logDAO.findAllByAdmin(user); @@ -320,7 +321,8 @@ transaction = rootContext.beginTransaction(); WaoUserDAO dao = WaoModelDAOHelper.getWaoUserDAO(transaction); - TopiaQuery query = dao.createQuery().add(WaoUser.ADMIN, Boolean.FALSE); + TopiaQuery query = dao.createQuery(). + add(WaoUser.ROLE + " != " + UserRole.ADMIN.ordinal()); if (activeOnly) { query.add(WaoUser.ACTIVE, Boolean.TRUE); Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityCalendarImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityCalendarImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityCalendarImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.ActivityCalendarImpl" table="activityCalendar" node="fr.ifremer.wao.entity.ActivityCalendarImpl" abstract="false" proxy="fr.ifremer.wao.entity.ActivityCalendar" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="year" type="int" access="field" column="year" node="year"/> + <property name="fiability" type="int" access="field" column="fiability" node="fiability"/> + <bag name="activityMonth" inverse="true" order-by="month" lazy="true" cascade="all,delete-orphan" node="activityMonth" embed-xml="false"> + <key column="activityCalendar"/> + <one-to-many class="fr.ifremer.wao.entity.ActivityMonthImpl" node="topiaId" embed-xml="false"/> + </bag> + <many-to-one name="boat" class="fr.ifremer.wao.entity.BoatImpl" column="boat" node="boat/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityMonthImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityMonthImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityMonthImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.ActivityMonthImpl" table="activityMonth" node="fr.ifremer.wao.entity.ActivityMonthImpl" abstract="false" proxy="fr.ifremer.wao.entity.ActivityMonth" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="harbourLibelle" type="text" access="field" column="harbourLibelle" node="harbourLibelle"/> + <property name="active" type="boolean" access="field" column="active" node="active"/> + <property name="nbBoardingPersons" type="java.lang.Integer" access="field" column="nbBoardingPersons" node="nbBoardingPersons"/> + <property name="nbSeaDays" type="java.lang.Integer" access="field" column="nbSeaDays" node="nbSeaDays"/> + <property name="nbFishingDays" type="java.lang.Integer" access="field" column="nbFishingDays" node="nbFishingDays"/> + <property name="month" type="int" access="field" column="month" node="month"/> + <property name="harbourCode" type="text" access="field" column="harbourCode" node="harbourCode"/> + <property name="harbourId" type="int" access="field" column="harbourId" node="harbourId"/> + <bag name="activityProfession" inverse="true" order-by="professionOrder" lazy="true" cascade="all,delete-orphan" node="activityProfession" embed-xml="false"> + <key column="activityMonth"/> + <one-to-many class="fr.ifremer.wao.entity.ActivityProfessionImpl" node="topiaId" embed-xml="false"/> + </bag> + <many-to-one name="activityCalendar" class="fr.ifremer.wao.entity.ActivityCalendarImpl" column="activityCalendar" node="activityCalendar/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityProfessionImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityProfessionImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityProfessionImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.ActivityProfessionImpl" table="activityProfession" node="fr.ifremer.wao.entity.ActivityProfessionImpl" abstract="false" proxy="fr.ifremer.wao.entity.ActivityProfession" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="code" type="text" access="field" column="code" node="code"/> + <property name="libelle" type="text" access="field" column="libelle" node="libelle"/> + <property name="id" type="int" access="field" column="id" node="id"/> + <property name="professionOrder" type="int" access="field" column="professionOrder" node="professionOrder"/> + <many-to-one name="activityMonth" class="fr.ifremer.wao.entity.ActivityMonthImpl" column="activityMonth" node="activityMonth/@topiaId" embed-xml="false"/> + <bag name="activityZone" inverse="true" order-by="zoneId" lazy="true" cascade="all,delete-orphan" node="activityZone" embed-xml="false"> + <key column="activityProfession"/> + <one-to-many class="fr.ifremer.wao.entity.ActivityZoneImpl" node="topiaId" embed-xml="false"/> + </bag> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityZoneImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityZoneImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ActivityZoneImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.ActivityZoneImpl" table="activityZone" node="fr.ifremer.wao.entity.ActivityZoneImpl" abstract="false" proxy="fr.ifremer.wao.entity.ActivityZone" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="zoneCode" type="text" access="field" column="zoneCode" node="zoneCode"/> + <property name="zoneLibelle" type="text" access="field" column="zoneLibelle" node="zoneLibelle"/> + <property name="zoneId" type="int" access="field" column="zoneId" node="zoneId"/> + <property name="gradiantCode" type="int" access="field" column="gradiantCode" node="gradiantCode"/> + <property name="gradiantLibelle" type="text" access="field" column="gradiantLibelle" node="gradiantLibelle"/> + <many-to-one name="activityProfession" class="fr.ifremer.wao.entity.ActivityProfessionImpl" column="activityProfession" node="activityProfession/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/BoatImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/BoatImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/BoatImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.BoatImpl" table="boat" node="fr.ifremer.wao.entity.BoatImpl" abstract="false" proxy="fr.ifremer.wao.entity.Boat" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="immatriculation" type="int" access="field" column="immatriculation" node="immatriculation" index="boat_immatriculation_idx" unique="true"/> + <property name="name" type="text" access="field" column="name" node="name"/> + <property name="districtCode" type="text" access="field" column="districtCode" node="districtCode"/> + <property name="boatLength" type="int" access="field" column="boatLength" node="boatLength"/> + <property name="buildYear" type="int" access="field" column="buildYear" node="buildYear"/> + <property name="active" type="boolean" access="field" column="active" node="active"/> + <many-to-one name="shipOwner" class="fr.ifremer.wao.entity.ShipOwnerImpl" column="shipOwner" lazy="false" node="shipOwner/@topiaId" embed-xml="false"/> + <bag name="companyBoatInfos" inverse="true" lazy="true" cascade="all,delete-orphan" node="companyBoatInfos" embed-xml="false"> + <key column="boat"/> + <one-to-many class="fr.ifremer.wao.entity.BoatInfosImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="activityCalendar" inverse="true" lazy="true" cascade="all,delete-orphan" node="activityCalendar" embed-xml="false"> + <key column="boat"/> + <one-to-many class="fr.ifremer.wao.entity.ActivityCalendarImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="elligibleBoat" inverse="true" order-by="companyActive" lazy="true" node="elligibleBoat" embed-xml="false"> + <key column="boat"/> + <one-to-many class="fr.ifremer.wao.entity.ElligibleBoatImpl" node="topiaId" embed-xml="false"/> + </bag> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/BoatInfosImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/BoatInfosImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/BoatInfosImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.BoatInfosImpl" table="boatInfos" node="fr.ifremer.wao.entity.BoatInfosImpl" abstract="false" proxy="fr.ifremer.wao.entity.BoatInfos" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="contactFirstName" type="text" access="field" column="contactFirstName" node="contactFirstName"/> + <property name="contactLastName" type="text" access="field" column="contactLastName" node="contactLastName"/> + <property name="contactEmail" type="text" access="field" column="contactEmail" node="contactEmail"/> + <property name="contactPhoneNumber" type="text" access="field" column="contactPhoneNumber" node="contactPhoneNumber"/> + <property name="dup" type="java.lang.Integer" access="field" column="dup" node="dup"/> + <property name="comment" type="text" access="field" column="comment" node="comment"/> + <many-to-one name="company" class="fr.ifremer.wao.entity.CompanyImpl" column="company" node="company/@topiaId" embed-xml="false" /> + <many-to-one name="boat" class="fr.ifremer.wao.entity.BoatImpl" column="boat" node="boat/@topiaId" embed-xml="false" /> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/CompanyImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/CompanyImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/CompanyImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.CompanyImpl" table="company" node="fr.ifremer.wao.entity.CompanyImpl" abstract="false" proxy="fr.ifremer.wao.entity.Company" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="name" type="text" access="field" column="name" node="name"/> + <property name="phoneNumber" type="text" access="field" column="phoneNumber" node="phoneNumber"/> + <property name="address1" type="text" access="field" column="address1" node="address1"/> + <property name="address2" type="text" access="field" column="address2" node="address2"/> + <property name="active" type="boolean" access="field" column="active" node="active"/> + <property name="email" type="text" access="field" column="email" node="email"/> + <property name="city" type="text" access="field" column="city" node="city"/> + <property name="postalCode" type="int" access="field" column="postalCode" node="postalCode"/> + <bag name="waoUser" inverse="true" order-by="firstName,lastName" lazy="false" cascade="all,delete-orphan" node="waoUser" embed-xml="false"> + <key column="company"/> + <one-to-many class="fr.ifremer.wao.entity.WaoUserImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="boatBoatInfos" inverse="true" lazy="true" cascade="all,delete-orphan" node="boatBoatInfos" embed-xml="false"> + <key column="company"/> + <one-to-many class="fr.ifremer.wao.entity.BoatInfosImpl" node="topiaId" embed-xml="false"/> + </bag> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ContactImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ContactImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ContactImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.ContactImpl" table="contact" node="fr.ifremer.wao.entity.ContactImpl" abstract="false" proxy="fr.ifremer.wao.entity.Contact" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="tideBeginDate" type="java.util.Date" access="field" column="tideBeginDate" node="tideBeginDate"/> + <property name="tideEndDate" type="java.util.Date" access="field" column="tideEndDate" node="tideEndDate"/> + <property name="nbObservants" type="int" access="field" column="nbObservants" node="nbObservants"/> + <property name="mammalsObservation" type="boolean" access="field" column="mammalsObservation" node="mammalsObservation"/> + <property name="mammalsCapture" type="boolean" access="field" column="mammalsCapture" node="mammalsCapture"/> + <property name="validationProgram" type="java.lang.Boolean" access="field" column="validationProgram" node="validationProgram"/> + <property name="validationCompany" type="java.lang.Boolean" access="field" column="validationCompany" node="validationCompany"/> + <property name="dataInputDate" type="java.util.Date" access="field" column="dataInputDate" node="dataInputDate"/> + <property name="comment" type="text" access="field" column="comment" node="comment"/> + <property name="state" type="text" access="field" column="state" node="state"/> + <property name="tideNbDays" type="int" access="field" column="tideNbDays" node="tideNbDays"/> + <many-to-one name="observer" class="fr.ifremer.wao.entity.WaoUserImpl" column="observer" node="observer/@topiaId" embed-xml="false"/> + <many-to-one name="sampleRow" class="fr.ifremer.wao.entity.SampleRowImpl" column="sampleRow" lazy="false" node="sampleRow/@topiaId" embed-xml="false"/> + <many-to-one name="boat" class="fr.ifremer.wao.entity.BoatImpl" column="boat" lazy="false" node="boat/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ElligibleBoatImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ElligibleBoatImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ElligibleBoatImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.ElligibleBoatImpl" table="elligibleBoat" node="fr.ifremer.wao.entity.ElligibleBoatImpl" abstract="false" proxy="fr.ifremer.wao.entity.ElligibleBoat" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="globalActive" type="boolean" access="field" column="globalActive" node="globalActive"/> + <property name="companyActive" type="java.lang.Boolean" access="field" column="companyActive" node="companyActive"/> + <many-to-one name="boat" class="fr.ifremer.wao.entity.BoatImpl" column="boat" lazy="false" node="boat/@topiaId" embed-xml="false"/> + <many-to-one name="sampleRow" class="fr.ifremer.wao.entity.SampleRowImpl" column="sampleRow" node="sampleRow/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/FishingZoneImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/FishingZoneImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/FishingZoneImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.FishingZoneImpl" table="fishingZone" node="fr.ifremer.wao.entity.FishingZoneImpl" abstract="false" proxy="fr.ifremer.wao.entity.FishingZone" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="sectorName" type="text" access="field" column="sectorName" node="sectorName"/> + <property name="facadeName" type="text" access="field" column="facadeName" node="facadeName"/> + <property name="districtCode" type="text" access="field" column="districtCode" node="districtCode"/> + <bag name="sampleRow" table="fishingzone_samplerow" lazy="true" node="sampleRow" embed-xml="true"> + <key column="fishingZone"/> + <many-to-many class="fr.ifremer.wao.entity.SampleRowImpl" column="sampleRow" order-by="code" node="topiaId"/> + </bag> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/NewsImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/NewsImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/NewsImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.NewsImpl" table="news" node="fr.ifremer.wao.entity.NewsImpl" abstract="false" proxy="fr.ifremer.wao.entity.News" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="title" type="text" access="field" column="title" node="title"/> + <property name="content" type="text" access="field" column="content" node="content"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ProfessionImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ProfessionImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ProfessionImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.ProfessionImpl" table="profession" node="fr.ifremer.wao.entity.ProfessionImpl" abstract="false" proxy="fr.ifremer.wao.entity.Profession" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="codeDCF5" type="text" access="field" column="codeDCF5" node="codeDCF5"/> + <property name="meshSize" type="text" access="field" column="meshSize" node="meshSize"/> + <property name="size" type="text" access="field" column="size" node="size"/> + <property name="other" type="text" access="field" column="other" node="other"/> + <property name="libelle" type="text" access="field" column="libelle" node="libelle"/> + <property name="species" type="text" access="field" column="species" node="species"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleMonthImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleMonthImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleMonthImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.SampleMonthImpl" table="sampleMonth" node="fr.ifremer.wao.entity.SampleMonthImpl" abstract="false" proxy="fr.ifremer.wao.entity.SampleMonth" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="realTidesValue" type="int" access="field" column="realTidesValue" node="realTidesValue"/> + <property name="expectedTidesValue" type="int" access="field" column="expectedTidesValue" node="expectedTidesValue"/> + <property name="periodDate" type="java.util.Date" access="field" column="periodDate" node="periodDate"/> + <many-to-one name="sampleRow" class="fr.ifremer.wao.entity.SampleRowImpl" column="sampleRow" node="sampleRow/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.SampleRowImpl" table="sampleRow" node="fr.ifremer.wao.entity.SampleRowImpl" abstract="false" proxy="fr.ifremer.wao.entity.SampleRow" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="nbObservants" type="int" access="field" column="nbObservants" node="nbObservants"/> + <property name="averageTideTime" type="double" access="field" column="averageTideTime" node="averageTideTime"/> + <property name="code" type="text" access="field" column="code" node="code" index="sampleRow_code_idx" unique="true"/> + <property name="fishingZonesInfos" type="text" access="field" column="fishingZonesInfos" node="fishingZonesInfos"/> + <property name="comment" type="text" access="field" column="comment" node="comment"/> + <property name="programName" type="text" access="field" column="programName" node="programName"/> + <property name="periodBegin" type="java.util.Date" access="field" column="periodBegin" node="periodBegin"/> + <property name="periodEnd" type="java.util.Date" access="field" column="periodEnd" node="periodEnd"/> + <many-to-one name="profession" class="fr.ifremer.wao.entity.ProfessionImpl" column="profession" lazy="false" node="profession/@topiaId" embed-xml="false"/> + <bag name="sampleMonth" inverse="true" order-by="periodDate" lazy="false" cascade="all,delete-orphan" node="sampleMonth" embed-xml="false"> + <key column="sampleRow"/> + <one-to-many class="fr.ifremer.wao.entity.SampleMonthImpl" node="topiaId" embed-xml="false"/> + </bag> + <many-to-one name="company" class="fr.ifremer.wao.entity.CompanyImpl" column="company" lazy="false" node="company/@topiaId" embed-xml="false"/> + <bag name="sampleRowLog" inverse="true" order-by="topiaCreateDate desc" lazy="false" cascade="all,delete-orphan" node="sampleRowLog" embed-xml="false"> + <key column="sampleRow"/> + <one-to-many class="fr.ifremer.wao.entity.SampleRowLogImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="elligibleBoat" inverse="true" order-by="companyActive" lazy="false" cascade="all,delete-orphan" node="elligibleBoat" embed-xml="false"> + <key column="sampleRow"/> + <one-to-many class="fr.ifremer.wao.entity.ElligibleBoatImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="fishingZone" table="fishingzone_samplerow" inverse="true" lazy="false" node="fishingZone" embed-xml="true"> + <key column="sampleRow"/> + <many-to-many class="fr.ifremer.wao.entity.FishingZoneImpl" column="fishingZone" order-by="facadeName,sectorName,districtCode" node="topiaId"/> + </bag> + <bag name="contact" inverse="true" lazy="true" node="contact" embed-xml="false"> + <key column="sampleRow"/> + <one-to-many class="fr.ifremer.wao.entity.ContactImpl" node="topiaId" embed-xml="false"/> + </bag> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.SampleRowLogImpl" table="sampleRowLog" node="fr.ifremer.wao.entity.SampleRowLogImpl" abstract="false" proxy="fr.ifremer.wao.entity.SampleRowLog" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="logText" type="text" access="field" column="logText" node="logText"/> + <property name="comment" type="text" access="field" column="comment" node="comment"/> + <many-to-one name="sampleRow" class="fr.ifremer.wao.entity.SampleRowImpl" column="sampleRow" node="sampleRow/@topiaId" embed-xml="false"/> + <many-to-one name="admin" class="fr.ifremer.wao.entity.WaoUserImpl" column="admin" lazy="false" node="admin/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ShipOwnerImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ShipOwnerImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/ShipOwnerImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.ShipOwnerImpl" table="shipOwner" node="fr.ifremer.wao.entity.ShipOwnerImpl" abstract="false" proxy="fr.ifremer.wao.entity.ShipOwner" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="code" type="text" access="field" column="code" node="code" index="shipOwner_code_idx" unique="true"/> + <property name="firstName" type="text" access="field" column="firstName" node="firstName"/> + <property name="lastName" type="text" access="field" column="lastName" node="lastName"/> + </class> +</hibernate-mapping> Added: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/WaoUserImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/WaoUserImpl.hbm.xml (rev 0) +++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/WaoUserImpl.hbm.xml 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="fr.ifremer.wao.entity"> + <class name="fr.ifremer.wao.entity.WaoUserImpl" table="waoUser" node="fr.ifremer.wao.entity.WaoUserImpl" abstract="false" proxy="fr.ifremer.wao.entity.WaoUser" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="firstName" type="text" access="field" column="firstName" node="firstName"/> + <property name="lastName" type="text" access="field" column="lastName" node="lastName"/> + <property name="phoneNumber" type="text" access="field" column="phoneNumber" node="phoneNumber"/> + <property name="login" type="text" access="field" column="login" node="login"/> + <property name="password" type="text" access="field" column="password" node="password"/> + <property name="active" type="boolean" access="field" column="active" node="active"/> + <property name="role" type="int" access="field" column="role" node="role"/> + <property name="readOnly" type="boolean" access="field" column="readOnly" node="readOnly"/> + <many-to-one name="company" class="fr.ifremer.wao.entity.CompanyImpl" column="company" node="company/@topiaId" embed-xml="false"/> + <bag name="contact" inverse="true" lazy="true" node="contact" embed-xml="false"> + <key column="observer"/> + <one-to-many class="fr.ifremer.wao.entity.ContactImpl" node="topiaId" embed-xml="false"/> + </bag> + </class> +</hibernate-mapping> Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ActivityCalendarImportTest.java (from rev 378, trunk/wao-business/src/test/java/fr/ifremer/wao/services/ActivityCalendarImportTest.java) =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ActivityCalendarImportTest.java (rev 0) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ActivityCalendarImportTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,116 @@ +/* + * *##% + * Wao :: Business + * Copyright (C) 2009 - 2010 Ifremer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * ##%* + */ + +package fr.ifremer.wao.service; + +import fr.ifremer.wao.WaoContext; +import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.WaoRunner; +import fr.ifremer.wao.WaoRunnerTest; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStream; +import java.util.zip.GZIPInputStream; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import static org.junit.Assert.*; + +/** + * ActivityCalendarImport + * + * Created: 11 déc. 2009 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class ActivityCalendarImportTest { + + private static WaoRunner runner; + + private static final Logger log = LoggerFactory.getLogger(ActivityCalendarImportTest.class); + + public ActivityCalendarImportTest() { + } + + @BeforeClass + public static void setUpClass() throws Exception { + runner = new WaoRunnerTest(); + } + + @AfterClass + public static void tearDownClass() throws Exception { + } + + @Before + public void setUp() throws WaoException { + runner.start(); + } + + @After + public void tearDown() throws WaoException { + runner.stop(); + } + + /** + * Test of run method, of class ActivityCalendarImport. + */ + @Test + public void testRun() throws IOException, InterruptedException, WaoException { + log.info("run"); + + ServiceBoat serviceBoat = new ServiceBoatImpl(); + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + serviceBoat.importBoatCsv(input); + + input = getClass().getResourceAsStream("/import/activity.csv.gz"); + input = new GZIPInputStream(input); + + ActivityCalendarImport instance = new ActivityCalendarImport(input); + + Thread t = new Thread(instance); + t.start(); + t.join(); + + String filename = WaoContext.getProperty( + WaoContext.PROP_FILENAME_LOG_ACTIVITY_IMPORT); + + File file = new File(filename); + Assert.assertTrue(file.exists()); + + BufferedReader reader = new BufferedReader(new FileReader(file)); + String line = null; + while ((line = reader.readLine()) != null) { + log.info(line); + } + } + +} Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ActivityCalendarImportTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Revision Added: svn:mergeinfo + Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java (from rev 378, trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceBoatImplTest.java) =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java (rev 0) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,412 @@ +/* + * *##% + * Wao :: Business + * Copyright (C) 2009 - 2010 Ifremer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * ##%* + */ + +package fr.ifremer.wao.service; + +import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.WaoModelDAOHelper; +import fr.ifremer.wao.WaoRunner; +import fr.ifremer.wao.WaoContext; +import fr.ifremer.wao.bean.BoatFilterImpl; +import fr.ifremer.wao.WaoRunnerTest; +import fr.ifremer.wao.bean.BoatFilter; +import fr.ifremer.wao.bean.CompanyBoatInfos; +import fr.ifremer.wao.bean.ContactState; +import fr.ifremer.wao.bean.UserRole; +import fr.ifremer.wao.entity.ActivityCalendar; +import fr.ifremer.wao.entity.ActivityCalendarDAO; +import fr.ifremer.wao.entity.Boat; +import fr.ifremer.wao.entity.BoatDAO; +import fr.ifremer.wao.entity.BoatInfos; +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.CompanyDAO; +import fr.ifremer.wao.entity.CompanyImpl; +import fr.ifremer.wao.entity.Contact; +import fr.ifremer.wao.entity.ElligibleBoat; +import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.entity.SampleRowDAO; +import fr.ifremer.wao.entity.SampleRowLogImpl; +import fr.ifremer.wao.entity.WaoUser; +import fr.ifremer.wao.entity.WaoUserImpl; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import static org.junit.Assert.*; + +/** + * + * @author fdesbois + */ +public class ServiceBoatImplTest { + + private static WaoRunner runner; + + private static final Logger log = LoggerFactory.getLogger(ServiceBoatImplTest.class); + + private ServiceBoatImpl service; + + public ServiceBoatImplTest() { + } + + @BeforeClass + public static void setUpClass() throws Exception { + runner = new WaoRunnerTest(); + } + + @AfterClass + public static void tearDownClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + runner.start(); + service = new ServiceBoatImpl(); + } + + @After + public void tearDown() throws Exception { + runner.stop(); + } + + /** + * Test of getBoatsByFilter method, of class ServiceBoatImpl. + * @throws Exception + */ + @Test + public void testGetBoatsByFilter() throws Exception { + log.info("getBoatsByFilter"); + + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + service.importBoatCsv(input); + + ServiceUser serviceUser = new ServiceUserImpl(); + Company company = new CompanyImpl(); + company.setName("TARTANPION"); + serviceUser.createUpdateCompany(company); + WaoUser user = new WaoUserImpl(); + user.setLogin("login"); + user.setFirstName("Jean"); + user.setLastName("Michmuche"); + user.setCompany(company); + serviceUser.createUpdateUser(user, true); + List<SampleRow> rows = prepareSampleRows(company); + + BoatFilter filter = new BoatFilterImpl(); + + // Exec with no filter + Map<Integer, Boat> boats = service.getBoatsByFilter(filter); + assertEquals(6, boats.size()); + // first boat of the file + Boat boat = boats.get(273129); + assertNotNull(boat); + + // Exec with filter on Immatriculation + filter.setBoatImmatriculation(273129); + boats = service.getBoatsByFilter(filter); + assertEquals(1, boats.size()); + + // Exec with filter on Name : start with "M" + filter = new BoatFilterImpl(); + filter.setBoatName("M"); + boats = service.getBoatsByFilter(filter); + assertEquals(2, boats.size()); + + // Exec with filter on DistrictCode + filter = new BoatFilterImpl(); + filter.setBoatDistrictCode("UN"); + boats = service.getBoatsByFilter(filter); + assertEquals(4, boats.size()); + + // Exec with filter on SampleRowCode and company + filter = new BoatFilterImpl(); + filter.setSampleRow(rows.get(0)); // Code = 2009_03 + filter.setCompany(company); + boats = service.getBoatsByFilter(filter); + assertEquals(2, boats.size()); + } + + @Test + public void testGetBoats() throws Exception { + log.info("getBoats"); + + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + service.importBoatCsv(input); + + String immatriculations = "174592 978419 273129"; + List<Boat> results = service.getBoatsByImmatriculations(immatriculations); + assertEquals(3, results.size()); + immatriculations = "174592 \\ èè-- ç999 àà \n\n 978419 00 ççç 273129"; + results = service.getBoatsByImmatriculations(immatriculations); + assertEquals(3, results.size()); + } + + /** + * Test of getBoatInfos method, of class ServiceBoatImpl. + * @throws Exception + */ + //@Test + public void testGetBoatInfos() throws Exception { + } + + + @Test + public void testGetElligibleBoats() throws Exception { + log.info("getElligibleBoats"); + + /** PREPARE DATA **/ + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + service.importBoatCsv(input); + + Company company = new CompanyImpl(); + company.setName("TARTANPION"); + prepareSampleRows(company); + + /** EXEC METHOD **/ + + CompanyBoatInfos result = service.getCompanyBoatInfos(174592, company); + assertNotNull(result); + assertEquals(174592, result.getBoatInfos().getBoat().getImmatriculation()); + assertEquals("TARTANPION", result.getCompany().getName()); + // only row1 is getting + assertEquals(1, result.getElligibleBoatsValues().size()); + } + + private List<SampleRow> prepareSampleRows(Company company) + throws WaoException, TopiaException { + ServiceReferential serviceReferential = new ServiceReferentialImpl(); + InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + serviceReferential.importFishingZoneCsv(input); + + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + // Create a company + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + WaoContext.prepareTopiaId(Company.class, company); + companyDAO.update(company); + companyDAO.create(Company.NAME, "BIS"); + transaction.commitTransaction(); + + ServiceSampling serviceSampling = new ServiceSamplingImpl(); + input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + serviceSampling.importSamplingPlanCsv(input); + + // Get two SampleRows : 2009_3 & 2010_4 + SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + SampleRow row1 = rowDAO.findByCode("2009_0003"); + row1.getProfession(); + SampleRow row2 = rowDAO.findByCode("2010_0004"); + row2.getProfession(); + + transaction.commitTransaction(); + + transaction.closeContext(); + + // Set company and elligibleBoats '174592 177474' for row1 + List<Boat> boats = service.getBoatsByImmatriculations("174592 177474"); + row1.setCompany(company); + serviceSampling.createUpdateSampleRow(row1, boats, new SampleRowLogImpl()); + // Set company only for row2 + row2.setCompany(company); + serviceSampling.createUpdateSampleRow(row2, new ArrayList<Boat>(), new SampleRowLogImpl()); + + return Arrays.asList(new SampleRow[] { row1, row2}); + } + + @Test + public void testCreateUpdateBoatInfos() throws Exception { + log.info("createUpdateBoatInfos"); + + /** PREPARE DATA **/ + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + service.importBoatCsv(input); + + List<Boat> boats = service.getBoatsByImmatriculations("174592"); + Boat boat = boats.get(0); + + // Two rows created : 2009_3 & 2010_4 and one Company : "TARTANPION" + ServiceUser serviceUser = new ServiceUserImpl(); + Company company = new CompanyImpl(); + company.setName("TARTANPION"); + serviceUser.createUpdateCompany(company); + WaoUser user = new WaoUserImpl(); + user.setLogin("user"); + user.setFirstName("Jean"); + user.setLastName("Michmuche"); + user.setCompany(company); + serviceUser.createUpdateUser(user, true); + List<SampleRow> rows = prepareSampleRows(company); + + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + SampleRow row = rowDAO.findByCode("2010_0001"); + row.getCompany(); + row.getProfession(); + transaction.closeContext(); + + ServiceContact serviceContact = new ServiceContactImpl(); + Contact contact1 = serviceContact.getNewContact(user, row, boat); + contact1.setState(ContactState.CONTACT_START.toString()); + serviceContact.saveContact(contact1, false); + + CompanyBoatInfos companyBoatInfos = service.getCompanyBoatInfos(174592, company); + + /** EXEC METHOD **/ + BoatInfos boatInfos = companyBoatInfos.getBoatInfos(); + + boatInfos.setDup(2); + boatInfos.setContactFirstName("Jean-Paul"); + boatInfos.setContactLastName("Belmondo"); + + /** TEST1 **/ + // ajout d'une nouvelle ligne "2010_4" non mise en elligible auparavent + companyBoatInfos.setNewElligibleBoat(rows.get(1)); + // ligne deja elligible mise en inactive + companyBoatInfos.removeElligibleBoat("2009_0003"); + + service.createUpdateCompanyBoatInfos(companyBoatInfos); + + companyBoatInfos = service.getCompanyBoatInfos(174592, company); + + Map<String, ElligibleBoat> results = companyBoatInfos.getElligibleBoats(); + assertEquals(2, results.size()); + + ElligibleBoat elligible = companyBoatInfos.getElligibleBoat("2009_0003"); + assertNotNull(elligible.getCompanyActive()); + assertFalse(elligible.getCompanyActive()); + + elligible = companyBoatInfos.getElligibleBoat("2010_0004"); + assertTrue(elligible.getCompanyActive()); + + /** TEST2 **/ + // Suppression ligne lié elligible pour la société + companyBoatInfos.removeElligibleBoat("2010_0004"); + // Reactivation ligne mise en inactive juste avant + companyBoatInfos.activeElligibleBoat("2009_0003"); + + service.createUpdateCompanyBoatInfos(companyBoatInfos); + + companyBoatInfos = service.getCompanyBoatInfos(174592, company); + + results = companyBoatInfos.getElligibleBoats(); + assertEquals(1, results.size()); + + elligible = companyBoatInfos.getElligibleBoat("2009_0003"); + assertNull(elligible.getCompanyActive()); + assertTrue(elligible.getGlobalActive()); + + /** EXEC METHOD **/ + Contact result = companyBoatInfos.getLastContact(); + Assert.assertEquals(contact1.getTopiaId(), result.getTopiaId()); + } + + /** + * Test of importBoatCsv method, of class ServiceBoatImpl. + * @throws Exception + */ + @Test + public void testImportBoatCsv() throws Exception { + log.info("importBoatCsv"); + + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + int[] nbBoats = service.importBoatCsv(input); + assertEquals(6, nbBoats[0]); + // new boats added + assertEquals(6, nbBoats[1]); + + // Check boat 174592 is active &nd boat 177474 is inactive + List<Boat> results = service.getBoatsByImmatriculations("174592 177474"); + assertTrue(results.get(0).getActive()); + assertFalse(results.get(1).getActive()); + } + + @Test + public void testGetLastActivityCalendar() throws Exception { + log.info("getLastActivityCalendar"); + + /** PREPARE DATA **/ + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + BoatDAO boatDAO = WaoModelDAOHelper.getBoatDAO(transaction); + Boat boat = boatDAO.create( + Boat.NAME, "TESTBOAT", + Boat.IMMATRICULATION, 174592); + + ActivityCalendarDAO dao = WaoModelDAOHelper.getActivityCalendarDAO(transaction); + + ActivityCalendar calendar1 = dao.create( + ActivityCalendar.BOAT, boat, + ActivityCalendar.YEAR, 2008); + + ActivityCalendar calendar2 = dao.create( + ActivityCalendar.BOAT, boat, + ActivityCalendar.YEAR, 2007); + + ActivityCalendar calendar3 = dao.create( + ActivityCalendar.BOAT, boat, + ActivityCalendar.YEAR, 2009); + + transaction.commitTransaction(); + transaction.closeContext(); + + /** EXEC METHOD **/ + WaoUser user = new WaoUserImpl(); + user.setFirstName("Jean"); + user.setLastName("Michmuche"); + // Evo #2063 : the defaut instanciation of WaoUser doesn't put the + // user automatically as an non admin + user.setRole(UserRole.OBSERVER.ordinal()); + Company company = new CompanyImpl(); + company.setName("TARTANPION"); + user.setCompany(company); + + ActivityCalendar result = service.getLastActivityCalendar(user, boat); + Assert.assertNotNull(result); + Assert.assertEquals(2009, result.getYear()); + + String filename = WaoContext.getProperty( + WaoContext.PROP_FILENAME_LOG_ACTIVITY_ACCESS); + + File file = new File(filename); + Assert.assertTrue(file.exists()); + + BufferedReader reader = new BufferedReader(new FileReader(file)); + String line = reader.readLine(); + Assert.assertTrue(line.contains("Jean Michmuche")); + Assert.assertTrue(line.contains("TARTANPION")); + Assert.assertTrue(line.contains("TESTBOAT")); + Assert.assertTrue(line.contains("174592")); + } + +} Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java ___________________________________________________________________ Added: svn:mergeinfo + Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialImplTest.java (from rev 378, trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceReferentialImplTest.java) =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialImplTest.java (rev 0) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialImplTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,155 @@ +/* + * *##% + * Wao :: Business + * Copyright (C) 2009 - 2010 Ifremer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * ##%* + */ + +package fr.ifremer.wao.service; + +import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.WaoRunner; +import fr.ifremer.wao.WaoRunnerTest; +import fr.ifremer.wao.bean.SamplingFilter; +import fr.ifremer.wao.bean.SamplingFilterImpl; +import fr.ifremer.wao.entity.FishingZone; +import java.io.InputStream; +import java.util.List; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import static org.junit.Assert.*; + +/** + * + * @author fdesbois + */ +public class ServiceReferentialImplTest { + + private static WaoRunner runner; + + private static final Logger log = LoggerFactory.getLogger(ServiceReferentialImplTest.class); + + private ServiceReferentialImpl service; + + public ServiceReferentialImplTest() { + } + + @BeforeClass + public static void setUpClass() throws Exception { + runner = new WaoRunnerTest(); + } + + @AfterClass + public static void tearDownClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + runner.start(); + service = new ServiceReferentialImpl(); + } + + @After + public void tearDown() throws Exception { + runner.stop(); + } + + /** + * Test of getFacades method, of class ServiceReferentialImpl. + */ + @Test + public void testGetFacades() throws Exception { + log.info("getFacades"); + + InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + service.importFishingZoneCsv(input); + + List<String> facades = service.getFacades(new SamplingFilterImpl()); + assertEquals(3, facades.size()); + assertTrue(facades.contains("Atlantique")); + assertTrue(facades.contains("Mer du Nord")); + assertTrue(facades.contains("Méditerranée")); + } + + @Test + public void testGetSectors() throws Exception { + log.info("getSectors"); + + InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + service.importFishingZoneCsv(input); + + SamplingFilter filter = new SamplingFilterImpl(); + + List<String> sectors = service.getSectors(filter); + assertEquals(5, sectors.size()); + assertTrue(sectors.contains("Manche")); + assertTrue(sectors.contains("Mer du Nord")); + assertTrue(sectors.contains("Manche Ouest")); + assertTrue(sectors.contains("Golfe de Gascogne")); + assertTrue(sectors.contains("Méditerranée")); + + filter.setFacadeName("Atlantique"); + + sectors = service.getSectors(filter); + assertEquals(2, sectors.size()); + assertTrue(sectors.contains("Manche Ouest")); + assertTrue(sectors.contains("Golfe de Gascogne")); + } + + /** + * Test of getProfessions method, of class ServiceReferentialImpl. + */ + //@Test + public void testGetProfessions() throws Exception { + System.out.println("getProfessions"); + } + + /** + * Test of getFishingZones method, of class ServiceReferentialImpl. + * @throws WaoException if error during import or getFishingZones + */ + @Test + public void testGetFishingZones() throws WaoException { + log.info("getFishingZones"); + + InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + int nbNew = service.importFishingZoneCsv(input); + // nbNew = 6 + + List<FishingZone> results = service.getFishingZones(); + assertEquals(nbNew, results.size()); + } + + /** + * Test of importFishingZoneCsv method, of class ServiceReferentialImpl. + * @throws WaoException if import error + */ + @Test + public void testImportFishingZoneCsv() throws WaoException { + log.info("importFishingZoneCsv"); + + InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + int result = service.importFishingZoneCsv(input); + assertEquals(6, result); + } + +} Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialImplTest.java ___________________________________________________________________ Added: svn:mergeinfo + Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java (from rev 378, trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSamplingImplTest.java) =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java (rev 0) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,589 @@ +/* + * *##% + * Wao :: Business + * Copyright (C) 2009 - 2010 Ifremer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * ##%* + */ + +package fr.ifremer.wao.service; + +import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.WaoModelDAOHelper; +import fr.ifremer.wao.WaoRunner; +import fr.ifremer.wao.WaoContext; +import fr.ifremer.wao.bean.ImportResults; +import fr.ifremer.wao.bean.SamplingFilter; +import fr.ifremer.wao.bean.SamplingFilterImpl; +import fr.ifremer.wao.WaoRunnerTest; +import fr.ifremer.wao.bean.FacadeRow; +import fr.ifremer.wao.entity.Boat; +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.CompanyDAO; +import fr.ifremer.wao.entity.ElligibleBoat; +import fr.ifremer.wao.entity.ElligibleBoatDAO; +import fr.ifremer.wao.entity.FishingZone; +import fr.ifremer.wao.entity.FishingZoneDAO; +import fr.ifremer.wao.entity.Profession; +import fr.ifremer.wao.entity.ProfessionDAO; +import fr.ifremer.wao.entity.ProfessionImpl; +import fr.ifremer.wao.entity.SampleMonth; +import fr.ifremer.wao.entity.SampleMonthImpl; +import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.entity.SampleRowDAO; +import fr.ifremer.wao.entity.SampleRowLogImpl; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collection; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.List; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.util.DateUtils; +import org.nuiton.util.PeriodDates; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import static org.junit.Assert.*; + +/** + * ServiceSamplingImplTest + * + * Created: 30 nov. 2009 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class ServiceSamplingImplTest { + + private static WaoRunner runner; + + private static final Logger log = LoggerFactory.getLogger(ServiceSamplingImplTest.class); + + private ServiceSamplingImpl service; + + public ServiceSamplingImplTest() { + } + + @BeforeClass + public static void setUpClass() throws Exception { + runner = new WaoRunnerTest(); + } + + @AfterClass + public static void tearDownClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + runner.start(); + service = new ServiceSamplingImpl(); + } + + @After + public void tearDown() throws Exception { + runner.stop(); + } + + @Test + public void testCreateUpdateSampleRow() throws Exception { + log.info("createUpdateSampleRow"); + + /** PREPARE DATA **/ + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + List<FishingZone> zones = prepareFishingZones(transaction); + + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + ServiceBoat serviceBoat = new ServiceBoatImpl(); + serviceBoat.importBoatCsv(input); + + transaction.closeContext(); + + // CREATE + Profession profession1 = new ProfessionImpl(); + profession1.setCodeDCF5("OORR-BDP"); + profession1.setMeshSize(">=18"); + profession1.setSize("90-1000"); + profession1.setLibelle("Chalutage de poissons tubes"); + + List<SampleMonth> months = new ArrayList<SampleMonth>(); + for (int i = 0; i < 12; i++) { + SampleMonth month = new SampleMonthImpl(); + Calendar calendar = new GregorianCalendar(2009, i, 1); + month.setPeriodDate(calendar.getTime()); + month.setExpectedTidesValue(3); + months.add(month); + } + for (int i = 0; i < 3; i++) { + SampleMonth month = new SampleMonthImpl(); + Calendar calendar = new GregorianCalendar(2010, i, 1); + month.setPeriodDate(calendar.getTime()); + month.setExpectedTidesValue(4); + months.add(month); + } + + SampleRow row = service.getNewSampleRow(); + row.setCode("2010_03"); + row.setNbObservants(3); + row.setAverageTideTime(2.5); + row.setProgramName("DPMA-2009"); + row.setPeriodBegin(DateUtils.createDate(1, 1, 2009)); + row.setPeriodEnd(DateUtils.createDate(31, 3, 2010)); + row.setProfession(profession1); + row.setSampleMonth(months); + row.setFishingZone(zones); + row.setFishingZonesInfos("port tres loin du champ"); + + /** EXEC CREATE **/ + List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174592 978419 273129"); + service.createUpdateSampleRow(row, boats, new SampleRowLogImpl()); + assertNotNull(row.getTopiaId()); + assertNotNull(row.getProfession().getTopiaId()); + + SampleRow result = service.getSampleRow(row.getTopiaId()); + assertEquals(3, result.getFishingZone().size()); + assertEquals(3, result.getElligibleBoat().size()); + + // TEST FOR DELETE ELLIGIBLE BOAT + boats.remove(2); + service.createUpdateSampleRow(result, boats, new SampleRowLogImpl()); + + result = service.getSampleRow(row.getTopiaId()); + assertEquals(2, result.getElligibleBoat().size()); + + } + + /** + * Test of getSampleRowsOrderedByFishingZone method, of class ServiceSamplingImpl. + */ + @Test + public void testGetSampleRowsOrderedByFishingZone() throws Exception { + log.info("getSampleRowsOrderedByFishingZone"); + + + /** PREPARE DATA **/ + + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + List<FishingZone> zones = prepareFishingZones(transaction); + + //Program program1 = programDAO.create(Program.NAME, "DPMA-2009"); + Date dateBegin1 = DateUtils.createDate(1, 1, 2009); + Date dateEnd1 = DateUtils.createDate(1, 3, 2010); + PeriodDates period1 = new PeriodDates(dateBegin1, dateEnd1); + + //Program program2 = programDAO.create(Program.NAME, "PPDA-2008"); + Date dateBegin2 = DateUtils.createDate(1, 1, 2008); + Date dateEnd2 = DateUtils.createDate(1, 12, 2008); + PeriodDates period2 = new PeriodDates(dateBegin2, dateEnd2); + + SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction); + + SampleRow row1 = dao.create(); + row1.setCode("2010_0001"); + row1.addFishingZone(zones.get(2)); + row1.setProgramName("DPMA-2009"); + row1.setPeriod(period1); + + log.info(row1.getCode() + " :: " + row1.getFacade() + " :: " + row1.getSectors()); + + SampleRow row2 = dao.create(); + row2.setCode("2010_0002"); + row2.addFishingZone(zones.get(0)); + row2.setProgramName("DPMA-2009"); + row2.setPeriod(period1); + + log.info(row2.getCode() + " :: " + row2.getFacade() + " :: " + row2.getSectors()); + + SampleRow row3 = dao.create(); + row3.setCode("2010_0003"); + row3.addFishingZone(zones.get(1)); + row3.addFishingZone(zones.get(2)); + row3.addFishingZone(zones.get(0)); + row3.setProgramName("PPDA-2008"); + row3.setPeriod(period2); + + log.info(row3.getCode() + " :: " + row3.getFacade() + " :: " + row3.getSectors()); + + SampleRow row4 = dao.create(); + row4.setCode("2010_0004"); + row4.addFishingZone(zones.get(0)); // Mer du Nord :: Manche + row4.setProgramName("DPMA-2009"); + row4.setPeriod(period1); + + log.info(row4.getCode() + " :: " + row4.getFacade() + " :: " + row4.getSectors()); + + transaction.commitTransaction(); + + /** EXEC service method **/ + + // FIRST TEST : + // ORDER by FishingZone (facadeName, sectorName, districtCode) + // BIG PERIOD, included program1 and program2 + // NO COMPANY (= null) + Calendar begin = new GregorianCalendar(2000, 0, 1, 0, 0, 0); + Calendar end = new GregorianCalendar(2020, 11, 31, 0, 0, 0); + PeriodDates period = new PeriodDates(begin, end); + // RESULT : [2010_0002, 2010_0004, 2010_0001, 2010_0003] + FacadeRow facade = service.getSampleRowsOrderedByFishingZone(period, null); + List<SampleRow> rows = facade.getValues(); + assertEquals(4, rows.size()); + SampleRow resultRow0 = rows.get(0); + assertEquals("2010_0002", resultRow0.getCode()); + SampleRow resultRow1 = rows.get(1); + assertEquals("2010_0004", resultRow1.getCode()); + +// List<FishingZone> zoneRow1 = resultRow1.getFishingZone(); +// assertEquals(3, zoneRow1.size()); +// FishingZone resultZone0 = zoneRow1.get(0); +// assertEquals("VIIb", resultZone0.getDistrictCode()); +// FishingZone resultZone1 = zoneRow1.get(1); +// assertEquals("VI", resultZone1.getDistrictCode()); +// FishingZone resultZone2 = zoneRow1.get(2); +// assertEquals("V", resultZone2.getDistrictCode()); + + SampleRow resultRow2 = rows.get(2); + assertEquals("2010_0003", resultRow2.getCode()); + SampleRow resultRow3 = rows.get(3); + assertEquals("2010_0001", resultRow3.getCode()); + + // SECOND TEST : + // ORDER by FishingZone (facadeName, sectorName, districtCode) + // BIG PERIOD, not included program2 + // NO COMPANY (= null) + begin = new GregorianCalendar(2009, 0, 1, 0, 0, 0); + end = new GregorianCalendar(2020, 11, 31, 0, 0, 0); + period = new PeriodDates(begin, end); + // RESULT : [2010_0002, 2010_0004, 2010_0001] + facade = service.getSampleRowsOrderedByFishingZone(period, null); + rows = facade.getValues(); + assertEquals(3, rows.size()); + resultRow0 = rows.get(0); + assertEquals("2010_0002", resultRow0.getCode()); + resultRow1 = rows.get(1); + assertEquals("2010_0004", resultRow1.getCode()); + resultRow2 = rows.get(2); + assertEquals("2010_0001", resultRow2.getCode()); + + } + + private List<FishingZone> prepareFishingZones(TopiaContext transaction) throws WaoException, TopiaException { + + FishingZoneDAO fishingZoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); + + FishingZone fishingZone1 = fishingZoneDAO.create(); + fishingZone1.setFacadeName("Atlantique"); + fishingZone1.setSectorName("Secteur Mer Celtique et Ouest Irlande centré Pays bigouden"); + fishingZone1.setDistrictCode("VIIb"); + + FishingZone fishingZone2 = fishingZoneDAO.create(); + fishingZone2.setFacadeName("Manche"); + fishingZone2.setSectorName("Secteur Cherbourg Honfleur centré sur Port-en-Bessin"); + fishingZone2.setDistrictCode("VI"); + + FishingZone fishingZone3 = fishingZoneDAO.create(); + fishingZone3.setFacadeName("Manche"); + fishingZone3.setSectorName("Secteur du Havre à Dunkerque centré sur Boulogne"); + fishingZone3.setDistrictCode("V"); + + transaction.commitTransaction(); + + return fishingZoneDAO.findAll(); + } + + public void testGetSampleRowsForUser() throws Exception { + log.info("getSampleRowsForUser"); + /** PREPARE DATA **/ + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); + FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); + FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); + FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); + + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + Company company = companyDAO.create(Company.NAME, "TARTANPION"); + Calendar begin = new GregorianCalendar(2009,8,1); + Calendar end = new GregorianCalendar(2010,11,31); + SampleRowDAO sampleRowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + SampleRow row = sampleRowDAO.create( + SampleRow.CODE,"2010_178", + SampleRow.COMPANY,company, + SampleRow.PROGRAM_NAME, "DPMA-2009", + SampleRow.PERIOD_BEGIN, begin.getTime(), + SampleRow.PERIOD_END, end.getTime()); + + + transaction.commitTransaction(); + transaction.closeContext(); + + InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + service.importSamplingPlanCsv(input); + + /** EXEC METHOD **/ + SamplingFilter filter = new SamplingFilterImpl(); +// User admin = new UserImpl(); +// admin.setAdmin(true); +// filter.setCompany() + filter.setNbMonthFinishedFromToday(0); + List<SampleRow> results = service.getSampleRowsByFilter(filter); + // total in file : 11, 1 refused, 1 finished + assertEquals(9, results.size()); + +// User user = new UserImpl(); +// user.setCompany(company); + filter.setCompany(company); + results = service.getSampleRowsByFilter(filter); + assertEquals(1, results.size()); + } + + /** + * Test of getHistoric method, of class ServiceSamplingImpl. + */ + //@Test + public void testGetHistoric() throws Exception { + System.out.println("getHistoric"); + } + + /** + * Test of getSampleRow method, of class ServiceSamplingImpl. + */ + //@Test + public void testGetSampleRow() throws Exception { + System.out.println("getSampleRow"); + } + + @Test + public void testGetNewProfession() throws Exception { + log.info("getNewProfession"); + + /** PREPARE DATA **/ + + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + ProfessionDAO dao = WaoModelDAOHelper.getProfessionDAO(transaction); + + Profession profession = dao.create( + Profession.CODE_DCF5, "OBR", + Profession.LIBELLE, "Fileyage en barre", + Profession.MESH_SIZE, "< 80", + Profession.OTHER, "90mm", + Profession.SPECIES, "barre, lieu noir, saumon des plages"); + + transaction.commitTransaction(); + transaction.closeContext(); + + /** EXEC METHOD **/ + Profession newProfession = service.getNewProfession(profession); + Assert.assertNotSame(profession, newProfession); + Assert.assertEquals("OBR", newProfession.getCodeDCF5()); + Assert.assertEquals("Fileyage en barre", newProfession.getLibelle()); + Assert.assertEquals("< 80", newProfession.getMeshSize()); + Assert.assertEquals("90mm", newProfession.getOther()); + Assert.assertEquals("barre, lieu noir, saumon des plages", newProfession.getSpecies()); + + } + + @Test + public void testDeleteSampleRow() throws Exception { + log.info("deleteSampleRow"); + + /** PREPARE DATA **/ + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); + FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); + FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); + FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); + + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + companyDAO.create(Company.NAME, "TARTANPION"); + companyDAO.create(Company.NAME, "BIS"); + transaction.commitTransaction(); + + + InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + service.importSamplingPlanCsv(input); + + SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + SampleRow row = rowDAO.findByCode("2010_0001"); + row.getProfession(); + row.getCompany(); + transaction.closeContext(); + + input = getClass().getResourceAsStream("/import/navires.csv"); + ServiceBoat serviceBoat = new ServiceBoatImpl(); + serviceBoat.importBoatCsv(input); + List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174592 978419 273129"); + + service.createUpdateSampleRow(row, boats, new SampleRowLogImpl()); + /** EXEC METHOD **/ + + service.deleteSampleRow(row); + transaction = WaoContext.getTopiaRootContext().beginTransaction(); + rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + row = rowDAO.findByCode("2010_0001"); + assertNull(row); + + ElligibleBoatDAO elligibleDAO = WaoModelDAOHelper.getElligibleBoatDAO(transaction); + List<ElligibleBoat> elligibles = elligibleDAO.findAll(); + assertEquals(0, elligibles.size()); + transaction.closeContext(); + } + + @Test + public void testImportSamplingPlanCsv() throws WaoException, TopiaException { + log.info("importSamplingPlanCsv"); + + /** PREPARE DATA **/ + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); + FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); + FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); + FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); + + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + companyDAO.create(Company.NAME, "TARTANPION"); + companyDAO.create(Company.NAME, "BIS"); + transaction.commitTransaction(); + transaction.closeContext(); + + /** EXEC METHOD **/ + InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + ImportResults result = service.importSamplingPlanCsv(input); + + // total imported + assertEquals(12, result.getNbRowsImported()); + // total refused + assertEquals(1, result.getNbRowsRefused()); + + /** CHECK VALUES **/ + transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + + // Error #2221 : don't keep the same profession for two different rows + SampleRow row2 = rowDAO.findByCode("2010_0010"); + SampleRow row3 = rowDAO.findByCode("2010_0011"); + assertNotSame(row2.getProfession(), row3.getProfession()); + + ProfessionDAO professionDAO = + WaoModelDAOHelper.getProfessionDAO(transaction); + + List<Profession> professions = professionDAO.findAll(); + assertEquals(12, professions.size()); + + SampleRow row1 = rowDAO.findByCode("2010_0001"); + assertNotNull(row1); + assertEquals(1, row1.getNbObservants()); + assertEquals(1.5, row1.getAverageTideTime(), 0.1); + assertEquals("Un petit commentaire", row1.getComment()); + + assertEquals("MA-2009", row1.getProgramName()); + + Profession profession = row1.getProfession(); + assertNotNull(profession); + assertEquals("DB_MOL", profession.getCodeDCF5()); + + List<SampleMonth> months = row1.getSampleMonth(); + assertEquals(11, months.size()); + + Collection<FishingZone> zones = row1.getFishingZone(); + assertEquals(2, zones.size()); + zones.contains(zoneI); + zones.contains(zoneIId); + + transaction.closeContext(); + } + + @Test + public void testGetPrograms() throws Exception { + /** PREPARE DATA **/ + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); + zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); + zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); + zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); + + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + companyDAO.create(Company.NAME, "TARTANPION"); + companyDAO.create(Company.NAME, "BIS"); + transaction.commitTransaction(); + transaction.closeContext(); + + InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + service.importSamplingPlanCsv(input); + + /** EXEC METHOD **/ + List<String> programs = service.getPrograms(null); + assertEquals(4, programs.size()); + } + + + @Test + public void testGetNewSampleRowCode() throws Exception { + log.info("getNewSampleRowCode"); + + /** PREPARE DATA **/ + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); + FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); + FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); + FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); + + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + companyDAO.create(Company.NAME, "TARTANPION"); + companyDAO.create(Company.NAME, "BIS"); + transaction.commitTransaction(); + + ServiceSampling serviceSampling = new ServiceSamplingImpl(); + InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + serviceSampling.importSamplingPlanCsv(input); + + transaction.closeContext(); + + /** EXEC METHOD **/ + + Calendar begin = new GregorianCalendar(2009, 11, 1); + + String result = service.getNewSampleRowCode(begin.getTime()); + Assert.assertEquals("2009_0007", result); + + // Test regex for replacment in importSamplingPlanCsv +// String code = "2010_1"; +// code = code.replaceFirst("_(\\d)$", "_0$1"); +// Assert.assertEquals("2010_01", code); +// +// code = "2010_04"; +// code = code.replaceFirst("_(\\d)$", "_0$1"); +// Assert.assertEquals("2010_04", code); + } + +} Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Revision Added: svn:mergeinfo + Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java (from rev 378, trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSynthesisImplTest.java) =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java (rev 0) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,544 @@ +/* + * *##% + * Wao :: Business + * Copyright (C) 2009 - 2010 Ifremer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * ##%* + */ + +package fr.ifremer.wao.service; + +import fr.ifremer.wao.WaoContext; +import fr.ifremer.wao.WaoModelDAOHelper; +import fr.ifremer.wao.WaoRunner; +import fr.ifremer.wao.WaoRunnerTest; +import fr.ifremer.wao.bean.BoardingResult; +import fr.ifremer.wao.bean.ContactAverageReactivity; +import fr.ifremer.wao.bean.ContactState; +import fr.ifremer.wao.bean.ContactStateStatistics; +import fr.ifremer.wao.entity.Boat; +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.CompanyDAO; +import fr.ifremer.wao.entity.Contact; +import fr.ifremer.wao.entity.ContactImpl; +import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.entity.SampleRowDAO; +import fr.ifremer.wao.entity.WaoUser; +import fr.ifremer.wao.entity.WaoUserDAO; +import java.io.InputStream; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; +import org.apache.commons.collections.CollectionUtils; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; +import org.nuiton.topia.TopiaContext; +import org.nuiton.util.DateUtils; +import org.nuiton.util.PeriodDates; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import static org.junit.Assert.*; + +/** + * + * @author fdesbois + */ +public class ServiceSynthesisImplTest { + + private static WaoRunner runner; + + private static final Logger log = LoggerFactory.getLogger(ServiceSynthesisImplTest.class); + + private ServiceSynthesisImpl service; + + public ServiceSynthesisImplTest() { + } + + @BeforeClass + public static void setUpClass() throws Exception { + runner = new WaoRunnerTest(); + } + + @AfterClass + public static void tearDownClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + runner.start(); + service = new ServiceSynthesisImpl(); + } + + @After + public void tearDown() throws Exception { + runner.stop(); + } + + /** + * Test of getDataSampling method, of class ServiceSynthesisImpl. + */ + //@Test + public void testGetDataSampling() throws Exception { + System.out.println("getDataSampling"); + } + + /** + * Test of getBoardingBoats method, of class ServiceSynthesisImpl. + */ + @Test + public void testGetBoardingBoats() throws Exception { + log.info("getBoardingBoats"); + /** PREPARE DATA **/ + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + ServiceBoat serviceBoat = new ServiceBoatImpl(); + serviceBoat.importBoatCsv(input); + List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); + Boat boat = boats.get(0); + + List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); + Boat boat2 = boats2.get(0); + + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + Company company = companyDAO.create(Company.NAME, "TARTANPION"); + Company company2 = companyDAO.create(Company.NAME, "BIS"); + + WaoUserDAO userDAO = WaoModelDAOHelper.getWaoUserDAO(transaction); + WaoUser user = userDAO.create(WaoUser.FIRST_NAME,"Jean", WaoUser.LAST_NAME, "Michmuche", + WaoUser.COMPANY, company); + company.addWaoUser(user); + WaoUser user2 = userDAO.create(WaoUser.FIRST_NAME,"Bill", WaoUser.LAST_NAME, "Murray", + WaoUser.COMPANY, company2); + company2.addWaoUser(user2); + + transaction.commitTransaction(); + + input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + ServiceReferential serviceReferential = new ServiceReferentialImpl(); + serviceReferential.importFishingZoneCsv(input); + + input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + ServiceSampling serviceSampling = new ServiceSamplingImpl(); + serviceSampling.importSamplingPlanCsv(input); + + SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + SampleRow row = rowDAO.findByCode("2010_0001"); + + transaction.closeContext(); + + + ServiceContact serviceContact = new ServiceContactImpl(); + // First contact : OK + Contact contact1 = new ContactImpl(); + contact1.setBoat(boat); + contact1.setObserver(user); + contact1.setSampleRow(row); + contact1.setState(ContactState.BOARDING_DONE.toString()); + Date begin = DateUtils.createDate(3, 3, 2009); + contact1.setTideBeginDate(begin); + contact1.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(contact1, false); + + Contact contact2 = new ContactImpl(); + contact2.setBoat(boat); + contact2.setObserver(user); + contact2.setSampleRow(row); + contact2.setState(ContactState.BOARDING_DONE.toString()); + begin = DateUtils.createDate(3, 3, 2009); + contact2.setTideBeginDate(begin); + contact2.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(contact2, false); + + Contact contact3 = new ContactImpl(); + contact3.setBoat(boat2); + contact3.setObserver(user); + contact3.setSampleRow(row); + contact3.setState(ContactState.BOARDING_DONE.toString()); + begin = DateUtils.createDate(3, 3, 2009); + contact3.setTideBeginDate(begin); + contact3.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(contact3, false); + + /** EXEC METHOD **/ + BoardingResult result = service.getBoardingBoats(null, null); + // one boat with one boarding (177474) + assertEquals(1, result.getData().get("1").intValue()); + // one boat with two boardings (174258) + assertEquals(1, result.getData().get("2").intValue()); + assertEquals(2, result.getMaxBoardingValue()); + assertEquals(174258, result.getMaxBoardingBoat().getImmatriculation()); + } + + /** + * Test of getBoardingBoats method, of class ServiceSynthesisImpl. + */ + @Test + public void testGetNonComplianceBoardingIndicator() throws Exception { + log.info("getNonComplianceBoardingIndicator"); + /** PREPARE DATA **/ + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + ServiceBoat serviceBoat = new ServiceBoatImpl(); + serviceBoat.importBoatCsv(input); + List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); + Boat boat = boats.get(0); + + List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); + Boat boat2 = boats2.get(0); + + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + Company company = companyDAO.create(Company.NAME, "TARTANPION"); + Company company2 = companyDAO.create(Company.NAME, "BIS"); + + WaoUserDAO userDAO = WaoModelDAOHelper.getWaoUserDAO(transaction); + WaoUser user = userDAO.create(WaoUser.FIRST_NAME,"Jean", WaoUser.LAST_NAME, "Michmuche", + WaoUser.COMPANY, company); + company.addWaoUser(user); + WaoUser user2 = userDAO.create(WaoUser.FIRST_NAME,"Bill", WaoUser.LAST_NAME, "Murray", + WaoUser.COMPANY, company2); + company2.addWaoUser(user2); + + transaction.commitTransaction(); + + input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + ServiceReferential serviceReferential = new ServiceReferentialImpl(); + serviceReferential.importFishingZoneCsv(input); + + input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + ServiceSampling serviceSampling = new ServiceSamplingImpl(); + serviceSampling.importSamplingPlanCsv(input); + + SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + SampleRow row = rowDAO.findByCode("2010_0001"); + SampleRow row2 = rowDAO.findByCode("2009_0006"); + + transaction.closeContext(); + + + ServiceContact serviceContact = new ServiceContactImpl(); + // First contact : OK + Contact contact1 = new ContactImpl(); + contact1.setBoat(boat); + contact1.setObserver(user); + contact1.setSampleRow(row); + // 1 real observer over 1 + contact1.setNbObservants(1); + contact1.setState(ContactState.BOARDING_DONE.toString()); + Date begin = DateUtils.createDate(3, 3, 2009); + contact1.setTideBeginDate(begin); + contact1.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(contact1, false); + + Contact contact2 = new ContactImpl(); + contact2.setBoat(boat); + contact2.setObserver(user); + contact2.setSampleRow(row); + // 2 real observer over 1 + contact2.setNbObservants(2); + contact2.setState(ContactState.BOARDING_DONE.toString()); + begin = DateUtils.createDate(3, 3, 2009); + contact2.setTideBeginDate(begin); + contact2.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(contact2, false); + + Contact contact3 = new ContactImpl(); + contact3.setBoat(boat2); + contact3.setObserver(user2); + contact3.setSampleRow(row2); + // 1 real observer over 2 + contact3.setNbObservants(1); + contact3.setState(ContactState.BOARDING_DONE.toString()); + begin = DateUtils.createDate(3, 3, 2009); + contact3.setTideBeginDate(begin); + contact3.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(contact3, false); + + /** EXEC METHOD **/ + + // result for company TARTANPION + Map<String, Double> results = + service.getNonComplianceBoardingIndicator(company); + + assertEquals(1, results.size()); + + // 0% of non compliance + Double value = results.get(company.getName()); + assertEquals(0., value, 0); + + // result for company BIS using admin mode (no company filtered) + results = service.getNonComplianceBoardingIndicator(null); + + assertEquals(2, results.size()); + + // 100% of non compliance + value = results.get(company2.getName()); + assertEquals(1., value, 0); + } + + /** + * Test of getBoardingBoats method, of class ServiceSynthesisImpl. + */ + @Test + public void testGetContactStateStatistics() throws Exception { + log.info("getContactStateStatistics"); + /** PREPARE DATA **/ + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + ServiceBoat serviceBoat = new ServiceBoatImpl(); + serviceBoat.importBoatCsv(input); + List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); + Boat boat = boats.get(0); + + List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); + Boat boat2 = boats2.get(0); + + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + Company company = companyDAO.create(Company.NAME, "TARTANPION"); + Company company2 = companyDAO.create(Company.NAME, "BIS"); + + WaoUserDAO userDAO = WaoModelDAOHelper.getWaoUserDAO(transaction); + WaoUser user = userDAO.create(WaoUser.FIRST_NAME,"Jean", WaoUser.LAST_NAME, "Michmuche", + WaoUser.COMPANY, company); + company.addWaoUser(user); + WaoUser user2 = userDAO.create(WaoUser.FIRST_NAME,"Bill", WaoUser.LAST_NAME, "Murray", + WaoUser.COMPANY, company2); + company2.addWaoUser(user2); + + transaction.commitTransaction(); + + input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + ServiceReferential serviceReferential = new ServiceReferentialImpl(); + serviceReferential.importFishingZoneCsv(input); + + input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + ServiceSampling serviceSampling = new ServiceSamplingImpl(); + serviceSampling.importSamplingPlanCsv(input); + + SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + SampleRow row = rowDAO.findByCode("2010_0001"); + + transaction.closeContext(); + + + ServiceContact serviceContact = new ServiceContactImpl(); + + // Contacts for company TARTANPION + Contact contact1 = new ContactImpl(); + contact1.setObserver(user); + contact1.setState(ContactState.BOARDING_DONE.toString()); + Date begin = DateUtils.createDate(3, 3, 2009); + contact1.setTideBeginDate(begin); + serviceContact.saveContact(contact1, false); + + Contact contact2 = new ContactImpl(); + contact2.setObserver(user); + contact2.setState(ContactState.BOARDING_DONE.toString()); + begin = DateUtils.createDate(3, 10, 2009); + contact2.setTideBeginDate(begin); + serviceContact.saveContact(contact2, false); + + Contact contact3 = new ContactImpl(); + contact3.setObserver(user); + contact3.setState(ContactState.BOAT_REFUSED.toString()); + begin = DateUtils.createDate(3, 5, 2009); + contact3.setTopiaCreateDate(begin); + serviceContact.saveContact(contact3, false); + + // Contacts for company BIS + Contact contact4 = new ContactImpl(); + contact4.setObserver(user2); + contact4.setState(ContactState.BOARDING_EXPECTED.toString()); + begin = DateUtils.createDate(3, 5, 2009); + contact4.setTopiaCreateDate(begin); + serviceContact.saveContact(contact4, false); + + Contact contact5 = new ContactImpl(); + contact5.setObserver(user2); + contact5.setState(ContactState.BOAT_UNAVAILABLE.toString()); + begin = DateUtils.createDate(3, 3, 2010); + contact5.setTopiaCreateDate(begin); + serviceContact.saveContact(contact5, false); + + // Contact refused by program, will not be in result + Contact contact6 = new ContactImpl(); + contact6.setObserver(user2); + contact6.setState(ContactState.BOAT_UNAVAILABLE.toString()); + begin = DateUtils.createDate(3, 3, 2010); + contact6.setTopiaCreateDate(begin); + contact6.setValidationProgram(Boolean.FALSE); + serviceContact.saveContact(contact6, false); + + /** EXEC METHOD **/ + + // result for company TARTANPION with no period + Collection<ContactStateStatistics> results = + service.getContactStateStatistics(company, null); + + assertEquals(1, results.size()); + ContactStateStatistics result = (ContactStateStatistics)CollectionUtils.get(results, 0); + assertEquals(3, result.getTotal()); + Map<ContactState, Integer> data = result.getData(); + assertNotNull(data); + + assertEquals(ContactState.values().length, data.size()); + assertEquals(2, data.get(ContactState.BOARDING_DONE).intValue()); + assertEquals(1, data.get(ContactState.BOAT_REFUSED).intValue()); + + // result for company BIS using admin mode + results = service.getContactStateStatistics(null, null); + assertEquals(2, results.size()); + + result = null; + for (ContactStateStatistics stats : results) { + if (stats.getCompanyName().equals(company2.getName())) { + result = stats; + break; + } + } + + assertEquals(2, result.getTotal()); + data = result.getData(); + assertEquals(1, data.get(ContactState.BOARDING_EXPECTED).intValue()); + assertEquals(1, data.get(ContactState.BOAT_UNAVAILABLE).intValue()); + + // result for period 3/5/2009 to 3/10/2009 for BIS company + begin = DateUtils.createDate(3, 5, 2009); + Date end = DateUtils.createDate(31, 10, 2009); + PeriodDates period = new PeriodDates(begin, end); + + results = service.getContactStateStatistics(company2, period); + assertEquals(1, results.size()); + + result = (ContactStateStatistics)CollectionUtils.get(results, 0); + + assertEquals(1, result.getTotal()); + data = result.getData(); + assertEquals(1, data.get(ContactState.BOARDING_EXPECTED).intValue()); + assertEquals(0, data.get(ContactState.BOAT_UNAVAILABLE).intValue()); + } + + /** + * Test of getBoardingBoats method, of class ServiceSynthesisImpl. + */ + @Test + public void testGetContactDataInputDateReactivity() throws Exception { + log.info("getContactDataInputDateReactivity"); + /** PREPARE DATA **/ + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + ServiceBoat serviceBoat = new ServiceBoatImpl(); + serviceBoat.importBoatCsv(input); + List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); + Boat boat = boats.get(0); + + List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); + Boat boat2 = boats2.get(0); + + TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); + + CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); + Company company = companyDAO.create(Company.NAME, "TARTANPION"); + Company company2 = companyDAO.create(Company.NAME, "BIS"); + + WaoUserDAO userDAO = WaoModelDAOHelper.getWaoUserDAO(transaction); + WaoUser user = userDAO.create(WaoUser.FIRST_NAME,"Jean", WaoUser.LAST_NAME, "Michmuche", + WaoUser.COMPANY, company); + company.addWaoUser(user); + WaoUser user2 = userDAO.create(WaoUser.FIRST_NAME,"Bill", WaoUser.LAST_NAME, "Murray", + WaoUser.COMPANY, company2); + company2.addWaoUser(user2); + + transaction.commitTransaction(); + + input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + ServiceReferential serviceReferential = new ServiceReferentialImpl(); + serviceReferential.importFishingZoneCsv(input); + + input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + ServiceSampling serviceSampling = new ServiceSamplingImpl(); + serviceSampling.importSamplingPlanCsv(input); + + SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); + SampleRow row = rowDAO.findByCode("2010_0001"); + SampleRow row2 = rowDAO.findByCode("2009_0006"); + + transaction.closeContext(); + + + ServiceContact serviceContact = new ServiceContactImpl(); + // First contact : OK + Contact contact1 = new ContactImpl(); + contact1.setObserver(user); + Date begin = DateUtils.createDate(3, 3, 2009); + contact1.setTideBeginDate(begin); + Date inputDate = DateUtils.createDate(15, 4, 2009); + contact1.setDataInputDate(inputDate); + contact1.setState(ContactState.BOARDING_DONE.toString()); + contact1.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(contact1, false); + + Contact contact2 = new ContactImpl(); + contact2.setObserver(user); + begin = DateUtils.createDate(3, 3, 2009); + contact2.setTideBeginDate(begin); + inputDate = DateUtils.createDate(15, 3, 2009); + contact2.setDataInputDate(inputDate); + contact2.setState(ContactState.BOARDING_DONE.toString()); + contact2.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(contact2, false); + + Contact contact3 = new ContactImpl(); + contact3.setObserver(user2); + begin = DateUtils.createDate(3, 3, 2009); + contact3.setTideBeginDate(begin); + contact3.setDataInputDate(begin); + contact3.setState(ContactState.BOARDING_DONE.toString()); + contact3.setValidationCompany(Boolean.TRUE); + serviceContact.saveContact(contact3, false); + + /** EXEC METHOD **/ + + PeriodDates period = new PeriodDates(begin, begin); + + // result for company TARTANPION + Collection<ContactAverageReactivity> results = + service.getContactDataInputDateReactivity(company, period); + + assertEquals(1, results.size()); + + // 12 days for contact1 + 43 days for contact2 / 2 = 27.5 days + ContactAverageReactivity res = + (ContactAverageReactivity)CollectionUtils.get(results, 0); + + assertEquals(27., res.getResult(), 0.01); + + // result for company BIS using admin mode (no company filtered) + results = service.getContactDataInputDateReactivity(null, period); + + // 0 days for contact3 / 1 = O days + res = (ContactAverageReactivity)CollectionUtils.get(results, 0); + + assertEquals(0, res.getResult(), 0.01); + } + +} \ No newline at end of file Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: svn:mergeinfo + Added: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java (rev 0) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -0,0 +1,163 @@ + +package fr.ifremer.wao.service; + +import fr.ifremer.wao.WaoRunner; +import fr.ifremer.wao.WaoRunnerTest; +import fr.ifremer.wao.bean.UserRole; +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.CompanyImpl; +import fr.ifremer.wao.entity.WaoUser; +import fr.ifremer.wao.entity.WaoUserImpl; +import java.util.List; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author fdesbois + */ +public class ServiceUserImplTest { + + private static WaoRunner runner; + + private static final Logger logger = + LoggerFactory.getLogger(ServiceUserImplTest.class); + + private ServiceUserImpl service; + + public ServiceUserImplTest() { + } + + @BeforeClass + public static void setUpClass() throws Exception { + runner = new WaoRunnerTest(); + } + + @AfterClass + public static void tearDownClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + runner.start(); + service = new ServiceUserImpl(); + } + + @After + public void tearDown() throws Exception { + runner.stop(); + } + + /** + * Test of connect method, of class ServiceUserImpl. + */ + //@Test + public void testConnect() throws Exception { + System.out.println("connect"); + } + + /** + * Test of forgetPassword method, of class ServiceUserImpl. + */ + //@Test + public void testForgetPassword() throws Exception { + System.out.println("forgetPassword"); + } + + /** + * Test of createUpdateUser method, of class ServiceUserImpl. + */ + //@Test + public void testCreateUpdateUser() throws Exception { + System.out.println("createUpdateUser"); + } + + /** + * Test of deleteUser method, of class ServiceUserImpl. + */ + //@Test + public void testDeleteUser() throws Exception { + System.out.println("deleteUser"); + } + + /** + * Test of createUpdateCompany method, of class ServiceUserImpl. + */ + //@Test + public void testCreateUpdateCompany() throws Exception { + System.out.println("createUpdateCompany"); + } + + /** + * Test of getCompanies method, of class ServiceUserImpl. + */ + //@Test + public void testGetCompanies() throws Exception { + System.out.println("getCompanies"); + } + + /** + * Test of getObservers method, of class ServiceUserImpl. + */ + @Test + public void testGetObservers() throws Exception { + logger.info("## START ## getObservers"); + + Company company = new CompanyImpl(); + company.setName("TARTANPION"); + service.createUpdateCompany(company); + + WaoUser user1 = new WaoUserImpl(); + user1.setLogin("user1"); + user1.setFirstName("Jean"); + user1.setLastName("Michmuche"); + user1.setRole(UserRole.OBSERVER.ordinal()); + user1.setCompany(company); + user1.setActive(true); + service.createUpdateUser(user1, true); + + WaoUser user2 = new WaoUserImpl(); + user2.setLogin("user2"); + user2.setFirstName("Jack"); + user2.setLastName("Pot"); + user2.setRole(UserRole.ADMIN.ordinal()); + user2.setCompany(company); + user2.setActive(true); + service.createUpdateUser(user2, true); + + WaoUser user3 = new WaoUserImpl(); + user3.setLogin("user3"); + user3.setFirstName("Denis"); + user3.setLastName("La Malice"); + user3.setRole(UserRole.OBSERVER.ordinal()); + user3.setCompany(company); + user3.setActive(false); + service.createUpdateUser(user3, true); + + WaoUser user4 = new WaoUserImpl(); + user4.setLogin("user4"); + user4.setFirstName("Ben"); + user4.setLastName("Hur"); + // The coordinator is also an observer + user4.setRole(UserRole.COORDINATOR.ordinal()); + user4.setCompany(company); + user4.setActive(true); + service.createUpdateUser(user4, true); + + /** EXEC METHOD **/ + List<WaoUser> users = service.getObservers(false); + // user1, user3 and user4 + Assert.assertEquals(3, users.size()); + + users = service.getObservers(true); + // user1 and user4 + Assert.assertEquals(2, users.size()); + } + +} \ No newline at end of file Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/services/ActivityCalendarImportTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/services/ActivityCalendarImportTest.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/services/ActivityCalendarImportTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -1,116 +0,0 @@ -/* - * *##% - * Wao :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program 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 Lesser Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * ##%* - */ - -package fr.ifremer.wao.service; - -import fr.ifremer.wao.WaoContext; -import fr.ifremer.wao.WaoException; -import fr.ifremer.wao.WaoRunner; -import fr.ifremer.wao.WaoRunnerTest; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.util.zip.GZIPInputStream; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import static org.junit.Assert.*; - -/** - * ActivityCalendarImport - * - * Created: 11 déc. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ActivityCalendarImportTest { - - private static WaoRunner runner; - - private static final Logger log = LoggerFactory.getLogger(ActivityCalendarImportTest.class); - - public ActivityCalendarImportTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - runner = new WaoRunnerTest(); - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() throws WaoException { - runner.start(); - } - - @After - public void tearDown() throws WaoException { - runner.stop(); - } - - /** - * Test of run method, of class ActivityCalendarImport. - */ - @Test - public void testRun() throws IOException, InterruptedException, WaoException { - log.info("run"); - - ServiceBoat serviceBoat = new ServiceBoatImpl(); - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - serviceBoat.importBoatCsv(input); - - input = getClass().getResourceAsStream("/import/activity.csv.gz"); - input = new GZIPInputStream(input); - - ActivityCalendarImport instance = new ActivityCalendarImport(input); - - Thread t = new Thread(instance); - t.start(); - t.join(); - - String filename = WaoContext.getProperty( - WaoContext.PROP_FILENAME_LOG_ACTIVITY_IMPORT); - - File file = new File(filename); - Assert.assertTrue(file.exists()); - - BufferedReader reader = new BufferedReader(new FileReader(file)); - String line = null; - while ((line = reader.readLine()) != null) { - log.info(line); - } - } - -} Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceBoatImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceBoatImplTest.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceBoatImplTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -1,408 +0,0 @@ -/* - * *##% - * Wao :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program 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 Lesser Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * ##%* - */ - -package fr.ifremer.wao.service; - -import fr.ifremer.wao.WaoException; -import fr.ifremer.wao.WaoModelDAOHelper; -import fr.ifremer.wao.WaoRunner; -import fr.ifremer.wao.WaoContext; -import fr.ifremer.wao.bean.BoatFilterImpl; -import fr.ifremer.wao.WaoRunnerTest; -import fr.ifremer.wao.bean.BoatFilter; -import fr.ifremer.wao.bean.CompanyBoatInfos; -import fr.ifremer.wao.bean.ContactState; -import fr.ifremer.wao.entity.ActivityCalendar; -import fr.ifremer.wao.entity.ActivityCalendarDAO; -import fr.ifremer.wao.entity.Boat; -import fr.ifremer.wao.entity.BoatDAO; -import fr.ifremer.wao.entity.BoatInfos; -import fr.ifremer.wao.entity.Company; -import fr.ifremer.wao.entity.CompanyDAO; -import fr.ifremer.wao.entity.CompanyImpl; -import fr.ifremer.wao.entity.Contact; -import fr.ifremer.wao.entity.ElligibleBoat; -import fr.ifremer.wao.entity.SampleRow; -import fr.ifremer.wao.entity.SampleRowDAO; -import fr.ifremer.wao.entity.SampleRowLogImpl; -import fr.ifremer.wao.entity.WaoUser; -import fr.ifremer.wao.entity.WaoUserImpl; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import static org.junit.Assert.*; - -/** - * - * @author fdesbois - */ -public class ServiceBoatImplTest { - - private static WaoRunner runner; - - private static final Logger log = LoggerFactory.getLogger(ServiceBoatImplTest.class); - - private ServiceBoatImpl service; - - public ServiceBoatImplTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - runner = new WaoRunnerTest(); - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() throws Exception { - runner.start(); - service = new ServiceBoatImpl(); - } - - @After - public void tearDown() throws Exception { - runner.stop(); - } - - /** - * Test of getBoatsByFilter method, of class ServiceBoatImpl. - * @throws Exception - */ - @Test - public void testGetBoatsByFilter() throws Exception { - log.info("getBoatsByFilter"); - - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - service.importBoatCsv(input); - - ServiceUser serviceUser = new ServiceUserImpl(); - Company company = new CompanyImpl(); - company.setName("TARTANPION"); - serviceUser.createUpdateCompany(company); - WaoUser user = new WaoUserImpl(); - user.setLogin("login"); - user.setFirstName("Jean"); - user.setLastName("Michmuche"); - user.setCompany(company); - serviceUser.createUpdateUser(user, true); - List<SampleRow> rows = prepareSampleRows(company); - - BoatFilter filter = new BoatFilterImpl(); - - // Exec with no filter - Map<Integer, Boat> boats = service.getBoatsByFilter(filter); - assertEquals(6, boats.size()); - // first boat of the file - Boat boat = boats.get(273129); - assertNotNull(boat); - - // Exec with filter on Immatriculation - filter.setBoatImmatriculation(273129); - boats = service.getBoatsByFilter(filter); - assertEquals(1, boats.size()); - - // Exec with filter on Name : start with "M" - filter = new BoatFilterImpl(); - filter.setBoatName("M"); - boats = service.getBoatsByFilter(filter); - assertEquals(2, boats.size()); - - // Exec with filter on DistrictCode - filter = new BoatFilterImpl(); - filter.setBoatDistrictCode("UN"); - boats = service.getBoatsByFilter(filter); - assertEquals(4, boats.size()); - - // Exec with filter on SampleRowCode and company - filter = new BoatFilterImpl(); - filter.setSampleRow(rows.get(0)); // Code = 2009_03 - filter.setCompany(company); - boats = service.getBoatsByFilter(filter); - assertEquals(2, boats.size()); - } - - @Test - public void testGetBoats() throws Exception { - log.info("getBoats"); - - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - service.importBoatCsv(input); - - String immatriculations = "174592 978419 273129"; - List<Boat> results = service.getBoatsByImmatriculations(immatriculations); - assertEquals(3, results.size()); - immatriculations = "174592 \\ èè-- ç999 àà \n\n 978419 00 ççç 273129"; - results = service.getBoatsByImmatriculations(immatriculations); - assertEquals(3, results.size()); - } - - /** - * Test of getBoatInfos method, of class ServiceBoatImpl. - * @throws Exception - */ - //@Test - public void testGetBoatInfos() throws Exception { - } - - - @Test - public void testGetElligibleBoats() throws Exception { - log.info("getElligibleBoats"); - - /** PREPARE DATA **/ - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - service.importBoatCsv(input); - - Company company = new CompanyImpl(); - company.setName("TARTANPION"); - prepareSampleRows(company); - - /** EXEC METHOD **/ - - CompanyBoatInfos result = service.getCompanyBoatInfos(174592, company); - assertNotNull(result); - assertEquals(174592, result.getBoatInfos().getBoat().getImmatriculation()); - assertEquals("TARTANPION", result.getCompany().getName()); - // only row1 is getting - assertEquals(1, result.getElligibleBoatsValues().size()); - } - - private List<SampleRow> prepareSampleRows(Company company) - throws WaoException, TopiaException { - ServiceReferential serviceReferential = new ServiceReferentialImpl(); - InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - serviceReferential.importFishingZoneCsv(input); - - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - // Create a company - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - WaoContext.prepareTopiaId(Company.class, company); - companyDAO.update(company); - companyDAO.create(Company.NAME, "BIS"); - transaction.commitTransaction(); - - ServiceSampling serviceSampling = new ServiceSamplingImpl(); - input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - serviceSampling.importSamplingPlanCsv(input); - - // Get two SampleRows : 2009_3 & 2010_4 - SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row1 = rowDAO.findByCode("2009_0003"); - row1.getProfession(); - SampleRow row2 = rowDAO.findByCode("2010_0004"); - row2.getProfession(); - - transaction.commitTransaction(); - - transaction.closeContext(); - - // Set company and elligibleBoats '174592 177474' for row1 - List<Boat> boats = service.getBoatsByImmatriculations("174592 177474"); - row1.setCompany(company); - serviceSampling.createUpdateSampleRow(row1, boats, new SampleRowLogImpl()); - // Set company only for row2 - row2.setCompany(company); - serviceSampling.createUpdateSampleRow(row2, new ArrayList<Boat>(), new SampleRowLogImpl()); - - return Arrays.asList(new SampleRow[] { row1, row2}); - } - - @Test - public void testCreateUpdateBoatInfos() throws Exception { - log.info("createUpdateBoatInfos"); - - /** PREPARE DATA **/ - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - service.importBoatCsv(input); - - List<Boat> boats = service.getBoatsByImmatriculations("174592"); - Boat boat = boats.get(0); - - // Two rows created : 2009_3 & 2010_4 and one Company : "TARTANPION" - ServiceUser serviceUser = new ServiceUserImpl(); - Company company = new CompanyImpl(); - company.setName("TARTANPION"); - serviceUser.createUpdateCompany(company); - WaoUser user = new WaoUserImpl(); - user.setLogin("user"); - user.setFirstName("Jean"); - user.setLastName("Michmuche"); - user.setCompany(company); - serviceUser.createUpdateUser(user, true); - List<SampleRow> rows = prepareSampleRows(company); - - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_0001"); - row.getCompany(); - row.getProfession(); - transaction.closeContext(); - - ServiceContact serviceContact = new ServiceContactImpl(); - Contact contact1 = serviceContact.getNewContact(user, row, boat); - contact1.setState(ContactState.CONTACT_START.toString()); - serviceContact.saveContact(contact1, false); - - CompanyBoatInfos companyBoatInfos = service.getCompanyBoatInfos(174592, company); - - /** EXEC METHOD **/ - BoatInfos boatInfos = companyBoatInfos.getBoatInfos(); - - boatInfos.setDup(2); - boatInfos.setContactFirstName("Jean-Paul"); - boatInfos.setContactLastName("Belmondo"); - - /** TEST1 **/ - // ajout d'une nouvelle ligne "2010_4" non mise en elligible auparavent - companyBoatInfos.setNewElligibleBoat(rows.get(1)); - // ligne deja elligible mise en inactive - companyBoatInfos.removeElligibleBoat("2009_0003"); - - service.createUpdateCompanyBoatInfos(companyBoatInfos); - - companyBoatInfos = service.getCompanyBoatInfos(174592, company); - - Map<String, ElligibleBoat> results = companyBoatInfos.getElligibleBoats(); - assertEquals(2, results.size()); - - ElligibleBoat elligible = companyBoatInfos.getElligibleBoat("2009_0003"); - assertNotNull(elligible.getCompanyActive()); - assertFalse(elligible.getCompanyActive()); - - elligible = companyBoatInfos.getElligibleBoat("2010_0004"); - assertTrue(elligible.getCompanyActive()); - - /** TEST2 **/ - // Suppression ligne lié elligible pour la société - companyBoatInfos.removeElligibleBoat("2010_0004"); - // Reactivation ligne mise en inactive juste avant - companyBoatInfos.activeElligibleBoat("2009_0003"); - - service.createUpdateCompanyBoatInfos(companyBoatInfos); - - companyBoatInfos = service.getCompanyBoatInfos(174592, company); - - results = companyBoatInfos.getElligibleBoats(); - assertEquals(1, results.size()); - - elligible = companyBoatInfos.getElligibleBoat("2009_0003"); - assertNull(elligible.getCompanyActive()); - assertTrue(elligible.getGlobalActive()); - - /** EXEC METHOD **/ - Contact result = companyBoatInfos.getLastContact(); - Assert.assertEquals(contact1.getTopiaId(), result.getTopiaId()); - } - - /** - * Test of importBoatCsv method, of class ServiceBoatImpl. - * @throws Exception - */ - @Test - public void testImportBoatCsv() throws Exception { - log.info("importBoatCsv"); - - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - int[] nbBoats = service.importBoatCsv(input); - assertEquals(6, nbBoats[0]); - // new boats added - assertEquals(6, nbBoats[1]); - - // Check boat 174592 is active &nd boat 177474 is inactive - List<Boat> results = service.getBoatsByImmatriculations("174592 177474"); - assertTrue(results.get(0).getActive()); - assertFalse(results.get(1).getActive()); - } - - @Test - public void testGetLastActivityCalendar() throws Exception { - log.info("getLastActivityCalendar"); - - /** PREPARE DATA **/ - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - BoatDAO boatDAO = WaoModelDAOHelper.getBoatDAO(transaction); - Boat boat = boatDAO.create( - Boat.NAME, "TESTBOAT", - Boat.IMMATRICULATION, 174592); - - ActivityCalendarDAO dao = WaoModelDAOHelper.getActivityCalendarDAO(transaction); - - ActivityCalendar calendar1 = dao.create( - ActivityCalendar.BOAT, boat, - ActivityCalendar.YEAR, 2008); - - ActivityCalendar calendar2 = dao.create( - ActivityCalendar.BOAT, boat, - ActivityCalendar.YEAR, 2007); - - ActivityCalendar calendar3 = dao.create( - ActivityCalendar.BOAT, boat, - ActivityCalendar.YEAR, 2009); - - transaction.commitTransaction(); - transaction.closeContext(); - - /** EXEC METHOD **/ - WaoUser user = new WaoUserImpl(); - user.setFirstName("Jean"); - user.setLastName("Michmuche"); - Company company = new CompanyImpl(); - company.setName("TARTANPION"); - user.setCompany(company); - - ActivityCalendar result = service.getLastActivityCalendar(user, boat); - Assert.assertNotNull(result); - Assert.assertEquals(2009, result.getYear()); - - String filename = WaoContext.getProperty( - WaoContext.PROP_FILENAME_LOG_ACTIVITY_ACCESS); - - File file = new File(filename); - Assert.assertTrue(file.exists()); - - BufferedReader reader = new BufferedReader(new FileReader(file)); - String line = reader.readLine(); - Assert.assertTrue(line.contains("Jean Michmuche")); - Assert.assertTrue(line.contains("TARTANPION")); - Assert.assertTrue(line.contains("TESTBOAT")); - Assert.assertTrue(line.contains("174592")); - } - -} Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceReferentialImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceReferentialImplTest.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceReferentialImplTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -1,155 +0,0 @@ -/* - * *##% - * Wao :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program 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 Lesser Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * ##%* - */ - -package fr.ifremer.wao.service; - -import fr.ifremer.wao.WaoException; -import fr.ifremer.wao.WaoRunner; -import fr.ifremer.wao.WaoRunnerTest; -import fr.ifremer.wao.bean.SamplingFilter; -import fr.ifremer.wao.bean.SamplingFilterImpl; -import fr.ifremer.wao.entity.FishingZone; -import java.io.InputStream; -import java.util.List; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import static org.junit.Assert.*; - -/** - * - * @author fdesbois - */ -public class ServiceReferentialImplTest { - - private static WaoRunner runner; - - private static final Logger log = LoggerFactory.getLogger(ServiceReferentialImplTest.class); - - private ServiceReferentialImpl service; - - public ServiceReferentialImplTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - runner = new WaoRunnerTest(); - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() throws Exception { - runner.start(); - service = new ServiceReferentialImpl(); - } - - @After - public void tearDown() throws Exception { - runner.stop(); - } - - /** - * Test of getFacades method, of class ServiceReferentialImpl. - */ - @Test - public void testGetFacades() throws Exception { - log.info("getFacades"); - - InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - service.importFishingZoneCsv(input); - - List<String> facades = service.getFacades(new SamplingFilterImpl()); - assertEquals(3, facades.size()); - assertTrue(facades.contains("Atlantique")); - assertTrue(facades.contains("Mer du Nord")); - assertTrue(facades.contains("Méditerranée")); - } - - @Test - public void testGetSectors() throws Exception { - log.info("getSectors"); - - InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - service.importFishingZoneCsv(input); - - SamplingFilter filter = new SamplingFilterImpl(); - - List<String> sectors = service.getSectors(filter); - assertEquals(5, sectors.size()); - assertTrue(sectors.contains("Manche")); - assertTrue(sectors.contains("Mer du Nord")); - assertTrue(sectors.contains("Manche Ouest")); - assertTrue(sectors.contains("Golfe de Gascogne")); - assertTrue(sectors.contains("Méditerranée")); - - filter.setFacadeName("Atlantique"); - - sectors = service.getSectors(filter); - assertEquals(2, sectors.size()); - assertTrue(sectors.contains("Manche Ouest")); - assertTrue(sectors.contains("Golfe de Gascogne")); - } - - /** - * Test of getProfessions method, of class ServiceReferentialImpl. - */ - //@Test - public void testGetProfessions() throws Exception { - System.out.println("getProfessions"); - } - - /** - * Test of getFishingZones method, of class ServiceReferentialImpl. - * @throws WaoException if error during import or getFishingZones - */ - @Test - public void testGetFishingZones() throws WaoException { - log.info("getFishingZones"); - - InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - int nbNew = service.importFishingZoneCsv(input); - // nbNew = 6 - - List<FishingZone> results = service.getFishingZones(); - assertEquals(nbNew, results.size()); - } - - /** - * Test of importFishingZoneCsv method, of class ServiceReferentialImpl. - * @throws WaoException if import error - */ - @Test - public void testImportFishingZoneCsv() throws WaoException { - log.info("importFishingZoneCsv"); - - InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - int result = service.importFishingZoneCsv(input); - assertEquals(6, result); - } - -} Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSamplingImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSamplingImplTest.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSamplingImplTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -1,589 +0,0 @@ -/* - * *##% - * Wao :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program 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 Lesser Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * ##%* - */ - -package fr.ifremer.wao.service; - -import fr.ifremer.wao.WaoException; -import fr.ifremer.wao.WaoModelDAOHelper; -import fr.ifremer.wao.WaoRunner; -import fr.ifremer.wao.WaoContext; -import fr.ifremer.wao.bean.ImportResults; -import fr.ifremer.wao.bean.SamplingFilter; -import fr.ifremer.wao.bean.SamplingFilterImpl; -import fr.ifremer.wao.WaoRunnerTest; -import fr.ifremer.wao.bean.FacadeRow; -import fr.ifremer.wao.entity.Boat; -import fr.ifremer.wao.entity.Company; -import fr.ifremer.wao.entity.CompanyDAO; -import fr.ifremer.wao.entity.ElligibleBoat; -import fr.ifremer.wao.entity.ElligibleBoatDAO; -import fr.ifremer.wao.entity.FishingZone; -import fr.ifremer.wao.entity.FishingZoneDAO; -import fr.ifremer.wao.entity.Profession; -import fr.ifremer.wao.entity.ProfessionDAO; -import fr.ifremer.wao.entity.ProfessionImpl; -import fr.ifremer.wao.entity.SampleMonth; -import fr.ifremer.wao.entity.SampleMonthImpl; -import fr.ifremer.wao.entity.SampleRow; -import fr.ifremer.wao.entity.SampleRowDAO; -import fr.ifremer.wao.entity.SampleRowLogImpl; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.List; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.util.DateUtils; -import org.nuiton.util.PeriodDates; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import static org.junit.Assert.*; - -/** - * ServiceSamplingImplTest - * - * Created: 30 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ServiceSamplingImplTest { - - private static WaoRunner runner; - - private static final Logger log = LoggerFactory.getLogger(ServiceSamplingImplTest.class); - - private ServiceSamplingImpl service; - - public ServiceSamplingImplTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - runner = new WaoRunnerTest(); - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() throws Exception { - runner.start(); - service = new ServiceSamplingImpl(); - } - - @After - public void tearDown() throws Exception { - runner.stop(); - } - - @Test - public void testCreateUpdateSampleRow() throws Exception { - log.info("createUpdateSampleRow"); - - /** PREPARE DATA **/ - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - List<FishingZone> zones = prepareFishingZones(transaction); - - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - ServiceBoat serviceBoat = new ServiceBoatImpl(); - serviceBoat.importBoatCsv(input); - - transaction.closeContext(); - - // CREATE - Profession profession1 = new ProfessionImpl(); - profession1.setCodeDCF5("OORR-BDP"); - profession1.setMeshSize(">=18"); - profession1.setSize("90-1000"); - profession1.setLibelle("Chalutage de poissons tubes"); - - List<SampleMonth> months = new ArrayList<SampleMonth>(); - for (int i = 0; i < 12; i++) { - SampleMonth month = new SampleMonthImpl(); - Calendar calendar = new GregorianCalendar(2009, i, 1); - month.setPeriodDate(calendar.getTime()); - month.setExpectedTidesValue(3); - months.add(month); - } - for (int i = 0; i < 3; i++) { - SampleMonth month = new SampleMonthImpl(); - Calendar calendar = new GregorianCalendar(2010, i, 1); - month.setPeriodDate(calendar.getTime()); - month.setExpectedTidesValue(4); - months.add(month); - } - - SampleRow row = service.getNewSampleRow(); - row.setCode("2010_03"); - row.setNbObservants(3); - row.setAverageTideTime(2.5); - row.setProgramName("DPMA-2009"); - row.setPeriodBegin(DateUtils.createDate(1, 1, 2009)); - row.setPeriodEnd(DateUtils.createDate(31, 3, 2010)); - row.setProfession(profession1); - row.setSampleMonth(months); - row.setFishingZone(zones); - row.setFishingZonesInfos("port tres loin du champ"); - - /** EXEC CREATE **/ - List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174592 978419 273129"); - service.createUpdateSampleRow(row, boats, new SampleRowLogImpl()); - assertNotNull(row.getTopiaId()); - assertNotNull(row.getProfession().getTopiaId()); - - SampleRow result = service.getSampleRow(row.getTopiaId()); - assertEquals(3, result.getFishingZone().size()); - assertEquals(3, result.getElligibleBoat().size()); - - // TEST FOR DELETE ELLIGIBLE BOAT - boats.remove(2); - service.createUpdateSampleRow(result, boats, new SampleRowLogImpl()); - - result = service.getSampleRow(row.getTopiaId()); - assertEquals(2, result.getElligibleBoat().size()); - - } - - /** - * Test of getSampleRowsOrderedByFishingZone method, of class ServiceSamplingImpl. - */ - @Test - public void testGetSampleRowsOrderedByFishingZone() throws Exception { - log.info("getSampleRowsOrderedByFishingZone"); - - - /** PREPARE DATA **/ - - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - List<FishingZone> zones = prepareFishingZones(transaction); - - //Program program1 = programDAO.create(Program.NAME, "DPMA-2009"); - Date dateBegin1 = DateUtils.createDate(1, 1, 2009); - Date dateEnd1 = DateUtils.createDate(1, 3, 2010); - PeriodDates period1 = new PeriodDates(dateBegin1, dateEnd1); - - //Program program2 = programDAO.create(Program.NAME, "PPDA-2008"); - Date dateBegin2 = DateUtils.createDate(1, 1, 2008); - Date dateEnd2 = DateUtils.createDate(1, 12, 2008); - PeriodDates period2 = new PeriodDates(dateBegin2, dateEnd2); - - SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction); - - SampleRow row1 = dao.create(); - row1.setCode("2010_0001"); - row1.addFishingZone(zones.get(2)); - row1.setProgramName("DPMA-2009"); - row1.setPeriod(period1); - - log.info(row1.getCode() + " :: " + row1.getFacade() + " :: " + row1.getSectors()); - - SampleRow row2 = dao.create(); - row2.setCode("2010_0002"); - row2.addFishingZone(zones.get(0)); - row2.setProgramName("DPMA-2009"); - row2.setPeriod(period1); - - log.info(row2.getCode() + " :: " + row2.getFacade() + " :: " + row2.getSectors()); - - SampleRow row3 = dao.create(); - row3.setCode("2010_0003"); - row3.addFishingZone(zones.get(1)); - row3.addFishingZone(zones.get(2)); - row3.addFishingZone(zones.get(0)); - row3.setProgramName("PPDA-2008"); - row3.setPeriod(period2); - - log.info(row3.getCode() + " :: " + row3.getFacade() + " :: " + row3.getSectors()); - - SampleRow row4 = dao.create(); - row4.setCode("2010_0004"); - row4.addFishingZone(zones.get(0)); // Mer du Nord :: Manche - row4.setProgramName("DPMA-2009"); - row4.setPeriod(period1); - - log.info(row4.getCode() + " :: " + row4.getFacade() + " :: " + row4.getSectors()); - - transaction.commitTransaction(); - - /** EXEC service method **/ - - // FIRST TEST : - // ORDER by FishingZone (facadeName, sectorName, districtCode) - // BIG PERIOD, included program1 and program2 - // NO COMPANY (= null) - Calendar begin = new GregorianCalendar(2000, 0, 1, 0, 0, 0); - Calendar end = new GregorianCalendar(2020, 11, 31, 0, 0, 0); - PeriodDates period = new PeriodDates(begin, end); - // RESULT : [2010_0002, 2010_0004, 2010_0001, 2010_0003] - FacadeRow facade = service.getSampleRowsOrderedByFishingZone(period, null); - List<SampleRow> rows = facade.getValues(); - assertEquals(4, rows.size()); - SampleRow resultRow0 = rows.get(0); - assertEquals("2010_0002", resultRow0.getCode()); - SampleRow resultRow1 = rows.get(1); - assertEquals("2010_0004", resultRow1.getCode()); - -// List<FishingZone> zoneRow1 = resultRow1.getFishingZone(); -// assertEquals(3, zoneRow1.size()); -// FishingZone resultZone0 = zoneRow1.get(0); -// assertEquals("VIIb", resultZone0.getDistrictCode()); -// FishingZone resultZone1 = zoneRow1.get(1); -// assertEquals("VI", resultZone1.getDistrictCode()); -// FishingZone resultZone2 = zoneRow1.get(2); -// assertEquals("V", resultZone2.getDistrictCode()); - - SampleRow resultRow2 = rows.get(2); - assertEquals("2010_0003", resultRow2.getCode()); - SampleRow resultRow3 = rows.get(3); - assertEquals("2010_0001", resultRow3.getCode()); - - // SECOND TEST : - // ORDER by FishingZone (facadeName, sectorName, districtCode) - // BIG PERIOD, not included program2 - // NO COMPANY (= null) - begin = new GregorianCalendar(2009, 0, 1, 0, 0, 0); - end = new GregorianCalendar(2020, 11, 31, 0, 0, 0); - period = new PeriodDates(begin, end); - // RESULT : [2010_0002, 2010_0004, 2010_0001] - facade = service.getSampleRowsOrderedByFishingZone(period, null); - rows = facade.getValues(); - assertEquals(3, rows.size()); - resultRow0 = rows.get(0); - assertEquals("2010_0002", resultRow0.getCode()); - resultRow1 = rows.get(1); - assertEquals("2010_0004", resultRow1.getCode()); - resultRow2 = rows.get(2); - assertEquals("2010_0001", resultRow2.getCode()); - - } - - private List<FishingZone> prepareFishingZones(TopiaContext transaction) throws WaoException, TopiaException { - - FishingZoneDAO fishingZoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); - - FishingZone fishingZone1 = fishingZoneDAO.create(); - fishingZone1.setFacadeName("Atlantique"); - fishingZone1.setSectorName("Secteur Mer Celtique et Ouest Irlande centré Pays bigouden"); - fishingZone1.setDistrictCode("VIIb"); - - FishingZone fishingZone2 = fishingZoneDAO.create(); - fishingZone2.setFacadeName("Manche"); - fishingZone2.setSectorName("Secteur Cherbourg Honfleur centré sur Port-en-Bessin"); - fishingZone2.setDistrictCode("VI"); - - FishingZone fishingZone3 = fishingZoneDAO.create(); - fishingZone3.setFacadeName("Manche"); - fishingZone3.setSectorName("Secteur du Havre à Dunkerque centré sur Boulogne"); - fishingZone3.setDistrictCode("V"); - - transaction.commitTransaction(); - - return fishingZoneDAO.findAll(); - } - - public void testGetSampleRowsForUser() throws Exception { - log.info("getSampleRowsForUser"); - /** PREPARE DATA **/ - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); - FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); - FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); - FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); - - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - Company company = companyDAO.create(Company.NAME, "TARTANPION"); - Calendar begin = new GregorianCalendar(2009,8,1); - Calendar end = new GregorianCalendar(2010,11,31); - SampleRowDAO sampleRowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = sampleRowDAO.create( - SampleRow.CODE,"2010_178", - SampleRow.COMPANY,company, - SampleRow.PROGRAM_NAME, "DPMA-2009", - SampleRow.PERIOD_BEGIN, begin.getTime(), - SampleRow.PERIOD_END, end.getTime()); - - - transaction.commitTransaction(); - transaction.closeContext(); - - InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - service.importSamplingPlanCsv(input); - - /** EXEC METHOD **/ - SamplingFilter filter = new SamplingFilterImpl(); -// User admin = new UserImpl(); -// admin.setAdmin(true); -// filter.setCompany() - filter.setNbMonthFinishedFromToday(0); - List<SampleRow> results = service.getSampleRowsByFilter(filter); - // total in file : 11, 1 refused, 1 finished - assertEquals(9, results.size()); - -// User user = new UserImpl(); -// user.setCompany(company); - filter.setCompany(company); - results = service.getSampleRowsByFilter(filter); - assertEquals(1, results.size()); - } - - /** - * Test of getHistoric method, of class ServiceSamplingImpl. - */ - //@Test - public void testGetHistoric() throws Exception { - System.out.println("getHistoric"); - } - - /** - * Test of getSampleRow method, of class ServiceSamplingImpl. - */ - //@Test - public void testGetSampleRow() throws Exception { - System.out.println("getSampleRow"); - } - - @Test - public void testGetNewProfession() throws Exception { - log.info("getNewProfession"); - - /** PREPARE DATA **/ - - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - ProfessionDAO dao = WaoModelDAOHelper.getProfessionDAO(transaction); - - Profession profession = dao.create( - Profession.CODE_DCF5, "OBR", - Profession.LIBELLE, "Fileyage en barre", - Profession.MESH_SIZE, "< 80", - Profession.OTHER, "90mm", - Profession.SPECIES, "barre, lieu noir, saumon des plages"); - - transaction.commitTransaction(); - transaction.closeContext(); - - /** EXEC METHOD **/ - Profession newProfession = service.getNewProfession(profession); - Assert.assertNotSame(profession, newProfession); - Assert.assertEquals("OBR", newProfession.getCodeDCF5()); - Assert.assertEquals("Fileyage en barre", newProfession.getLibelle()); - Assert.assertEquals("< 80", newProfession.getMeshSize()); - Assert.assertEquals("90mm", newProfession.getOther()); - Assert.assertEquals("barre, lieu noir, saumon des plages", newProfession.getSpecies()); - - } - - @Test - public void testDeleteSampleRow() throws Exception { - log.info("deleteSampleRow"); - - /** PREPARE DATA **/ - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); - FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); - FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); - FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); - - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - companyDAO.create(Company.NAME, "TARTANPION"); - companyDAO.create(Company.NAME, "BIS"); - transaction.commitTransaction(); - - - InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - service.importSamplingPlanCsv(input); - - SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_0001"); - row.getProfession(); - row.getCompany(); - transaction.closeContext(); - - input = getClass().getResourceAsStream("/import/navires.csv"); - ServiceBoat serviceBoat = new ServiceBoatImpl(); - serviceBoat.importBoatCsv(input); - List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174592 978419 273129"); - - service.createUpdateSampleRow(row, boats, new SampleRowLogImpl()); - /** EXEC METHOD **/ - - service.deleteSampleRow(row); - transaction = WaoContext.getTopiaRootContext().beginTransaction(); - rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - row = rowDAO.findByCode("2010_0001"); - assertNull(row); - - ElligibleBoatDAO elligibleDAO = WaoModelDAOHelper.getElligibleBoatDAO(transaction); - List<ElligibleBoat> elligibles = elligibleDAO.findAll(); - assertEquals(0, elligibles.size()); - transaction.closeContext(); - } - - @Test - public void testImportSamplingPlanCsv() throws WaoException, TopiaException { - log.info("importSamplingPlanCsv"); - - /** PREPARE DATA **/ - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); - FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); - FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); - FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); - - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - companyDAO.create(Company.NAME, "TARTANPION"); - companyDAO.create(Company.NAME, "BIS"); - transaction.commitTransaction(); - transaction.closeContext(); - - /** EXEC METHOD **/ - InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - ImportResults result = service.importSamplingPlanCsv(input); - - // total imported - assertEquals(12, result.getNbRowsImported()); - // total refused - assertEquals(1, result.getNbRowsRefused()); - - /** CHECK VALUES **/ - transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - - // Error #2221 : don't keep the same profession for two different rows - SampleRow row2 = rowDAO.findByCode("2010_0010"); - SampleRow row3 = rowDAO.findByCode("2010_0011"); - assertNotSame(row2.getProfession(), row3.getProfession()); - - ProfessionDAO professionDAO = - WaoModelDAOHelper.getProfessionDAO(transaction); - - List<Profession> professions = professionDAO.findAll(); - assertEquals(12, professions.size()); - - SampleRow row1 = rowDAO.findByCode("2010_0001"); - assertNotNull(row1); - assertEquals(1, row1.getNbObservants()); - assertEquals(1.5, row1.getAverageTideTime(), 0.1); - assertEquals("Un petit commentaire", row1.getComment()); - - assertEquals("MA-2009", row1.getProgramName()); - - Profession profession = row1.getProfession(); - assertNotNull(profession); - assertEquals("DB_MOL", profession.getCodeDCF5()); - - List<SampleMonth> months = row1.getSampleMonth(); - assertEquals(11, months.size()); - - Collection<FishingZone> zones = row1.getFishingZone(); - assertEquals(2, zones.size()); - zones.contains(zoneI); - zones.contains(zoneIId); - - transaction.closeContext(); - } - - @Test - public void testGetPrograms() throws Exception { - /** PREPARE DATA **/ - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); - zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); - zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); - zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); - - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - companyDAO.create(Company.NAME, "TARTANPION"); - companyDAO.create(Company.NAME, "BIS"); - transaction.commitTransaction(); - transaction.closeContext(); - - InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - service.importSamplingPlanCsv(input); - - /** EXEC METHOD **/ - List<String> programs = service.getPrograms(null); - assertEquals(4, programs.size()); - } - - - @Test - public void testGetNewSampleRowCode() throws Exception { - log.info("getNewSampleRowCode"); - - /** PREPARE DATA **/ - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - FishingZoneDAO zoneDAO = WaoModelDAOHelper.getFishingZoneDAO(transaction); - FishingZone zoneIId = zoneDAO.create(FishingZone.DISTRICT_CODE, "IId"); - FishingZone zoneIV = zoneDAO.create(FishingZone.DISTRICT_CODE, "IV"); - FishingZone zoneI = zoneDAO.create(FishingZone.DISTRICT_CODE, "I"); - - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - companyDAO.create(Company.NAME, "TARTANPION"); - companyDAO.create(Company.NAME, "BIS"); - transaction.commitTransaction(); - - ServiceSampling serviceSampling = new ServiceSamplingImpl(); - InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - serviceSampling.importSamplingPlanCsv(input); - - transaction.closeContext(); - - /** EXEC METHOD **/ - - Calendar begin = new GregorianCalendar(2009, 11, 1); - - String result = service.getNewSampleRowCode(begin.getTime()); - Assert.assertEquals("2009_0007", result); - - // Test regex for replacment in importSamplingPlanCsv -// String code = "2010_1"; -// code = code.replaceFirst("_(\\d)$", "_0$1"); -// Assert.assertEquals("2010_01", code); -// -// code = "2010_04"; -// code = code.replaceFirst("_(\\d)$", "_0$1"); -// Assert.assertEquals("2010_04", code); - } - -} Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSynthesisImplTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSynthesisImplTest.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/services/ServiceSynthesisImplTest.java 2010-03-25 08:57:20 UTC (rev 386) @@ -1,544 +0,0 @@ -/* - * *##% - * Wao :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program 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 Lesser Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * ##%* - */ - -package fr.ifremer.wao.service; - -import fr.ifremer.wao.WaoContext; -import fr.ifremer.wao.WaoModelDAOHelper; -import fr.ifremer.wao.WaoRunner; -import fr.ifremer.wao.WaoRunnerTest; -import fr.ifremer.wao.bean.BoardingResult; -import fr.ifremer.wao.bean.ContactAverageReactivity; -import fr.ifremer.wao.bean.ContactState; -import fr.ifremer.wao.bean.ContactStateStatistics; -import fr.ifremer.wao.entity.Boat; -import fr.ifremer.wao.entity.Company; -import fr.ifremer.wao.entity.CompanyDAO; -import fr.ifremer.wao.entity.Contact; -import fr.ifremer.wao.entity.ContactImpl; -import fr.ifremer.wao.entity.SampleRow; -import fr.ifremer.wao.entity.SampleRowDAO; -import fr.ifremer.wao.entity.WaoUser; -import fr.ifremer.wao.entity.WaoUserDAO; -import java.io.InputStream; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; -import org.apache.commons.collections.CollectionUtils; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.nuiton.util.DateUtils; -import org.nuiton.util.PeriodDates; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import static org.junit.Assert.*; - -/** - * - * @author fdesbois - */ -public class ServiceSynthesisImplTest { - - private static WaoRunner runner; - - private static final Logger log = LoggerFactory.getLogger(ServiceSynthesisImplTest.class); - - private ServiceSynthesisImpl service; - - public ServiceSynthesisImplTest() { - } - - @BeforeClass - public static void setUpClass() throws Exception { - runner = new WaoRunnerTest(); - } - - @AfterClass - public static void tearDownClass() throws Exception { - } - - @Before - public void setUp() throws Exception { - runner.start(); - service = new ServiceSynthesisImpl(); - } - - @After - public void tearDown() throws Exception { - runner.stop(); - } - - /** - * Test of getDataSampling method, of class ServiceSynthesisImpl. - */ - //@Test - public void testGetDataSampling() throws Exception { - System.out.println("getDataSampling"); - } - - /** - * Test of getBoardingBoats method, of class ServiceSynthesisImpl. - */ - @Test - public void testGetBoardingBoats() throws Exception { - log.info("getBoardingBoats"); - /** PREPARE DATA **/ - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - ServiceBoat serviceBoat = new ServiceBoatImpl(); - serviceBoat.importBoatCsv(input); - List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); - Boat boat = boats.get(0); - - List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); - Boat boat2 = boats2.get(0); - - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - Company company = companyDAO.create(Company.NAME, "TARTANPION"); - Company company2 = companyDAO.create(Company.NAME, "BIS"); - - WaoUserDAO userDAO = WaoModelDAOHelper.getWaoUserDAO(transaction); - WaoUser user = userDAO.create(WaoUser.FIRST_NAME,"Jean", WaoUser.LAST_NAME, "Michmuche", - WaoUser.COMPANY, company); - company.addWaoUser(user); - WaoUser user2 = userDAO.create(WaoUser.FIRST_NAME,"Bill", WaoUser.LAST_NAME, "Murray", - WaoUser.COMPANY, company2); - company2.addWaoUser(user2); - - transaction.commitTransaction(); - - input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - ServiceReferential serviceReferential = new ServiceReferentialImpl(); - serviceReferential.importFishingZoneCsv(input); - - input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - ServiceSampling serviceSampling = new ServiceSamplingImpl(); - serviceSampling.importSamplingPlanCsv(input); - - SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_0001"); - - transaction.closeContext(); - - - ServiceContact serviceContact = new ServiceContactImpl(); - // First contact : OK - Contact contact1 = new ContactImpl(); - contact1.setBoat(boat); - contact1.setObserver(user); - contact1.setSampleRow(row); - contact1.setState(ContactState.BOARDING_DONE.toString()); - Date begin = DateUtils.createDate(3, 3, 2009); - contact1.setTideBeginDate(begin); - contact1.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(contact1, false); - - Contact contact2 = new ContactImpl(); - contact2.setBoat(boat); - contact2.setObserver(user); - contact2.setSampleRow(row); - contact2.setState(ContactState.BOARDING_DONE.toString()); - begin = DateUtils.createDate(3, 3, 2009); - contact2.setTideBeginDate(begin); - contact2.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(contact2, false); - - Contact contact3 = new ContactImpl(); - contact3.setBoat(boat2); - contact3.setObserver(user); - contact3.setSampleRow(row); - contact3.setState(ContactState.BOARDING_DONE.toString()); - begin = DateUtils.createDate(3, 3, 2009); - contact3.setTideBeginDate(begin); - contact3.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(contact3, false); - - /** EXEC METHOD **/ - BoardingResult result = service.getBoardingBoats(null, null); - // one boat with one boarding (177474) - assertEquals(1, result.getData().get("1").intValue()); - // one boat with two boardings (174258) - assertEquals(1, result.getData().get("2").intValue()); - assertEquals(2, result.getMaxBoardingValue()); - assertEquals(174258, result.getMaxBoardingBoat().getImmatriculation()); - } - - /** - * Test of getBoardingBoats method, of class ServiceSynthesisImpl. - */ - @Test - public void testGetNonComplianceBoardingIndicator() throws Exception { - log.info("getNonComplianceBoardingIndicator"); - /** PREPARE DATA **/ - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - ServiceBoat serviceBoat = new ServiceBoatImpl(); - serviceBoat.importBoatCsv(input); - List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); - Boat boat = boats.get(0); - - List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); - Boat boat2 = boats2.get(0); - - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - Company company = companyDAO.create(Company.NAME, "TARTANPION"); - Company company2 = companyDAO.create(Company.NAME, "BIS"); - - WaoUserDAO userDAO = WaoModelDAOHelper.getWaoUserDAO(transaction); - WaoUser user = userDAO.create(WaoUser.FIRST_NAME,"Jean", WaoUser.LAST_NAME, "Michmuche", - WaoUser.COMPANY, company); - company.addWaoUser(user); - WaoUser user2 = userDAO.create(WaoUser.FIRST_NAME,"Bill", WaoUser.LAST_NAME, "Murray", - WaoUser.COMPANY, company2); - company2.addWaoUser(user2); - - transaction.commitTransaction(); - - input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - ServiceReferential serviceReferential = new ServiceReferentialImpl(); - serviceReferential.importFishingZoneCsv(input); - - input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - ServiceSampling serviceSampling = new ServiceSamplingImpl(); - serviceSampling.importSamplingPlanCsv(input); - - SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_0001"); - SampleRow row2 = rowDAO.findByCode("2009_0006"); - - transaction.closeContext(); - - - ServiceContact serviceContact = new ServiceContactImpl(); - // First contact : OK - Contact contact1 = new ContactImpl(); - contact1.setBoat(boat); - contact1.setObserver(user); - contact1.setSampleRow(row); - // 1 real observer over 1 - contact1.setNbObservants(1); - contact1.setState(ContactState.BOARDING_DONE.toString()); - Date begin = DateUtils.createDate(3, 3, 2009); - contact1.setTideBeginDate(begin); - contact1.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(contact1, false); - - Contact contact2 = new ContactImpl(); - contact2.setBoat(boat); - contact2.setObserver(user); - contact2.setSampleRow(row); - // 2 real observer over 1 - contact2.setNbObservants(2); - contact2.setState(ContactState.BOARDING_DONE.toString()); - begin = DateUtils.createDate(3, 3, 2009); - contact2.setTideBeginDate(begin); - contact2.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(contact2, false); - - Contact contact3 = new ContactImpl(); - contact3.setBoat(boat2); - contact3.setObserver(user2); - contact3.setSampleRow(row2); - // 1 real observer over 2 - contact3.setNbObservants(1); - contact3.setState(ContactState.BOARDING_DONE.toString()); - begin = DateUtils.createDate(3, 3, 2009); - contact3.setTideBeginDate(begin); - contact3.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(contact3, false); - - /** EXEC METHOD **/ - - // result for company TARTANPION - Map<String, Double> results = - service.getNonComplianceBoardingIndicator(company); - - assertEquals(1, results.size()); - - // 0% of non compliance - Double value = results.get(company.getName()); - assertEquals(0., value, 0); - - // result for company BIS using admin mode (no company filtered) - results = service.getNonComplianceBoardingIndicator(null); - - assertEquals(2, results.size()); - - // 100% of non compliance - value = results.get(company2.getName()); - assertEquals(1., value, 0); - } - - /** - * Test of getBoardingBoats method, of class ServiceSynthesisImpl. - */ - @Test - public void testGetContactStateStatistics() throws Exception { - log.info("getContactStateStatistics"); - /** PREPARE DATA **/ - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - ServiceBoat serviceBoat = new ServiceBoatImpl(); - serviceBoat.importBoatCsv(input); - List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); - Boat boat = boats.get(0); - - List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); - Boat boat2 = boats2.get(0); - - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - Company company = companyDAO.create(Company.NAME, "TARTANPION"); - Company company2 = companyDAO.create(Company.NAME, "BIS"); - - WaoUserDAO userDAO = WaoModelDAOHelper.getWaoUserDAO(transaction); - WaoUser user = userDAO.create(WaoUser.FIRST_NAME,"Jean", WaoUser.LAST_NAME, "Michmuche", - WaoUser.COMPANY, company); - company.addWaoUser(user); - WaoUser user2 = userDAO.create(WaoUser.FIRST_NAME,"Bill", WaoUser.LAST_NAME, "Murray", - WaoUser.COMPANY, company2); - company2.addWaoUser(user2); - - transaction.commitTransaction(); - - input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - ServiceReferential serviceReferential = new ServiceReferentialImpl(); - serviceReferential.importFishingZoneCsv(input); - - input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - ServiceSampling serviceSampling = new ServiceSamplingImpl(); - serviceSampling.importSamplingPlanCsv(input); - - SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_0001"); - - transaction.closeContext(); - - - ServiceContact serviceContact = new ServiceContactImpl(); - - // Contacts for company TARTANPION - Contact contact1 = new ContactImpl(); - contact1.setObserver(user); - contact1.setState(ContactState.BOARDING_DONE.toString()); - Date begin = DateUtils.createDate(3, 3, 2009); - contact1.setTideBeginDate(begin); - serviceContact.saveContact(contact1, false); - - Contact contact2 = new ContactImpl(); - contact2.setObserver(user); - contact2.setState(ContactState.BOARDING_DONE.toString()); - begin = DateUtils.createDate(3, 10, 2009); - contact2.setTideBeginDate(begin); - serviceContact.saveContact(contact2, false); - - Contact contact3 = new ContactImpl(); - contact3.setObserver(user); - contact3.setState(ContactState.BOAT_REFUSED.toString()); - begin = DateUtils.createDate(3, 5, 2009); - contact3.setTopiaCreateDate(begin); - serviceContact.saveContact(contact3, false); - - // Contacts for company BIS - Contact contact4 = new ContactImpl(); - contact4.setObserver(user2); - contact4.setState(ContactState.BOARDING_EXPECTED.toString()); - begin = DateUtils.createDate(3, 5, 2009); - contact4.setTopiaCreateDate(begin); - serviceContact.saveContact(contact4, false); - - Contact contact5 = new ContactImpl(); - contact5.setObserver(user2); - contact5.setState(ContactState.BOAT_UNAVAILABLE.toString()); - begin = DateUtils.createDate(3, 3, 2010); - contact5.setTopiaCreateDate(begin); - serviceContact.saveContact(contact5, false); - - // Contact refused by program, will not be in result - Contact contact6 = new ContactImpl(); - contact6.setObserver(user2); - contact6.setState(ContactState.BOAT_UNAVAILABLE.toString()); - begin = DateUtils.createDate(3, 3, 2010); - contact6.setTopiaCreateDate(begin); - contact6.setValidationProgram(Boolean.FALSE); - serviceContact.saveContact(contact6, false); - - /** EXEC METHOD **/ - - // result for company TARTANPION with no period - Collection<ContactStateStatistics> results = - service.getContactStateStatistics(company, null); - - assertEquals(1, results.size()); - ContactStateStatistics result = (ContactStateStatistics)CollectionUtils.get(results, 0); - assertEquals(3, result.getTotal()); - Map<ContactState, Integer> data = result.getData(); - assertNotNull(data); - - assertEquals(ContactState.values().length, data.size()); - assertEquals(2, data.get(ContactState.BOARDING_DONE).intValue()); - assertEquals(1, data.get(ContactState.BOAT_REFUSED).intValue()); - - // result for company BIS using admin mode - results = service.getContactStateStatistics(null, null); - assertEquals(2, results.size()); - - result = null; - for (ContactStateStatistics stats : results) { - if (stats.getCompanyName().equals(company2.getName())) { - result = stats; - break; - } - } - - assertEquals(2, result.getTotal()); - data = result.getData(); - assertEquals(1, data.get(ContactState.BOARDING_EXPECTED).intValue()); - assertEquals(1, data.get(ContactState.BOAT_UNAVAILABLE).intValue()); - - // result for period 3/5/2009 to 3/10/2009 for BIS company - begin = DateUtils.createDate(3, 5, 2009); - Date end = DateUtils.createDate(31, 10, 2009); - PeriodDates period = new PeriodDates(begin, end); - - results = service.getContactStateStatistics(company2, period); - assertEquals(1, results.size()); - - result = (ContactStateStatistics)CollectionUtils.get(results, 0); - - assertEquals(1, result.getTotal()); - data = result.getData(); - assertEquals(1, data.get(ContactState.BOARDING_EXPECTED).intValue()); - assertEquals(0, data.get(ContactState.BOAT_UNAVAILABLE).intValue()); - } - - /** - * Test of getBoardingBoats method, of class ServiceSynthesisImpl. - */ - @Test - public void testGetContactDataInputDateReactivity() throws Exception { - log.info("getContactDataInputDateReactivity"); - /** PREPARE DATA **/ - InputStream input = getClass().getResourceAsStream("/import/navires.csv"); - ServiceBoat serviceBoat = new ServiceBoatImpl(); - serviceBoat.importBoatCsv(input); - List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174258"); - Boat boat = boats.get(0); - - List<Boat> boats2 = serviceBoat.getBoatsByImmatriculations("177474"); - Boat boat2 = boats2.get(0); - - TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction(); - - CompanyDAO companyDAO = WaoModelDAOHelper.getCompanyDAO(transaction); - Company company = companyDAO.create(Company.NAME, "TARTANPION"); - Company company2 = companyDAO.create(Company.NAME, "BIS"); - - WaoUserDAO userDAO = WaoModelDAOHelper.getWaoUserDAO(transaction); - WaoUser user = userDAO.create(WaoUser.FIRST_NAME,"Jean", WaoUser.LAST_NAME, "Michmuche", - WaoUser.COMPANY, company); - company.addWaoUser(user); - WaoUser user2 = userDAO.create(WaoUser.FIRST_NAME,"Bill", WaoUser.LAST_NAME, "Murray", - WaoUser.COMPANY, company2); - company2.addWaoUser(user2); - - transaction.commitTransaction(); - - input = getClass().getResourceAsStream("/import/zonesPeche.csv"); - ServiceReferential serviceReferential = new ServiceReferentialImpl(); - serviceReferential.importFishingZoneCsv(input); - - input = getClass().getResourceAsStream("/import/echantillonnage.csv"); - ServiceSampling serviceSampling = new ServiceSamplingImpl(); - serviceSampling.importSamplingPlanCsv(input); - - SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_0001"); - SampleRow row2 = rowDAO.findByCode("2009_0006"); - - transaction.closeContext(); - - - ServiceContact serviceContact = new ServiceContactImpl(); - // First contact : OK - Contact contact1 = new ContactImpl(); - contact1.setObserver(user); - Date begin = DateUtils.createDate(3, 3, 2009); - contact1.setTideBeginDate(begin); - Date inputDate = DateUtils.createDate(15, 4, 2009); - contact1.setDataInputDate(inputDate); - contact1.setState(ContactState.BOARDING_DONE.toString()); - contact1.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(contact1, false); - - Contact contact2 = new ContactImpl(); - contact2.setObserver(user); - begin = DateUtils.createDate(3, 3, 2009); - contact2.setTideBeginDate(begin); - inputDate = DateUtils.createDate(15, 3, 2009); - contact2.setDataInputDate(inputDate); - contact2.setState(ContactState.BOARDING_DONE.toString()); - contact2.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(contact2, false); - - Contact contact3 = new ContactImpl(); - contact3.setObserver(user2); - begin = DateUtils.createDate(3, 3, 2009); - contact3.setTideBeginDate(begin); - contact3.setDataInputDate(begin); - contact3.setState(ContactState.BOARDING_DONE.toString()); - contact3.setValidationCompany(Boolean.TRUE); - serviceContact.saveContact(contact3, false); - - /** EXEC METHOD **/ - - PeriodDates period = new PeriodDates(begin, begin); - - // result for company TARTANPION - Collection<ContactAverageReactivity> results = - service.getContactDataInputDateReactivity(company, period); - - assertEquals(1, results.size()); - - // 12 days for contact1 + 43 days for contact2 / 2 = 27.5 days - ContactAverageReactivity res = - (ContactAverageReactivity)CollectionUtils.get(results, 0); - - assertEquals(27., res.getResult(), 0.01); - - // result for company BIS using admin mode (no company filtered) - results = service.getContactDataInputDateReactivity(null, period); - - // 0 days for contact3 / 1 = O days - res = (ContactAverageReactivity)CollectionUtils.get(results, 0); - - assertEquals(0, res.getResult(), 0.01); - } - -} \ No newline at end of file Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/AbstractFilteredPage.java 2010-03-25 08:57:20 UTC (rev 386) @@ -154,12 +154,12 @@ sampleRowId = getFilter().getSampleRow().getTopiaId(); } - if (user.getAdmin() && companySelect) { + if (user.isAdmin() && companySelect) { resetCompanySelect(); if (getFilter().getCompany() != null) { companyId = getFilter().getCompany().getTopiaId(); } - } else if (!user.getAdmin()) { + } else if (!user.isAdmin()) { if (log.isDebugEnabled()) { log.debug("Company filtered : " + user.getCompany()); } @@ -306,7 +306,7 @@ List<WaoUser> observers = new ArrayList<WaoUser>(); if (getFilter().getCompany() != null) { observers = getFilter().getCompany().getWaoUser(); - } else if (user.getAdmin()) { + } else if (user.isAdmin()) { if (log.isInfoEnabled()) { log.info("BUSINESS REQUEST [getObservers]"); } @@ -368,7 +368,7 @@ } SampleRow row = getSampleRowSelectModel().findObject(sampleRowId); getFilter().setSampleRow(row); - if (user.getAdmin()) { + if (user.isAdmin()) { Company company = getCompanySelectModel().findObject(companyId); getFilter().setCompany(company); } else { Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-03-25 08:57:20 UTC (rev 386) @@ -150,7 +150,7 @@ } public String getAdminClass() { - return this.currentUser.getAdmin() ? " admin" : ""; + return this.currentUser.isAdmin() ? " admin" : ""; } public String getSamplingSelected() { @@ -174,7 +174,7 @@ } public boolean canShowPage() { - if (!currentUser.getAdmin()) { + if (!currentUser.isAdmin()) { return !page.isOnlyForAdmin(); } return true; Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2010-03-25 08:57:20 UTC (rev 386) @@ -509,7 +509,7 @@ } public boolean canCreateNewContactFromList() throws WaoException { - if (!user.getAdmin() && isSampleRowExists()) { + if (!user.isAdmin() && isSampleRowExists()) { return boat.canCreateContact(user.getCompany()); } return false; @@ -543,7 +543,7 @@ log.debug("Show infos for boat : " + boatImma); } - if (user.getAdmin() && getCompany() != null) { + if (user.isAdmin() && getCompany() != null) { companySelectedId = getCompany().getTopiaId(); } return boatsZone.getBody(); @@ -639,7 +639,7 @@ if (company == null) { if (StringUtils.isNotEmpty(companySelectedId)) { company = getCompanies().findObject(companySelectedId); - } else if (!user.getAdmin()) { + } else if (!user.isAdmin()) { company = user.getCompany(); } } @@ -700,7 +700,7 @@ */ public String getlastContactStyle() throws WaoException { Contact contact = getCompanyBoatInfos().getLastContact(); - return BusinessUtils.getContactStyle(contact, user.getAdmin()); + return BusinessUtils.getContactStyle(contact, user.isAdmin()); } /** /////////////////////// FOR EACH ELLIGIBLEBOAT ROW ///////////////// **/ @@ -714,7 +714,7 @@ } public boolean canCreateNewContactFromElligibleBoat() throws WaoException { - if (!user.getAdmin() && !isElligibleBoatCompanyActiveFalse()) { + if (!user.isAdmin() && !isElligibleBoatCompanyActiveFalse()) { Boat currentBoat = getBoatInfos().getBoat(); return currentBoat.canCreateContact(user.getCompany()); } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-25 08:57:20 UTC (rev 386) @@ -156,7 +156,7 @@ } public boolean isFiltersVisible() { - boolean companyFiltered = contactFilter.getCompany() != null && user.getAdmin(); + boolean companyFiltered = contactFilter.getCompany() != null && user.isAdmin(); return (contactFilter.isFiltered() || companyFiltered) && StringUtils.isEmpty(contactFilter.getBoatName()); /*&& !getDefaultFromDate().equals(contactFilter.getFromDate());*/ } @@ -291,7 +291,7 @@ public BeanModel<Contact> getContactModel() { if (contactModel == null) { - contactModel = user.getAdmin() ? + contactModel = user.isAdmin() ? contactModelFactory.buildAdminContactModel(beanModelSource, resources) : contactModelFactory.buildContactModel(beanModelSource, resources); } @@ -348,11 +348,11 @@ } public String getGridClass() { - return user.getAdmin() ? "admin" : "user"; + return user.isAdmin() ? "admin" : "user"; } public String getRowClass() { - String result = BusinessUtils.getContactStyle(contact, user.getAdmin()); + String result = BusinessUtils.getContactStyle(contact, user.isAdmin()); if (contact.getTopiaId().equals(contactSelectedId)) { result = "selected"; } @@ -389,7 +389,7 @@ private String oldComment; public boolean hasActions() { - return !user.getAdmin() && contact.getValidationCompany() == null; + return !user.isAdmin() && contact.getValidationCompany() == null; } public boolean canValidate() { @@ -399,14 +399,14 @@ } ContactState state = ContactState.createContactStateEnum(contact.getState()); boolean boardingDone = state.equals(ContactState.BOARDING_DONE) && contact.getDataInputDate() != null; - if (!user.getAdmin()) { + if (!user.isAdmin()) { return contact.getValidationCompany() == null && (state.isUnfinishedState() || boardingDone); } return contact.getValidationProgram() == null && BooleanUtils.isTrue(contact.getValidationCompany()); } public boolean canUnvalidate() { - if (!user.getAdmin()) { + if (!user.isAdmin()) { return contact.getValidationCompany() != null && contact.getValidationProgram() == null; } @@ -418,7 +418,7 @@ log.debug("Accept contact : " + contactId); } contactEdited = getContacts().get(contactId); - if (user.getAdmin()) { + if (user.isAdmin()) { contactEdited.setValidationProgram(Boolean.TRUE); } else { // For company accepted, addRealTideTime @@ -432,7 +432,7 @@ log.debug("Refuse contact : " + contactId); } contactEdited = getContacts().get(contactId); - if (user.getAdmin()) { + if (user.isAdmin()) { // For program refused, removeRealTideTime contactEdited.getSampleRow().removeRealTideTime(contactEdited); contactEdited.setValidationProgram(Boolean.FALSE); @@ -446,7 +446,7 @@ log.debug("Unvalidate contact : " + contactId); } contactEdited = getContacts().get(contactId); - if (user.getAdmin()) { + if (user.isAdmin()) { // For program unvalidate from previous refused validation, addRealTideTime if (BooleanUtils.isFalse(contactEdited.getValidationProgram())) { contactEdited.getSampleRow().addRealTideTime(contactEdited); Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-03-25 08:57:20 UTC (rev 386) @@ -204,7 +204,7 @@ log.info("BUSINESS REQUEST [getSampleRowsOrderedByFishingZone]"); } Company company = null; - if (!user.getAdmin()) { + if (!user.isAdmin()) { company = user.getCompany(); } FacadeRow facade = serviceSampling.getSampleRowsOrderedByFishingZone(getPeriod(), company); @@ -318,7 +318,7 @@ public int getNbColumnsForProfession() { // code, program.name, fishingZone.districts, profession.code, profession.libelle int fixed = 5; - if (user.getAdmin()) { + if (user.isAdmin()) { // company, program.periodBegin, program.periodEnd, fishingZonesInfos // profession.meshSize, profession.size, profession.other, profession.species fixed += 8; @@ -340,7 +340,7 @@ } public String getMainClass() { - return user.getAdmin() ? "admin" : "user"; + return user.isAdmin() ? "admin" : "user"; } public String getParityClass() { @@ -348,7 +348,7 @@ } public String getActionsClass() { - return user.getAdmin() ? "width100" : "width30"; + return user.isAdmin() ? "width100" : "width30"; } public String getRealTidesClass() { Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-03-24 15:15:37 UTC (rev 385) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-03-25 08:57:20 UTC (rev 386) @@ -168,7 +168,7 @@ public BoatFilter getFilter() throws WaoException { if (dataSamplingFilter == null) { dataSamplingFilter = new BoatFilterImpl(); - if (!user.getAdmin()) { + if (!user.isAdmin()) { dataSamplingFilter.setCompany(user.getCompany()); } } @@ -243,7 +243,7 @@ // Set the companyIdForBoarding is only necessary for an admin which // have access to a select with all active companies (from Filters : // getCompanySelectModel()) - if (companyForBoarding != null && user.getAdmin()) { + if (companyForBoarding != null && user.isAdmin()) { companyIdForBoarding = companyForBoarding.getTopiaId(); if (log.isDebugEnabled()) { log.debug("companyId init : " + companyIdForBoarding); @@ -281,7 +281,7 @@ public Company getCompanyForBoarding() { // Initialize only for an observer user. For admin, the company can // be null to search boardings for all companies. - if (companyForBoarding == null && !user.getAdmin()) { + if (companyForBoarding == null && !user.isAdmin()) { companyForBoarding = user.getCompany(); } if (log.isDebugEnabled()) { @@ -317,7 +317,7 @@ public Map<String, Double> getNonComplianceBoarding() throws WaoException { if (nonComplianceBoarding == null) { - Company company = !user.getAdmin() ? user.getCompany() : null; + Company company = !user.isAdmin() ? user.getCompany() : null; nonComplianceBoarding = serviceSynthesis.getNonComplianceBoardingIndicator(company); } @@ -367,7 +367,7 @@ public Collection<ContactStateStatistics> getContactStateStatistics() throws WaoException { if (contactStateStatistics == null) { - Company company = !user.getAdmin() ? user.getCompany() : null; + Company company = !user.isAdmin() ? user.getCompany() : null; contactStateStatistics = serviceSynthesis.getContactStateStatistics(company, getPeriodForContactStates()); } @@ -418,7 +418,7 @@ public Collection<ContactAverageReactivity> getAllegroReactivity() throws WaoException { if (allegroReactivity == null) { - Company company = !user.getAdmin() ? user.getCompany() : null; + Company company = !user.isAdmin() ? user.getCompany() : null; allegroReactivity = serviceSynthesis.getContactDataInputDateReactivity(company, getPeriodForAllegroReactivity()); } @@ -439,7 +439,7 @@ } public String getAllegroReactivityStyle() throws WaoException { - double value = user.getAdmin() ? + double value = user.isAdmin() ? allegroReactivityEntry.getResult() : getAllegroReactivityValue(); if (value >= 15.) { return " warn";
participants (1)
-
fdesbois@users.labs.libre-entreprise.org