Wao-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
June 2011
- 2 participants
- 54 discussions
[Suiviobsmer-commits] r1331 - in trunk: wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-business/src/main/xmi wao-business/src/test/java/fr/ifremer/wao/service wao-ui/src/main/java/fr/ifremer/wao/ui/components wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/resources/fr/ifremer/wao/ui/components wao-ui/src/main/webapp
by bleny@users.labs.libre-entreprise.org 09 Jun '11
by bleny@users.labs.libre-entreprise.org 09 Jun '11
09 Jun '11
Author: bleny
Date: 2011-06-09 14:27:08 +0000 (Thu, 09 Jun 2011)
New Revision: 1331
Log:
order of field in contact form ; hide boatGroup from boat filter when not obsdeb ; fix import of terrestrial divisions
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml
trunk/wao-ui/src/main/webapp/ContactForm.tml
trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java 2011-06-09 14:27:08 UTC (rev 1331)
@@ -93,9 +93,7 @@
Boolean indicatorsAreActivated = Boolean.parseBoolean(WaoProperty.SHOW_INDICATORS.getValue());
if (BooleanUtils.isTrue(indicatorsAreActivated)) {
- test = ObsProgram.OBSMER.equals(getProfile().getObsProgram())
- && isAdmin() || isCoordinator();
-
+ test = isObsMer() && (isAdmin() || isCoordinator());
}
return test;
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 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-06-09 14:27:08 UTC (rev 1331)
@@ -177,6 +177,7 @@
sampleRow.getObservationUnit().getRegionIfremer();
}
contact.getTerrestrialLocation();
+ contact.getObsDebCode();
}
}
@@ -1508,4 +1509,14 @@
}
return terrestrialLocations;
}
+
+ @Override
+ protected boolean executeIsBoatSampled(TopiaContext transaction, Boat boat, SampleRow sampleRow) throws Exception {
+ ContactDAO contactDAO = WaoDAOHelper.getContactDAO(transaction);
+ Contact contact = contactDAO.findByProperties(
+ Contact.PROPERTY_BOAT, boat,
+ Contact.PROPERTY_SAMPLE_ROW, sampleRow);
+ boolean boatSampled = contact != null;
+ return boatSampled;
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-06-09 14:27:08 UTC (rev 1331)
@@ -52,6 +52,7 @@
import fr.ifremer.wao.entity.TargetSpeciesDCFDAO;
import fr.ifremer.wao.entity.TerrestrialDivision;
import fr.ifremer.wao.entity.TerrestrialDivisionDAO;
+import fr.ifremer.wao.entity.TerrestrialDivisionImpl;
import fr.ifremer.wao.entity.TerrestrialLocation;
import fr.ifremer.wao.entity.TerrestrialLocationDAO;
import fr.ifremer.wao.entity.TerrestrialLocationDAOImpl;
@@ -70,6 +71,7 @@
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
+import org.nuiton.topia.persistence.TopiaEntity;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderFactory;
import org.slf4j.Logger;
@@ -552,53 +554,44 @@
Import<TerrestrialDivision> terrestrialDivisionImport = new Import<TerrestrialDivision>(importModel, input);
TerrestrialDivisionDAO dao = WaoDAOHelper.getTerrestrialDivisionDAO(transaction);
-// // a binder, needed for update
-// Binder<TerrestrialDivision, TerrestrialDivision> terrestrialDivisionBinder =
-// BinderFactory.newBinder(TerrestrialDivision.class);
-//
-// try {
-// Iterator<TerrestrialDivision> terrestrialDivisionIterator = terrestrialDivisionImport.startImport();
-//
-// // for each line of the CSV
-// while (terrestrialDivisionIterator.hasNext()) {
-// TerrestrialDivision terrestrialDivision = terrestrialDivisionIterator.next();
-//
-// TerrestrialDivision existingTerrestrialDivision = dao.findByCode(terrestrialDivision.getCode());
-// if (existingTerrestrialDivision == null) {
-// // add as new
-// dao.create(terrestrialDivision);
-// } else {
-// // update the old one
-// terrestrialDivisionBinder.copyExcluding(terrestrialDivision, existingTerrestrialDivision,
-// TopiaEntity.TOPIA_ID, TopiaEntity.TOPIA_CREATE_DATE, TopiaEntity.TOPIA_VERSION);
-// dao.update(existingTerrestrialDivision);
-// }
-// }
-// } catch (Exception e) {
-// transaction.rollbackTransaction();
-// throw e;
-// } finally {
-// terrestrialDivisionImport.stopImport();
-// }
-
-
try {
Iterator<TerrestrialDivision> terrestrialDivisionIterator = terrestrialDivisionImport.startImport();
- Binder<TerrestrialDivision, TerrestrialDivision> observationUnitBinder = BinderFactory.newBinder(TerrestrialDivision.class);
+ Binder<TerrestrialDivision, TerrestrialDivision> terrestrialDivisionBinder = BinderFactory.newBinder(TerrestrialDivision.class);
while (terrestrialDivisionIterator.hasNext()) {
TerrestrialDivision terrestrialDivision = terrestrialDivisionIterator.next();
- WaoUtils.createOrUpdate(TerrestrialDivision.class, terrestrialDivision, dao, TerrestrialDivision.PROPERTY_CODE);
- // now add an observation unit
- TerrestrialDivision observationUnit = dao.newInstance();
- observationUnitBinder.copyExcluding(terrestrialDivision, observationUnit,
- TerrestrialDivision.TOPIA_ID, TerrestrialDivision.TOPIA_VERSION, TerrestrialDivision.TOPIA_CREATE_DATE,
- TerrestrialDivision.PROPERTY_CODE, TerrestrialDivision.PROPERTY_PORT);
- WaoUtils.createOrUpdate(TerrestrialDivision.class,
- observationUnit, dao, TerrestrialDivision.PROPERTY_CODE,
- TerrestrialDivision.PROPERTY_REGION_IFREMER,
- TerrestrialDivision.PROPERTY_OBSERVATION_UNIT_CODE);
+ TerrestrialDivision existingTerrestrialDivision = dao.findByCode(terrestrialDivision.getCode());
+ if (existingTerrestrialDivision == null) {
+ // add as new
+ dao.create(terrestrialDivision);
+ } else {
+ // update the old one
+ terrestrialDivisionBinder.copyExcluding(terrestrialDivision, existingTerrestrialDivision,
+ TopiaEntity.TOPIA_ID, TopiaEntity.TOPIA_CREATE_DATE, TopiaEntity.TOPIA_VERSION);
+ dao.update(existingTerrestrialDivision);
+ }
+
+ TerrestrialDivision observationUnit = new TerrestrialDivisionImpl();
+ terrestrialDivisionBinder.copyExcluding(
+ terrestrialDivision, observationUnit,
+ TopiaEntity.TOPIA_ID, TopiaEntity.TOPIA_CREATE_DATE,
+ TopiaEntity.TOPIA_VERSION,
+ TerrestrialDivision.PROPERTY_CODE,
+ TerrestrialDivision.PROPERTY_PORT);
+
+ TerrestrialDivision existingObservationUnit = dao.findByProperties(
+ TerrestrialDivision.PROPERTY_CODE, observationUnit.getCode(),
+ TerrestrialDivision.PROPERTY_PORT, observationUnit.getPort(),
+ TerrestrialDivision.PROPERTY_REGION_IFREMER, observationUnit.getRegionIfremer(),
+ TerrestrialDivision.PROPERTY_OBSERVATION_UNIT_CODE, observationUnit.getObservationUnitCode());
+
+ if (existingObservationUnit == null) {
+ dao.create(observationUnit);
+ } else {
+ terrestrialDivisionBinder.copyExcluding(observationUnit, existingObservationUnit, TopiaEntity.TOPIA_ID, TopiaEntity.TOPIA_CREATE_DATE, TopiaEntity.TOPIA_VERSION);
+ dao.update(existingObservationUnit);
+ }
}
transaction.commitTransaction();
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-06-09 14:27:08 UTC (rev 1331)
@@ -180,6 +180,7 @@
wao.error.serviceContact.getPossibleValuesForFilter=
wao.error.serviceContact.getSubstitutesForBoat=
wao.error.serviceContact.importContactCsv=
+wao.error.serviceContact.isBoatSampled=
wao.error.serviceContact.newContact=
wao.error.serviceContact.newContactFilter=
wao.error.serviceContact.saveComment=
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-06-09 14:27:08 UTC (rev 1331)
@@ -180,6 +180,7 @@
wao.error.serviceContact.getPossibleValuesForFilter=
wao.error.serviceContact.getSubstitutesForBoat=
wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts
+wao.error.serviceContact.isBoatSampled=
wao.error.serviceContact.newContact=
wao.error.serviceContact.newContactFilter=
wao.error.serviceContact.saveComment=
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java 2011-06-09 14:27:08 UTC (rev 1331)
@@ -128,6 +128,10 @@
int nbTerrestrialDivisions = service.getAllObservationUnits().size();
input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv");
service.importTerrestrialDivisions(input);
+ input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv");
+ service.importTerrestrialDivisions(input);
+ input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv");
+ service.importTerrestrialDivisions(input);
assertEquals("importing the same file two times should not create extra lines",
nbTerrestrialDivisions, service.getAllObservationUnits().size());
} finally {
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-06-09 14:27:08 UTC (rev 1331)
@@ -26,11 +26,14 @@
import fr.ifremer.wao.WaoException;
import fr.ifremer.wao.bean.BoatFilter;
import fr.ifremer.wao.bean.BoatFilterValues;
+import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.service.ServiceBoat;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.ioc.annotations.Inject;
import java.util.List;
@@ -40,6 +43,10 @@
*/
public class BoatFilterComponent extends FilterComponent<BoatFilter> {
+ @SessionState
+ @Property
+ private ConnectedUser connectedUser;
+
@InjectComponent
private FeedBack filterFeedback;
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-06-09 14:27:08 UTC (rev 1331)
@@ -273,6 +273,10 @@
return serviceContact.getSubstitutesForBoat(sampleRow.getBoat());
}
+ public boolean isBoatSampled() {
+ return serviceContact.isBoatSampled(sampleRow.getBoat(), sampleRow);
+ }
+
protected String[] getContextForBoatOrSubstitute(Boat boat) {
WaoActivationContext contextForBoat =
WaoActivationContext.newEmptyContext();
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-06-09 14:27:08 UTC (rev 1331)
@@ -110,12 +110,14 @@
t:values="possibleValuesForFilter.fleetsAsList"
t:selectedValue="filter.fleet" />
- <label for="boatGroup" style="margin-left: 15px;">${message:wao.ui.field.Boat.boatGroup} :</label>
- <t:topiaEntitySelector t:id="boatGroup"
- t:clazzName="BoatGroup"
- t:labelPropertyName="description"
- t:values="possibleValuesForFilter.boatGroupsAsList"
- t:selectedValue="filter.boatGroup" />
+ <t:if test="connectedUser.obsDeb">
+ <label for="boatGroup" style="margin-left: 15px;">${message:wao.ui.field.Boat.boatGroup} :</label>
+ <t:topiaEntitySelector t:id="boatGroup"
+ t:clazzName="BoatGroup"
+ t:labelPropertyName="description"
+ t:values="possibleValuesForFilter.boatGroupsAsList"
+ t:selectedValue="filter.boatGroup" />
+ </t:if>
</div>
<div class="aright" style="white-space: nowrap;">
<input t:type="submit" class="ico22px refresh" t:id="refresh"
Modified: trunk/wao-ui/src/main/webapp/ContactForm.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/ContactForm.tml 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-ui/src/main/webapp/ContactForm.tml 2011-06-09 14:27:08 UTC (rev 1331)
@@ -129,6 +129,20 @@
<t:block id="viewObservationReport">
<div>
+ <label>${message:wao.ui.field.Contact.beginDate}</label>
+ <t:output value="contact.observationBeginDate" format="dateTimeFormat" />
+ </div>
+ <div>
+ <label>${message:wao.ui.field.Contact.endDate}</label>
+ <t:output value="contact.observationEndDate" format="dateTimeFormat" />
+ </div>
+ <div>
+ <label>${message:wao.ui.field.Contact.observationType}</label>
+ <t:if test="contact.observationType">
+ ${contact.observationType}
+ </t:if>
+ </div>
+ <div>
<label>${message:wao.ui.field.Contact.contactState}</label>
${getLabelForEnum(contact.contactState)}
</div>
@@ -138,14 +152,6 @@
<t:output value="contact.landingDate" format="dateTimeFormat" />
</div>
</t:if>
- <div>
- <label>${message:wao.ui.field.Contact.beginDate}</label>
- <t:output value="contact.observationBeginDate" format="dateTimeFormat" />
- </div>
- <div>
- <label>${message:wao.ui.field.Contact.endDate}</label>
- <t:output value="contact.observationEndDate" format="dateTimeFormat" />
- </div>
<t:if test="connectedUser.obsMer">
<div>
<label>
@@ -185,7 +191,7 @@
</t:if>
<t:if test="connectedUser.obsDeb">
<div>
- <label for="port">${message:wao.ui.field.SampleRow.terrestrialLocation}</label>
+ <label for="port">${message:wao.ui.entity.TerrestrialLocation}</label>
<t:if test="contact.terrestrialLocation">
${contact.terrestrialLocation.name}
</t:if>
@@ -227,6 +233,14 @@
</t:block>
<t:block id="editObservationReport">
+ <div>
+ <label for="beginDate">${message:wao.ui.field.Contact.beginDate}</label>
+ <input t:id="beginDate" value="contact.observationBeginDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" />
+ </div>
+ <div>
+ <label for="endDate">${message:wao.ui.field.Contact.endDate}</label>
+ <input t:id="endDate" value="contact.observationEndDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" />
+ </div>
<t:if test="connectedUser.obsdeb">
<t:if test="observationTypeSelectModel">
<div>
@@ -253,14 +267,6 @@
<input t:id="landingDate" value="contact.landingDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" />
</div>
</t:if>
- <div>
- <label for="beginDate">${message:wao.ui.field.Contact.beginDate}</label>
- <input t:id="beginDate" value="contact.observationBeginDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" />
- </div>
- <div>
- <label for="endDate">${message:wao.ui.field.Contact.endDate}</label>
- <input t:id="endDate" value="contact.observationEndDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" />
- </div>
<t:if test="connectedUser.obsMer">
<div>
<label for="mammalsObservation">
@@ -313,7 +319,7 @@
<t:if test="connectedUser.obsDeb">
<div>
<label for="port">
- ${message:wao.ui.field.Contact.terrestrialLocation}
+ ${message:wao.ui.entity.TerrestrialLocation}
</label>
<t:topiaEntitySelector t:id="port"
t:clazzName="TerrestrialLocation"
Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-06-09 13:15:38 UTC (rev 1330)
+++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-06-09 14:27:08 UTC (rev 1331)
@@ -146,12 +146,17 @@
</p:boatHeader>
<p:boatCell>
<span t:type="ck/Tooltip" title="Infos" t:value="prop:boatDescription" t:effect="appear">
- <a t:type="pagelink"
- t:page="boats"
- t:context="contextForBoat"
- title="${message:wao.ui.action.showDetails}" >
- ${sampleRow.boat.name}
- </a>
+ <t:if t:test="boatSampled">
+ <del>${sampleRow.boat.name}</del>
+ <p:else>
+ <a t:type="pagelink"
+ t:page="boats"
+ t:context="contextForBoat"
+ title="${message:wao.ui.action.showDetails}" >
+ ${sampleRow.boat.name}
+ </a>
+ </p:else>
+ </t:if>
</span>
</p:boatCell>
1
0
[Suiviobsmer-commits] r1330 - trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models
by bleny@users.labs.libre-entreprise.org 09 Jun '11
by bleny@users.labs.libre-entreprise.org 09 Jun '11
09 Jun '11
Author: bleny
Date: 2011-06-09 13:15:38 +0000 (Thu, 09 Jun 2011)
New Revision: 1330
Log:
fix contacts import/export when null terrestriallocation in ObsVente
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java 2011-06-09 10:20:19 UTC (rev 1329)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java 2011-06-09 13:15:38 UTC (rev 1330)
@@ -76,7 +76,11 @@
@Override
public String format(TerrestrialLocation terrestrialLocation) {
- return terrestrialLocation.getCode();
+ String code = "";
+ if (terrestrialLocation != null) {
+ code = terrestrialLocation.getCode();
+ }
+ return code;
}
@Override
@@ -93,23 +97,23 @@
indexedLocations.put(locationType, locationsForType);
}
}
- if (StringUtils.isEmpty(code)) {
- throw new IllegalArgumentException(WaoUtils._("wao.import.contact.failure.terrestrialLocationMissing"));
+ TerrestrialLocation terrestrialLocation = null;
+ if (StringUtils.isNotBlank(code)) {
+ LocationType locationType;
+ try {
+ locationType = locationTypeGetter.get(null);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ if (locationType == null) {
+ throw new IllegalArgumentException(WaoUtils._("wao.import.contact.failure.locationTypeMissing"));
+ }
+ terrestrialLocation = indexedLocations.get(locationType).get(code);
+ if (terrestrialLocation == null) {
+ throw new IllegalArgumentException(WaoUtils._("wao.import.contact.failure.wrongTerrestrialLocation",
+ locationType.toString(), code));
+ }
}
- LocationType locationType;
- try {
- locationType = locationTypeGetter.get(null);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- if (locationType == null) {
- throw new IllegalArgumentException(WaoUtils._("wao.import.contact.failure.locationTypeMissing"));
- }
- TerrestrialLocation terrestrialLocation = indexedLocations.get(locationType).get(code);
- if (terrestrialLocation == null) {
- throw new IllegalArgumentException(WaoUtils._("wao.import.contact.failure.wrongTerrestrialLocation",
- locationType.toString(), code));
- }
return terrestrialLocation;
}
}
1
0
[Suiviobsmer-commits] r1329 - in trunk/wao-business/src/main/java/fr/ifremer/wao: . service
by bleny@users.labs.libre-entreprise.org 09 Jun '11
by bleny@users.labs.libre-entreprise.org 09 Jun '11
09 Jun '11
Author: bleny
Date: 2011-06-09 10:20:19 +0000 (Thu, 09 Jun 2011)
New Revision: 1329
Log:
fix filter on contacts ordering
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-06-09 10:09:44 UTC (rev 1328)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-06-09 10:20:19 UTC (rev 1329)
@@ -690,11 +690,11 @@
// PERIOD
if (period != null) {
- query.addBetween(contactProperty.topiaCreateDate(), period.getFromDate(), period.getThruDate());
+ query.addBetween(contactProperty.creationDate(), period.getFromDate(), period.getThruDate());
}
// FROM_DATE
else if (fromDate != null) {
- query.addWhere(contactProperty.topiaCreateDate(), TopiaQuery.Op.GE, fromDate);
+ query.addWhere(contactProperty.creationDate(), TopiaQuery.Op.GE, fromDate);
}
// Reinitialize fromDate of the filter (previously reset for samplingFilter)
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 2011-06-09 10:09:44 UTC (rev 1328)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-06-09 10:20:19 UTC (rev 1329)
@@ -195,7 +195,7 @@
builder.initializeForContact();
// Default order
- filter.setOrderBy(TopiaEntity.TOPIA_CREATE_DATE + " desc");
+ filter.setOrderBy(Contact.PROPERTY_CREATION_DATE + " desc");
TopiaQuery query = builder.applyContactFilter(filter);
@@ -869,7 +869,7 @@
* @throws NullSampleMonthException if sampleMonth not found to update tides
* value
* @see #updateSampleMonthTidesValue(TopiaContext, Contact, Contact, boolean)
- * @deprecated use other implementation below
+ * @deprecated use other implementation below, this implementation left here because some tests still use it
*/
@Deprecated
protected void createOrUpdateContact(TopiaContext transaction,
@@ -1160,8 +1160,10 @@
* @throws TopiaException if an error occurs during ToPIA usage
* @throws ImportRefusedException when data is not correct to load contact
* @throws ParseException from ImportHelper
+ * @deprecated not used in code, only in tests that need an update
* @see ImportHelper
*/
+ @Deprecated
protected void loadContactCsv(CsvReader reader, ContactInput contact,
boolean updateValidation) throws IOException,
TopiaException,
1
0
[Suiviobsmer-commits] r1328 - trunk/wao-business/src/test/java/fr/ifremer/wao/entity
by bleny@users.labs.libre-entreprise.org 09 Jun '11
by bleny@users.labs.libre-entreprise.org 09 Jun '11
09 Jun '11
Author: bleny
Date: 2011-06-09 10:09:44 +0000 (Thu, 09 Jun 2011)
New Revision: 1328
Log:
fix tests
Modified:
trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java 2011-06-09 10:09:44 UTC (rev 1328)
@@ -57,9 +57,6 @@
*/
public class BoatImplTest extends AbstractServiceTest {
- @Rule
- public WaoServices manager = new WaoServices();
-
private static final Logger log = LoggerFactory.getLogger(BoatImplTest.class);
/**
1
0
[Suiviobsmer-commits] r1327 - in trunk/wao-business/src: main/java/fr/ifremer/wao test/java/fr/ifremer/wao test/java/fr/ifremer/wao/business test/java/fr/ifremer/wao/entity test/java/fr/ifremer/wao/io test/java/fr/ifremer/wao/service test/resources
by bleny@users.labs.libre-entreprise.org 09 Jun '11
by bleny@users.labs.libre-entreprise.org 09 Jun '11
09 Jun '11
Author: bleny
Date: 2011-06-09 09:35:04 +0000 (Thu, 09 Jun 2011)
New Revision: 1327
Log:
cleaning in test ; using @Rule ; remove dead code and obsolete tests ; use abstract tests when necessary ; rename tests according to convention
Added:
trunk/wao-business/src/test/java/fr/ifremer/wao/WaoServices.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingTest.java
Removed:
trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java
trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatInfosImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.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
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
trunk/wao-business/src/test/java/fr/ifremer/wao/business/AbstractBusinessTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFixtures.java
trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/entity/SampleRowImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/io/ImportHelperTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/AbstractServiceTest.java
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/ServiceCartographyImplTest.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
trunk/wao-business/src/test/resources/log4j.properties
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -149,20 +149,14 @@
loadConfiguration(conf);
- printConfiguration();
+ if (log.isTraceEnabled()) {
+ configuration.printConfig();
+ }
} catch (ArgumentsParserException eee) {
treateError(eee, n_("wao.error.context.parse"), DEFAULT_FILENAME);
}
}
- protected void printConfiguration() {
- //StringWriter writer = new StringWriter();
-// PrintWriter printWriter = new PrintWriter(new StringWriter());
-// PrintStream stream = new PrintStream();
- configuration.printConfig();
-// stream.
- }
-
protected void loadMigrationConfiguration(ApplicationConfig conf) {
// migration configuration
String callBackName = null;
@@ -243,9 +237,6 @@
@Override
public void start(ServiceUser serviceUser) {
try {
- if (log.isInfoEnabled()) {
- log.info("Start Wao");
- }
DefaultI18nInitializer defaultI18nInitializer = new DefaultI18nInitializer(getI18nBundle());
I18n.init(defaultI18nInitializer, Locale.FRENCH);
setLocale(Locale.FRENCH);
@@ -268,11 +259,6 @@
serviceReferential.initialImport();
serviceUser.addTokensToAllProfiles();
-
- if (log.isInfoEnabled()) {
- log.info("wao is started !");
- }
-
} catch (Exception eee) {
treateError(eee, n_("wao.error.context.start"));
}
@@ -284,9 +270,6 @@
@Override
public void stop() {
try {
- if (log.isInfoEnabled()) {
- log.info("Stop Wao");
- }
getTopiaRootContext().closeContext();
// Close Appender from ActivityCalendarAccessLogger
if (activityCalendarAccessLogger != null) {
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -409,11 +409,14 @@
result.add(dcfFiveCode);
}
- if (log.isInfoEnabled()) {
- log.info(String.format("line %s will be migrated to", dcf5Code));
+ if (log.isDebugEnabled()) {
+ StringBuilder logMessage = new StringBuilder();
+ logMessage.append("line '").append(dcf5Code)
+ .append("' will be migrated to");
for (String[] code : result) {
- log.info(Arrays.toString(code));
+ logMessage.append(" ").append(Arrays.toString(code));
}
+ log.debug(logMessage.toString());
}
return result;
}
Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -1,159 +0,0 @@
-/*
- * #%L
- * Wao :: Business
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2010 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero 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 Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-package fr.ifremer.wao;
-
-import fr.ifremer.wao.service.ServiceBoat;
-import fr.ifremer.wao.service.ServiceCartography;
-import fr.ifremer.wao.service.ServiceChart;
-import fr.ifremer.wao.service.ServiceContact;
-import fr.ifremer.wao.service.ServiceNews;
-import fr.ifremer.wao.service.ServiceReferential;
-import fr.ifremer.wao.service.ServiceSampling;
-import fr.ifremer.wao.service.ServiceSynthesis;
-import fr.ifremer.wao.service.ServiceUser;
-import org.junit.Ignore;
-import org.nuiton.topia.TopiaException;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.DateUtil;
-import org.nuiton.util.Resource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Properties;
-
-/**
- * WaoRunnerTest
- *
- * Created: 23 nov. 2009
- *
- * @author fdesbois <fdesbois at codelutin.com>
- */
- at Ignore
-public class TestManager {
-
- private static final Logger log = LoggerFactory.getLogger(TestManager.class);
-
- private WaoContextImpl context;
-
- public void start() throws WaoException {
- if (log.isDebugEnabled()) {
- log.debug("## TEST START");
- }
- try {
- context = new WaoContextImpl();
- ApplicationConfig configuration = new ApplicationConfig();
- configuration.setOptions(loadFileProperties("WaoTest.properties"));
-
- context.loadConfiguration(configuration);
- context.setI18nBundle("wao-business");
-
- // Set currentDate to 23/10/2009
- Calendar calendar = new GregorianCalendar(2009, 9, 23);
- context.setCurrentDate(calendar.getTime());
-
- context.start(getServiceUser());
- } catch (Exception eee) {
- context.treateError(eee, "Error during loadConfiguration from " +
- "'WaoTest.properties' file");
- }
- }
-
- public void stop() throws WaoException {
- if (log.isDebugEnabled()) {
- log.debug("TEST STOP : clearContext");
- }
- try {
- context.getTopiaRootContext().clear(true);
- } catch (TopiaException eee) {
- context.treateError(eee, "Error during clear database");
- }
- }
-
- public WaoContext getContext() {
- return context;
- }
-
- protected Properties loadFileProperties(String filename)
- throws URISyntaxException, IOException {
- Properties props = new Properties();
- URL url = Resource.getURL(filename);
- if (log.isDebugEnabled()) {
- log.debug(url.toString());
- }
- props.load(url.openStream());
- return props;
- }
-
- public ServiceBoat getServiceBoat() {
- return context.getServiceFactory().getServiceBoat();
- }
-
- public ServiceReferential getServiceReferential() {
- return context.getServiceFactory().getServiceReferential();
- }
-
- public ServiceNews getServiceNews() {
- return context.getServiceFactory().getServiceNews();
- }
-
- public ServiceSampling getServiceSampling() {
- return context.getServiceFactory().getServiceSampling();
- }
-
- public ServiceSynthesis getServiceSynthesis() {
- return context.getServiceFactory().getServiceSynthesis();
- }
-
- public ServiceUser getServiceUser() {
- return context.getServiceFactory().getServiceUser();
- }
-
- public ServiceContact getServiceContact() {
- return context.getServiceFactory().getServiceContact();
- }
-
- public ServiceCartography getServiceCartography() {
- return context.getServiceFactory().getServiceCartography();
- }
-
- public ServiceChart getServiceChart() {
- return context.getServiceFactory().getServiceChart();
- }
-
- public void setCurrentDate(Date date) {
- context.setCurrentDate(date);
- }
-
- public void setCurrentDate(int day, int month, int year) {
- Date date = DateUtil.createDate(day, month, year);
- setCurrentDate(date);
- }
-}
Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/WaoServices.java (from rev 1275, trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java)
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/WaoServices.java (rev 0)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/WaoServices.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -0,0 +1,144 @@
+/*
+ * #%L
+ * Wao :: Business
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.wao;
+
+import fr.ifremer.wao.service.ServiceBoat;
+import fr.ifremer.wao.service.ServiceCartography;
+import fr.ifremer.wao.service.ServiceChart;
+import fr.ifremer.wao.service.ServiceContact;
+import fr.ifremer.wao.service.ServiceNews;
+import fr.ifremer.wao.service.ServiceReferential;
+import fr.ifremer.wao.service.ServiceSampling;
+import fr.ifremer.wao.service.ServiceSynthesis;
+import fr.ifremer.wao.service.ServiceUser;
+import org.apache.commons.io.IOUtils;
+import org.junit.Ignore;
+import org.junit.rules.ExternalResource;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.DateUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.Properties;
+
+/**
+ * WaoRunnerTest
+ *
+ * Created: 23 nov. 2009
+ *
+ * @author fdesbois <fdesbois at codelutin.com>
+ */
+public class WaoServices extends ExternalResource {
+
+ private static final Logger log = LoggerFactory.getLogger(WaoServices.class);
+
+ private WaoContextImpl context;
+
+ @Override
+ protected void before() {
+ InputStream input = null;
+ ApplicationConfig configuration;
+ try {
+ input = getClass().getResourceAsStream("/WaoTest.properties");
+ Properties properties = new Properties();
+ properties.load(input);
+ configuration = new ApplicationConfig(properties);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ } finally {
+ IOUtils.closeQuietly(input);
+ }
+
+ context = new WaoContextImpl();
+ context.loadConfiguration(configuration);
+ context.setI18nBundle("wao-business");
+
+ setCurrentDate(2009, 9, 23);
+
+ context.start(getServiceUser());
+ }
+
+ @Override
+ protected void after() {
+ try {
+ context.getTopiaRootContext().clear(true);
+ } catch (TopiaException eee) {
+ throw new RuntimeException(eee);
+ }
+ }
+
+ public WaoContext getContext() {
+ return context;
+ }
+
+ public ServiceBoat getServiceBoat() {
+ return context.getServiceFactory().getServiceBoat();
+ }
+
+ public ServiceReferential getServiceReferential() {
+ return context.getServiceFactory().getServiceReferential();
+ }
+
+ public ServiceNews getServiceNews() {
+ return context.getServiceFactory().getServiceNews();
+ }
+
+ public ServiceSampling getServiceSampling() {
+ return context.getServiceFactory().getServiceSampling();
+ }
+
+ public ServiceSynthesis getServiceSynthesis() {
+ return context.getServiceFactory().getServiceSynthesis();
+ }
+
+ public ServiceUser getServiceUser() {
+ return context.getServiceFactory().getServiceUser();
+ }
+
+ public ServiceContact getServiceContact() {
+ return context.getServiceFactory().getServiceContact();
+ }
+
+ public ServiceCartography getServiceCartography() {
+ return context.getServiceFactory().getServiceCartography();
+ }
+
+ public ServiceChart getServiceChart() {
+ return context.getServiceFactory().getServiceChart();
+ }
+
+ public void setCurrentDate(Date date) {
+ context.setCurrentDate(date);
+ }
+
+ public void setCurrentDate(int day, int month, int year) {
+ Date date = DateUtil.createDate(day, month, year);
+ setCurrentDate(date);
+ }
+}
Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/WaoServices.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/business/AbstractBusinessTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/business/AbstractBusinessTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/business/AbstractBusinessTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -1,6 +1,6 @@
package fr.ifremer.wao.business;
-import fr.ifremer.wao.TestManager;
+import fr.ifremer.wao.WaoServices;
import fr.ifremer.wao.service.ServiceBoat;
import fr.ifremer.wao.service.ServiceContact;
import fr.ifremer.wao.service.ServiceReferential;
@@ -9,6 +9,7 @@
import fr.ifremer.wao.service.ServiceUser;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
/**
* Business tests are integration tests that check services implementation
@@ -21,7 +22,9 @@
*/
public abstract class AbstractBusinessTest {
- protected TestManager manager;
+ @Rule
+ public WaoServices manager = new WaoServices();
+
protected ServiceUser serviceUser;
protected ServiceReferential serviceReferential;
protected ServiceBoat serviceBoat;
@@ -31,9 +34,6 @@
@Before
public void before() {
- manager = new TestManager();
- manager.start();
-
serviceUser = manager.getServiceUser();
serviceReferential = manager.getServiceReferential();
serviceBoat = manager.getServiceBoat();
@@ -42,9 +42,4 @@
serviceSynthesis = manager.getServiceSynthesis();
}
- @After
- public void after() {
- manager.stop();
- }
-
}
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFixtures.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFixtures.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFixtures.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -1,6 +1,6 @@
package fr.ifremer.wao.business;
-import fr.ifremer.wao.TestManager;
+import fr.ifremer.wao.WaoServices;
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ObsProgram;
@@ -18,7 +18,7 @@
public class ObsDebFixtures {
- protected TestManager manager;
+ protected WaoServices manager;
protected WaoUser josh;
protected Company codeLutin;
@@ -28,7 +28,7 @@
protected boolean boatsImported;
- public ObsDebFixtures(TestManager manager) {
+ public ObsDebFixtures(WaoServices manager) {
this.manager = manager;
}
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -24,23 +24,20 @@
package fr.ifremer.wao.entity;
-import fr.ifremer.wao.service.AbstractServiceTest;
-import fr.ifremer.wao.TestManager;
import fr.ifremer.wao.WaoDAOHelper;
+import fr.ifremer.wao.WaoServices;
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ContactState;
import fr.ifremer.wao.bean.DataReliability;
import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.bean.UserRole;
+import fr.ifremer.wao.service.AbstractServiceTest;
import fr.ifremer.wao.service.ServiceBoat;
import fr.ifremer.wao.service.ServiceContact;
import fr.ifremer.wao.service.ServiceSampling;
import fr.ifremer.wao.service.ServiceUser;
-import org.junit.After;
-import org.junit.AfterClass;
import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
+import org.junit.Rule;
import org.junit.Test;
import org.nuiton.topia.TopiaContext;
import org.nuiton.util.DateUtil;
@@ -60,35 +57,16 @@
*/
public class BoatImplTest extends AbstractServiceTest {
- private static TestManager manager;
+ @Rule
+ public WaoServices manager = new WaoServices();
private static final Logger log = LoggerFactory.getLogger(BoatImplTest.class);
- @BeforeClass
- public static void setUpClass() throws Exception {
- manager = new TestManager();
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- manager.start();
- }
-
- @After
- public void tearDown() throws Exception {
- manager.stop();
- }
-
/**
* Test of canCreateContact method, of class BoatImpl.
*/
@Test
public void testCanCreateContact() throws Exception {
- log.info("canCreateContact");
/** PREPARE DATA **/
ServiceUser serviceUser = manager.getServiceUser();
Company company = new CompanyImpl();
@@ -190,8 +168,6 @@
*/
@Test
public void testGetNbBoarding() throws Exception {
- log.info("getNbBoarding");
-
/** PREPARE DATA **/
InputStream input = getClass().getResourceAsStream("/import/navires.csv");
ServiceBoat serviceBoat = manager.getServiceBoat();
Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatInfosImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatInfosImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatInfosImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -1,75 +0,0 @@
-/*
- * #%L
- * Wao :: Business
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2010 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero 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 Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-package fr.ifremer.wao.entity;
-
-import fr.ifremer.wao.TestManager;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * BoatInfosImplTest
- *
- * Created: 21 déc. 2009
- *
- * @author fdesbois <fdesbois at codelutin.com>
- */
-public class BoatInfosImplTest {
-
- private static TestManager manager;
-
- public BoatInfosImplTest() {
- }
-
- @BeforeClass
- public static void setUpClass() throws Exception {
- manager = new TestManager();
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- manager.start();
- }
-
- @After
- public void tearDown() throws Exception {
- manager.stop();
- }
-
- /**
- * Test of getNbBoardingForCompany method, of class BoatInfosImpl.
- */
- @Test
- public void testGetNbBoardingForCompany() {
- System.out.println("getNbBoardingForCompany");
- }
-
-}
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/entity/SampleRowImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/entity/SampleRowImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/entity/SampleRowImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -24,23 +24,14 @@
package fr.ifremer.wao.entity;
-import fr.ifremer.wao.TestManager;
-import fr.ifremer.wao.WaoDAOHelper;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
+import fr.ifremer.wao.WaoServices;
+import org.junit.Assert;
+import org.junit.Rule;
import org.junit.Test;
-import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.TopiaException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import java.util.Calendar;
import java.util.GregorianCalendar;
-import static org.junit.Assert.assertFalse;
-
/**
* SampleRowImplTest
*
@@ -50,138 +41,18 @@
*/
public class SampleRowImplTest {
- private static TestManager manager;
+ // XXX 20110609 bleny it's lame to need to init services (init current date) to make this test works
+ @Rule
+ public WaoServices waoServices = new WaoServices();
- private static final Logger log =
- LoggerFactory.getLogger(SampleRowImplTest.class);
-
- public SampleRowImplTest() {
- }
-
- @BeforeClass
- public static void setUpClass() throws Exception {
- manager = new TestManager();
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- manager.start();
- }
-
- @After
- public void tearDown() throws Exception {
- manager.stop();
- }
-
- private SampleRow prepareData() throws TopiaException {
- TopiaContext transaction = manager.getContext().beginTransaction();
-
- SampleRowDAO dao = WaoDAOHelper.getSampleRowDAO(transaction);
-
- SampleRow row = dao.create();
- row.setCode("2010_1");
-
- SampleMonthDAO monthDAO = WaoDAOHelper.getSampleMonthDAO(transaction);
-
- SampleMonth month = monthDAO.create(SampleMonth.PROPERTY_SAMPLE_ROW, row);
- Calendar calendar = new GregorianCalendar(2009, 3, 1);
- month.setPeriodDate(calendar.getTime());
- row.addSampleMonth(month);
-
- transaction.commitTransaction();
- SampleRow myRow = dao.findByCode("2010_1");
- myRow.sizeElligibleBoat();
- myRow.sizeSampleMonth();
- transaction.closeContext();
- return myRow;
- }
-
- private SampleRow getRowFromContext() throws TopiaException {
- TopiaContext transaction = manager.getContext().beginTransaction();
- SampleRowDAO dao = WaoDAOHelper.getSampleRowDAO(transaction);
- SampleRow resultRow = dao.findByCode("2010_1");
- resultRow.sizeElligibleBoat();
- resultRow.sizeSampleMonth();
- transaction.closeContext();
- return resultRow;
- }
-
-// @Test
-// public void testAddRealTideTime() throws Exception {
-// log.info("addRealTideTime");
-//
-// /** PREPARE DATA **/
-// SampleRow row = prepareData();
-//
-// Contact contact = new ContactImpl();
-// Date beginDate = DateUtil.createDate(12, 4, 2009);
-// Date endDate = DateUtil.createDate(15, 4, 2009);
-// contact.setObservationBeginDate(beginDate);
-// contact.setObservationEndDate(endDate);
-//
-// /** EXEC METHOD **/
-// row.addRealTideTime(contact);
-// SampleMonth result = getRowFromContext().getSampleMonth(beginDate);
-// assertEquals(1, result.getRealTidesValue());
-//
-//// // Reinit result for next test
-//// result.addRealTideTime(-1);
-//// // Test with a more than one day interval dates from contact
-//// endDate = DateUtil.createDate(18, 4, 2009);
-//// contact.setObservationEndDate(endDate);
-////
-//// getRowFromContext().addRealTideTime(contact);
-//// result = getRowFromContext().getSampleMonth(beginDate);
-//// assertEquals(1, result.getRealTidesValue());
-// }
-//
-// @Test
-// public void testRemoveRealTideTime() throws Exception {
-// log.info("addRealTideTime");
-//
-// /** PREPARE DATA **/
-// SampleRow row = prepareData();
-//
-// Contact contact = new ContactImpl();
-// Date beginDate = DateUtil.createDate(12, 4, 2009);
-// Date endDate = DateUtil.createDate(12, 4, 2009);
-// contact.setObservationBeginDate(beginDate);
-// contact.setObservationEndDate(endDate);
-//
-// /** EXEC METHOD **/
-// row.removeRealTideTime(contact);
-// SampleMonth result = getRowFromContext().getSampleMonth(beginDate);
-// // result stay at 0, can't remove 1 tide from 0
-// assertEquals(0, result.getRealTidesValue());
-//
-// // Reinit result for next test
-// result.addRealTideTime(12);
-//
-// // Test with a more than one day interval dates from contact : only one tide to remove
-// endDate = DateUtil.createDate(18, 4, 2009);
-// contact.setObservationEndDate(endDate);
-//
-// getRowFromContext().removeRealTideTime(contact);
-// result = getRowFromContext().getSampleMonth(beginDate);
-// assertEquals(11, result.getRealTidesValue());
-// }
-
@Test
public void testIsFinished() throws Exception {
- log.info("isFinished()");
-
SampleRow row = new SampleRowImpl();
Calendar calendar = new GregorianCalendar(2009, 8, 23);
row.setPeriodEnd(calendar.getTime());
// with a gap of one month, the row is not considered as finished
- assertFalse(row.isFinished(-1));
-
-
+ Assert.assertFalse(row.isFinished(-1));
}
}
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/io/ImportHelperTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/io/ImportHelperTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/io/ImportHelperTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -25,16 +25,14 @@
package fr.ifremer.wao.io;
import com.csvreader.CsvReader;
-import fr.ifremer.wao.TestManager;
+import fr.ifremer.wao.WaoServices;
import fr.ifremer.wao.io.csv.ImportHelper;
-import fr.ifremer.wao.io.csv.WaoCsvHeader.CONTACT;
import fr.ifremer.wao.io.csv.WaoCsvHeader.DatedHeader;
import fr.ifremer.wao.io.csv.WaoCsvHeader.SAMPLING;
import org.junit.After;
-import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
-import org.junit.BeforeClass;
+import org.junit.Rule;
import org.junit.Test;
import org.nuiton.util.DateUtil;
import org.slf4j.Logger;
@@ -45,10 +43,7 @@
import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import java.util.Calendar;
import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
import static org.junit.Assert.assertEquals;
@@ -58,30 +53,16 @@
*/
public class ImportHelperTest {
- private static TestManager manager;
+ @Rule
+ public WaoServices manager = new WaoServices();
- private static final Logger log = LoggerFactory.getLogger(ImportHelperTest.class);
+ private static final Logger log =
+ LoggerFactory.getLogger(ImportHelperTest.class);
- private CsvReader reader;
+ protected CsvReader reader;
- public ImportHelperTest() {
- manager = new TestManager();
- }
-
- @BeforeClass
- public static void setUpClass() throws Exception {
-
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
-
- }
-
@Before
public void setUp() throws IOException {
- manager.start();
-
InputStream input = getClass().getResourceAsStream("/import/misc.csv");
reader = new CsvReader(input, Charset.forName("UTF-8"));
reader.readHeaders();
@@ -90,50 +71,9 @@
@After
public void tearDown() {
reader.close();
-
- manager.stop();
}
/**
- * Test of formatContactCode method, of class ImportHelper.
- */
- @Test
- public void testFormatContactCode() {
- log.info("formatContactCode");
- Date createDate = manager.getContext().getCurrentDate();
- Calendar calendar = new GregorianCalendar(Locale.FRENCH);
- calendar.setTime(createDate);
- calendar.set(Calendar.HOUR_OF_DAY, 10);
- calendar.set(Calendar.MINUTE, 1);
- calendar.set(Calendar.SECOND, 50);
- calendar.set(Calendar.MILLISECOND, 260);
- String expResult = "100150260";
- String result = CONTACT.TIME_FORMAT.format(calendar.getTime());
- assertEquals(expResult, result);
- }
-
- /**
- * Test of parseContactCreateDate method, of class ImportHelper.
- * @throws Exception all exceptions are thrown
- */
- @Test
- public void testParseContactCreateDate() throws Exception {
- System.out.println("parseContactCreateDate");
- String code = "101250718";
- Date createDate = manager.getContext().getCurrentDate();
- Calendar calendar = new GregorianCalendar(Locale.FRENCH);
- calendar.setTime(createDate);
- calendar.set(Calendar.HOUR_OF_DAY, 10);
- calendar.set(Calendar.MINUTE, 12);
- calendar.set(Calendar.SECOND, 50);
- calendar.set(Calendar.MILLISECOND, 718);
- Date expResult = calendar.getTime();
- Date date = DateUtil.createDate(23,10,2009);
- Date result = ImportHelper.parseContactCreateDate(code, date);
- assertEquals(expResult, result);
- }
-
- /**
* Test of readSampleRowCode method, of class ImportHelper.
* @throws Exception all exceptions are thrown
*/
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/AbstractServiceTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/AbstractServiceTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/AbstractServiceTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -21,7 +21,7 @@
package fr.ifremer.wao.service;
-import fr.ifremer.wao.TestManager;
+import fr.ifremer.wao.WaoServices;
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoDAOHelper;
import fr.ifremer.wao.bean.ConnectedUser;
@@ -47,6 +47,7 @@
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
+import org.junit.Rule;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.util.DateUtil;
@@ -70,7 +71,8 @@
private static final Logger log =
LoggerFactory.getLogger(AbstractServiceTest.class);
- protected static TestManager manager;
+ @Rule
+ public WaoServices manager = new WaoServices();
protected ServiceSamplingImpl serviceSampling;
@@ -97,23 +99,13 @@
log.info("tmp dir : " + file + " was created");
}
}
- manager = new TestManager();
}
@Before
public void setUp() throws Exception {
- if (log.isDebugEnabled()) {
- log.debug("Start manager");
- }
- manager.start();
serviceSampling = (ServiceSamplingImpl) manager.getServiceSampling();
}
- @After
- public void tearDown() throws Exception {
- manager.stop();
- }
-
/**
* Create a company : <br />
* <ul>
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ActivityCalendarImportTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ActivityCalendarImportTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ActivityCalendarImportTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -24,7 +24,7 @@
package fr.ifremer.wao.service;
-import fr.ifremer.wao.TestManager;
+import fr.ifremer.wao.WaoServices;
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoProperty;
import org.junit.After;
@@ -32,6 +32,7 @@
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,43 +51,20 @@
*
* @author fdesbois <fdesbois at codelutin.com>
*/
+ at Ignore("activity calendars are deprecated")
public class ActivityCalendarImportTest {
- private static TestManager manager;
+ public WaoServices manager = new WaoServices();
private static final Logger log =
LoggerFactory.getLogger(ActivityCalendarImportTest.class);
- public ActivityCalendarImportTest() {
- }
-
- @BeforeClass
- public static void setUpClass() throws Exception {
- manager = new TestManager();
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() {
- manager.start();
- }
-
- @After
- public void tearDown() {
- manager.stop();
- }
-
/**
* Test of run method, of class ActivityCalendarImport.
*/
@Test
public void testRun()
throws IOException, InterruptedException, WaoBusinessException {
- log.info("run");
-
ServiceBoat serviceBoat = manager.getServiceBoat();
InputStream input = getClass().getResourceAsStream("/import/navires.csv");
serviceBoat.importBoatCsv(input);
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -24,7 +24,7 @@
package fr.ifremer.wao.service;
-import fr.ifremer.wao.TestManager;
+import fr.ifremer.wao.WaoServices;
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoDAOHelper;
import fr.ifremer.wao.WaoProperty;
@@ -79,28 +79,15 @@
*/
public class ServiceBoatImplTest extends AbstractServiceTest {
- private static TestManager manager;
-
private static final Logger log = LoggerFactory.getLogger(ServiceBoatImplTest.class);
private ServiceBoat service;
- @BeforeClass
- public static void setUpClass() throws Exception {
- manager = new TestManager();
- }
-
@Before
public void setUp() throws Exception {
- manager.start();
service = manager.getServiceBoat();
}
- @After
- public void tearDown() throws Exception {
- manager.stop();
- }
-
/**
* Test of getBoatsByFilter method, of class ServiceBoatImpl.
* @throws Exception
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceCartographyImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceCartographyImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceCartographyImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -55,11 +55,10 @@
private static final Logger log =
LoggerFactory.getLogger(ServiceCartographyImplTest.class);
- private ServiceCartography service;
+ protected ServiceCartography service;
@Before
public void initialize() {
- log.info("initialize ServiceCartographyImplTest");
service = manager.getServiceCartography();
}
Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -1,112 +0,0 @@
-/*
- * #%L
- * 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 Affero 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 Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-package fr.ifremer.wao.service;
-
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.ContactFilter;
-import fr.ifremer.wao.bean.ContactFilterImpl;
-import fr.ifremer.wao.bean.ObsProgram;
-import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.entity.Company;
-import fr.ifremer.wao.entity.Contact;
-import fr.ifremer.wao.entity.WaoUser;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.nuiton.topia.TopiaException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Map;
-
-/**
- * ServiceContactImplTest
- *
- * Created: 3 mai 2010
- *
- * @author fdesbois
- * $Id$
- */
-public class ServiceContactImplTest extends AbstractServiceTest {
-
- private static final Logger log =
- LoggerFactory.getLogger(ServiceContactImplTest.class);
-
- private ServiceContact service;
-
- @Before
- public void initialize() {
- log.info("initialize ServiceContactImplTest");
- service = manager.getServiceContact();
- }
-
- @Test
- public void testGetContactsFilteredByObserver() throws TopiaException {
- log.info("getContactsFilteredByObserver");
-
- /** PREPARE DATA **/
- Contact contact = createDefaultContact();
-
- /** EXEC METHOD **/
- ContactFilter filter = new ContactFilterImpl();
- filter.setObserver(findDefaultObserver());
-
- log.info("test 1 : Ok good filter, contact is correctly returned");
- Map<String, Contact> results = service.getContacts(filter);
-
- Assert.assertEquals(1, results.size());
- Contact contactFind = results.get(contact.getTopiaId());
- Assert.assertEquals(contact, contactFind);
-
- log.info("test 2 : Bad filter, no contact is returned");
- WaoUser observer2 = createUser("marge",
- UserRole.OBSERVER, findDefaultCompany());
-
- filter.setObserver(observer2);
-
- results = service.getContacts(filter);
- Assert.assertEquals(0, results.size());
- }
-
- @Test
- public void testSaveContactWithMultipleObservers() throws TopiaException {
- Contact contact = createDefaultContact();
-
- Company company = createCompany("Boite");
- WaoUser toto = createUser("toto", UserRole.OBSERVER, company);
- contact.addSecondaryObservers(toto);
- contact.addSecondaryObservers(createUser("titi", UserRole.OBSERVER, company));
-
- ConnectedUser connectedUser = getConnectedUser(toto, UserRole.COORDINATOR, ObsProgram.OBSMER);
- service.saveContact(connectedUser, contact, false);
-
- Contact savedContact = service.getContact(contact.getTopiaId());
- Assert.assertEquals(2, savedContact.getSecondaryObservers().size());
-
- contact.clearSecondaryObservers();
- service.saveContact(connectedUser, contact, false);
- savedContact = service.getContact(contact.getTopiaId());
- Assert.assertEquals(0, savedContact.getSecondaryObservers().size());
- }
-
-
-}
Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java (from rev 1321, trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java)
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java (rev 0)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -0,0 +1,760 @@
+/*
+ * #%L
+ * 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 Affero 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.wao.service;
+
+import com.csvreader.CsvReader;
+import fr.ifremer.wao.WaoBusinessException;
+import fr.ifremer.wao.WaoDAOHelper;
+import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.bean.ContactState;
+import fr.ifremer.wao.bean.ContactStatus.NullSampleMonthException;
+import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.SamplingStrategy;
+import fr.ifremer.wao.bean.UserRole;
+import fr.ifremer.wao.entity.Boat;
+import fr.ifremer.wao.entity.BoatDAO;
+import fr.ifremer.wao.entity.Company;
+import fr.ifremer.wao.entity.CompanyDAO;
+import fr.ifremer.wao.entity.Contact;
+import fr.ifremer.wao.entity.ContactDAO;
+import fr.ifremer.wao.entity.SampleMonth;
+import fr.ifremer.wao.entity.SampleMonthDAO;
+import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.entity.SampleRowDAO;
+import fr.ifremer.wao.entity.UserProfileImpl;
+import fr.ifremer.wao.entity.WaoUser;
+import fr.ifremer.wao.entity.WaoUserDAO;
+import fr.ifremer.wao.io.ContactInput;
+import fr.ifremer.wao.io.ImportRefusedException;
+import fr.ifremer.wao.io.ImportResults;
+import fr.ifremer.wao.io.csv.WaoCsvHeader.BOAT;
+import fr.ifremer.wao.io.csv.WaoCsvHeader.CONTACT;
+import fr.ifremer.wao.io.csv.WaoCsvHeader.SAMPLING;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.topia.framework.TopiaQuery;
+import org.nuiton.util.DateUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.when;
+
+/**
+ * ServiceContactImplTest
+ *
+ * Created: 16 avr. 2010
+ *
+ * @author fdesbois
+ * @version $Revision$
+ *
+ * Mise a jour: $Date$
+ * par : $Author$
+ */
+public class ServiceContactImplTest extends AbstractServiceTest {
+
+ private static final Logger log =
+ LoggerFactory.getLogger(ServiceContactImplTest.class);
+
+ protected ServiceContactImpl service;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ service = (ServiceContactImpl) manager.getServiceContact();
+ sampleMonth = null;
+ sampleRow = null;
+ boat = null;
+ company = null;
+ observer = null;
+ }
+
+ // Real data
+ protected SampleRow sampleRow;
+ protected SampleMonth sampleMonth;
+ protected Boat boat;
+ protected Company company;
+ protected WaoUser observer;
+
+ // Mock data
+ @Mock
+ protected Contact contact;
+ @Mock
+ protected Contact contactReference;
+ @Mock
+ protected ConnectedUser creator;
+ @Mock
+ protected CsvReader reader;
+
+ protected void prepareData(boolean needBoat, boolean needObserver)
+ throws TopiaException {
+ TopiaContext transaction = manager.getContext().beginTransaction();
+ try {
+
+ if (needObserver) {
+ CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
+ company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
+
+ WaoUserDAO userDAO = WaoDAOHelper.getWaoUserDAO(transaction);
+ observer = userDAO.create(
+ WaoUser.PROPERTY_COMPANY, company,
+ WaoUser.PROPERTY_LOGIN, "jmichmuche",
+ WaoUser.PROPERTY_FIRST_NAME, "Jean",
+ WaoUser.PROPERTY_LAST_NAME, "Michmuche");
+
+ when(contact.getMainObserver()).thenReturn(observer);
+ }
+
+ SampleRowDAO rowDAO =
+ WaoDAOHelper.getSampleRowDAO(transaction);
+ log.trace("SampleRow : 2010_0001");
+ sampleRow = rowDAO.create(SampleRow.PROPERTY_CODE, "2010_0001",
+ SampleRow.PROPERTY_COMPANY, company);
+
+ SampleMonthDAO monthDAO =
+ WaoDAOHelper.getSampleMonthDAO(transaction);
+ log.trace("SampleMonth : 03/2010 _ row 2010_0001");
+ Date monthDate = DateUtil.createDate(1, 3, 2010);
+ sampleMonth = monthDAO.create(SampleMonth.PROPERTY_SAMPLE_ROW, sampleRow,
+ SampleMonth.PROPERTY_PERIOD_DATE, monthDate);
+ monthDate = DateUtil.createDate(1, 4, 2010);
+ monthDAO.create(SampleMonth.PROPERTY_SAMPLE_ROW, sampleRow,
+ SampleMonth.PROPERTY_PERIOD_DATE, monthDate);
+
+ Date contactDate = DateUtil.createDate(18, 3, 2010);
+ when(contact.getObservationBeginDate()).thenReturn(contactDate);
+ when(contact.getSampleRow()).thenReturn(sampleRow);
+
+ if (needBoat) {
+ BoatDAO boatDAO = WaoDAOHelper.getBoatDAO(transaction);
+ boat = boatDAO.create(Boat.PROPERTY_IMMATRICULATION, 175846, Boat.PROPERTY_ACTIVE, true);
+ when(contact.getBoat()).thenReturn(boat);
+ }
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+ }
+
+ @Test
+ public void testUpdateSampleMonthTidesValue() throws TopiaException,
+ NullSampleMonthException {
+
+ /** PREPARE DATA **/
+ prepareData(false, false);
+ Date tideBeginDate = new Date(contact.getObservationBeginDate().getTime());
+ when(contactReference.getObservationBeginDate()).thenReturn(tideBeginDate);
+ when(contactReference.getSampleRow()).thenReturn(sampleRow);
+ // WARN : by default mockito doesn't initialize Boolean type with null
+ when(contactReference.getValidationProgram()).thenReturn(null);
+ when(contact.getValidationProgram()).thenReturn(null);
+
+ /** EXEC METHOD **/
+ log.trace("test 1 : ContactState changed from null to OBSERVATION_DONE" +
+ " -> increment estimated tides value");
+ TopiaContext transaction = manager.getContext().beginTransaction();
+ try {
+ when(contact.getContactState()).
+ thenReturn(ContactState.OBSERVATION_DONE);
+
+ service.updateSampleMonthTidesValue(transaction, null,
+ contact, false);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ // test 1 : verification sampleMonth estimated tides = 1
+ checkTidesValue(1, false);
+
+ // test 2 : ContactState changed from OBSERVATION_DONE to
+ // CONTACT_REFUSED -> decrement estimated tides value
+ transaction = manager.getContext().beginTransaction();
+ try {
+ when(contactReference.getContactState()).
+ thenReturn(ContactState.OBSERVATION_DONE);
+
+ when(contact.getContactState()).
+ thenReturn(ContactState.CONTACT_REFUSED);
+
+ service.updateSampleMonthTidesValue(transaction, contactReference,
+ contact, false);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ // test 2 : verification sampleMonth estimated tides = 0
+ checkTidesValue(0, false);
+
+ // Reset contactState to OBSERVATION_DONE for next test
+ when(contact.getContactState()).
+ thenReturn(ContactState.OBSERVATION_DONE);
+
+ // test 3 : CompanyValidation changed from null to FALSE -> do nothing
+ transaction = manager.getContext().beginTransaction();
+ try {
+ when(contactReference.getValidationCompany()).thenReturn(null);
+
+ when(contact.getValidationCompany()).thenReturn(Boolean.FALSE);
+
+ service.updateSampleMonthTidesValue(transaction, contactReference,
+ contact, true);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ // test 3 : verification sampleMonth real tides = 0
+ checkTidesValue(0, true);
+
+ // test 4 : CompanyValidation changed from FALSE to TRUE -> increment
+ // real tides value
+ transaction = manager.getContext().beginTransaction();
+ try {
+ when(contactReference.getValidationCompany()).
+ thenReturn(Boolean.FALSE);
+
+ when(contact.getValidationCompany()).thenReturn(Boolean.TRUE);
+
+ service.updateSampleMonthTidesValue(transaction, contactReference,
+ contact, true);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ // test 4 : verification sampleMonth real tides = 1
+ checkTidesValue(1, true);
+
+ // ContactReference after saving contact will normally have this value :
+ when(contactReference.getValidationCompany()).thenReturn(Boolean.TRUE);
+
+ // test 5 : CompanyValidation doesn't changed but ProgramValidation is
+ // set to FALSE -> decrement real tides
+ transaction = manager.getContext().beginTransaction();
+ try {
+ when(contact.getValidationProgram()).thenReturn(Boolean.FALSE);
+
+ service.updateSampleMonthTidesValue(transaction, contactReference,
+ contact, true);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ // test 5 : verification sampleMonth real tides = 0
+ checkTidesValue(0, true);
+
+ // test 6 : Prepare data for delete case
+ // PREPARE DATA : update estimated to 1 and real to 1
+ transaction = manager.getContext().beginTransaction();
+ try {
+ // Will update estimatedTides up to 1
+ // contact has already OBSERVATION_DONE
+ when(contactReference.getContactState()).
+ thenReturn(ContactState.OBSERVATION_EXPECTED);
+
+ // Will update realTides up to 1
+ // contact has already validationCompany = TRUE
+ when(contactReference.getValidationCompany()).thenReturn(null);
+ when(contact.getValidationProgram()).thenReturn(Boolean.TRUE);
+
+ service.updateSampleMonthTidesValue(transaction, contactReference,
+ contact, true);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ // ContactReference after saving contact will normally have this values
+ when(contactReference.getValidationProgram()).thenReturn(Boolean.TRUE);
+ when(contactReference.getValidationCompany()).thenReturn(Boolean.TRUE);
+
+ // test 6 : Delete contact (new contact is null) -> decrement realTides
+ // and estimatedTides
+ transaction = manager.getContext().beginTransaction();
+ try {
+ when(contactReference.getContactState()).
+ thenReturn(ContactState.OBSERVATION_DONE);
+ service.updateSampleMonthTidesValue(transaction, contactReference,
+ null, true);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ // test 6 : verification sampleMonth real tides = 0 and estimated tides = 0
+ checkTidesValue(0, true);
+ checkTidesValue(0, false);
+
+ // test 7 : SampleMonth will change from 03/2010 to 04/2010 -> decrement
+ // estimated tides from oldMonth
+ transaction = manager.getContext().beginTransaction();
+ try {
+ // contactReference OBSERVATION_DONE, validations true/true
+ // contact OBSERVATION_DONE, validations true/true
+ when(contactReference.getContactState()).
+ thenReturn(ContactState.OBSERVATION_DONE);
+ when(contact.getContactState()).
+ thenReturn(ContactState.OBSERVATION_DONE);
+ when(contact.getObservationBeginDate()).
+ thenReturn(DateUtil.createDate(3, 4, 2010));
+
+ service.updateSampleMonthTidesValue(transaction, contactReference,
+ contact, true);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ // test 7 : verification old sampleMonth estimated tides = 0
+ checkTidesValue(0, false);
+
+ // test 7 : verification new sampleMonth estimated tides = 1 and real
+ // tides = 1
+ transaction = manager.getContext().beginTransaction();
+ try {
+ SampleMonthDAO dao = WaoDAOHelper.getSampleMonthDAO(transaction);
+
+ TopiaQuery query = dao.createQuery();
+ query.addEquals(SampleMonth.PROPERTY_PERIOD_DATE, DateUtil.createDate(1, 4, 2010));
+
+ SampleMonth month = dao.findByQuery(query);
+
+ assertEquals(1, month.getEstimatedTidesValue());
+ assertEquals(1, month.getRealTidesValue());
+
+ } finally {
+ transaction.closeContext();
+ }
+ }
+
+ @Test
+ public void testDecrementSampleMonthContactRefused()
+ throws TopiaException, NullSampleMonthException {
+
+ /** PREPARE DATA **/
+ prepareData(false, false);
+
+ // contactReference as the same tideBeginDate and sampleRow as contact
+ Date tideBeginDate = new Date(contact.getObservationBeginDate().getTime());
+ when(contactReference.getObservationBeginDate()).thenReturn(tideBeginDate);
+ when(contactReference.getSampleRow()).thenReturn(sampleRow);
+
+ // Initialize correct old status in contactReference
+ when(contactReference.getValidationCompany()).thenReturn(Boolean.TRUE);
+ when(contactReference.getContactState()).
+ thenReturn(ContactState.OBSERVATION_DONE);
+ when(contactReference.getValidationProgram()).thenReturn(null);
+
+
+ // Initialize data in sampleMonth
+ TopiaContext transaction = manager.getContext().beginTransaction();
+ try {
+ SampleMonthDAO dao = WaoDAOHelper.getSampleMonthDAO(transaction);
+
+ sampleMonth.addEstimatedTideTime(1);
+ sampleMonth.addRealTideTime(1);
+
+ dao.update(sampleMonth);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ // both estimated and real as value = 1
+ checkTidesValue(1, false);
+ checkTidesValue(1, true);
+
+ /** EXEC METHOD **/
+ // test 1 : validationProgram null -> FALSE, estimated -1 and real -1
+ transaction = manager.getContext().beginTransaction();
+ try {
+ when(contact.getValidationCompany()).thenReturn(Boolean.TRUE);
+ when(contact.getContactState()).
+ thenReturn(ContactState.OBSERVATION_DONE);
+ when(contact.getValidationProgram()).thenReturn(Boolean.FALSE);
+
+ service.updateSampleMonthTidesValue(transaction, contactReference,
+ contact, true);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ checkTidesValue(0, false);
+ checkTidesValue(0, true);
+
+ // test 2 : validationProgram FALSE -> null, estimated +1 and real +1
+ transaction = manager.getContext().beginTransaction();
+ try {
+ when(contactReference.getValidationProgram()).
+ thenReturn(Boolean.FALSE);
+ when(contact.getValidationProgram()).thenReturn(null);
+
+ service.updateSampleMonthTidesValue(transaction, contactReference,
+ contact, true);
+
+ transaction.commitTransaction();
+ } finally {
+ transaction.closeContext();
+ }
+
+ checkTidesValue(1, false);
+ checkTidesValue(1, true);
+ }
+
+ protected void checkTidesValue(int expected, boolean real)
+ throws TopiaException {
+ TopiaContext transaction = manager.getContext().beginTransaction();
+ try {
+ SampleMonthDAO dao = WaoDAOHelper.getSampleMonthDAO(transaction);
+
+ SampleMonth result = dao.findByTopiaId(sampleMonth.getTopiaId());
+ int test = real ? result.getRealTidesValue() :
+ result.getEstimatedTidesValue();
+ assertEquals(expected, test);
+ } finally {
+ transaction.closeContext();
+ }
+ }
+
+ @Test
+ public void testLoadContactCsv() throws TopiaException,
+ WaoBusinessException,
+ IOException,
+ ImportRefusedException,
+ ParseException {
+
+ /** PREPARE DATA **/
+ prepareData(true, true);
+
+ when(reader.get(CONTACT.CONT_ETAT.name())).
+ thenReturn(ContactState.OBSERVATION_DONE.name());
+ when(reader.get(CONTACT.OBSERV_ID.name())).
+ thenReturn(observer.getLogin());
+ when(reader.get(SAMPLING.PLAN_CODE.name())).
+ thenReturn(sampleRow.getCode());
+ when(reader.get(BOAT.NAVS_COD.name())).
+ thenReturn(String.valueOf(boat.getImmatriculation()));
+ when(reader.get(CONTACT.CONT_DEBUT_MAREE.name())).
+ thenReturn("22/03/2010 1:00");
+ when(reader.get(CONTACT.CONT_FIN_MAREE.name())).
+ thenReturn("22/03/10 2:15");
+ when(reader.get(CONTACT.CONT_NB_OBSERV.name())).
+ thenReturn("1");
+ when(reader.get(CONTACT.CONT_MAM_CAPT.name())).
+ thenReturn("");
+ when(reader.get(CONTACT.CONT_MAM_OBS.name())).
+ thenReturn("X");
+ when(reader.get(CONTACT.CONT_ALLEGRO.name())).
+ thenReturn("25/03/2010");
+ when(reader.get(CONTACT.CONT_SOCIETE_VALID.name())).
+ thenReturn("A");
+ when(reader.get(CONTACT.CONT_PROGRAM_VALID.name())).
+ thenReturn("");
+ when(reader.get(CONTACT.CONT_CREATION.name())).
+ thenReturn("18/03/10");
+ when(reader.get(CONTACT.CONT_CODE.name())).
+ thenReturn("");
+ String comment = "Commentaire sur le contact\nAutre ligne";
+ when(reader.get(CONTACT.CONT_COMMENT.name())).
+ thenReturn(comment);
+ when(reader.get(CONTACT.CONT_DATA_RELIABILITY.name())).
+ thenReturn("DOUBTFUL");
+ when(reader.get(CONTACT.CONT_SAMPLING_STRATEGY.name())).
+ thenReturn(SamplingStrategy.SIMULTANEOUS_ALL_SPECIES.name());
+ when(reader.get(CONTACT.CONT_COMPLETE_SAMPLING.name())).
+ thenReturn("Y");
+
+ when(creator.getCompany()).thenReturn(company);
+ when(creator.isAdmin()).thenReturn(false);
+ when(creator.getLogin()).thenReturn(observer.getLogin());
+
+ /** EXEC METHOD **/
+
+ // test 1 : load contact by Creator jmichmuche -> no error
+ ContactInput result = new ContactInput();
+ TopiaContext transaction = manager.getContext().beginTransaction();
+ try {
+ result.initialize(transaction, creator, 1);
+ service.loadContactCsv(reader, result, false);
+ Date createDate = DateUtil.createDate(18,3,2010);
+ assertEquals(createDate, result.getCreationDate());
+ assertEquals(ContactState.OBSERVATION_DONE, result.getContactState());
+ assertEquals(observer, result.getMainObserver());
+ assertEquals(sampleRow, result.getSampleRow());
+ assertEquals(boat, result.getBoat());
+
+ assertEquals(DateUtil.getDifferenceInMinutes(DateUtil.createDate(0,0,1,22,3,2010), result.getObservationBeginDate()), 0);
+ assertEquals(DateUtil.getDifferenceInMinutes(DateUtil.createDate(0,15,2,22,3,2010), result.getObservationEndDate()), 0);
+
+ assertEquals(1, result.getNbObservants());
+ assertFalse(result.getMammalsCapture());
+ assertTrue(result.getMammalsObservation());
+ assertEquals(comment, result.getComment());
+ assertEquals(DateUtil.createDate(25,3,2010),
+ result.getDataInputDate());
+ // No validation update : creator is not an admin
+ assertNull(result.getValidationCompany());
+ assertNull(result.getValidationProgram());
+ } finally {
+ transaction.closeContext();
+ }
+
+ // test 2 : Error on boat
+ when(reader.get(BOAT.NAVS_COD.name())).thenReturn("2222");
+ checkImportError(Contact.PROPERTY_BOAT);
+ // Reinit boat
+ when(reader.get(BOAT.NAVS_COD.name())).
+ thenReturn(String.valueOf(boat.getImmatriculation()));
+
+ // test 3 : Error on company
+ when(creator.getCompany()).thenReturn(null);
+ checkImportError(WaoUser.PROPERTY_COMPANY);
+ // Reinit creator company
+ when(creator.getCompany()).thenReturn(company);
+
+ // test 4 : Error on observer
+ when(reader.get(CONTACT.OBSERV_ID.name())).thenReturn("FAKE");
+ checkImportError(Contact.PROPERTY_MAIN_OBSERVER);
+ // Reinit observer
+ when(reader.get(CONTACT.OBSERV_ID.name())).
+ thenReturn(observer.getLogin());
+
+ // test 5 : Error on sampleRow
+ when(reader.get(SAMPLING.PLAN_CODE.name())).thenReturn("FAKE");
+ checkImportError(Contact.PROPERTY_SAMPLE_ROW);
+ // Reinit sampleRow
+ when(reader.get(SAMPLING.PLAN_CODE.name())).
+ thenReturn(sampleRow.getCode());
+
+ // test 6 : Error on state
+ when(reader.get(CONTACT.CONT_ETAT.name())).thenReturn("FAKE");
+ checkImportError(Contact.PROPERTY_STATE);
+ // Reinit state
+ when(reader.get(CONTACT.CONT_ETAT.name())).
+ thenReturn(ContactState.OBSERVATION_DONE.name());
+ }
+
+ protected void checkImportError(String field) throws TopiaException {
+ ContactInput result = new ContactInput();
+ TopiaContext transaction = manager.getContext().beginTransaction();
+ try {
+ result.initialize(transaction, creator, 1);
+ service.loadContactCsv(reader, result, false);
+ } catch (Exception eee) {
+ log.error("Error : " + eee.getMessage());
+ assertEquals(ImportRefusedException.class, eee.getClass());
+ ImportRefusedException ex = (ImportRefusedException)eee;
+ assertEquals(field, ex.getField());
+ } finally {
+ transaction.closeContext();
+ }
+ }
+
+ @Test
+ public void testCreateOrUpdateContact()
+ throws TopiaException, WaoBusinessException {
+
+ /** PREPARE DATA **/
+ prepareData(true, true);
+
+ ConnectedUser connectedUser = getConnectedUser(observer, UserRole.OBSERVER, ObsProgram.OBSMER);
+
+ // Don't use a mock in this case
+ Contact newContact = service.newContact(connectedUser, sampleRow, boat);
+ newContact.setCreationDate(DateUtil.createDate(2, 3, 2010));
+
+ /** EXEC METHOD **/
+
+ // test 1 : Create new contact with state CONTACT_START
+ TopiaContext transaction = null;
+ String newTopiaId = null;
+ try {
+ transaction = manager.getContext().beginTransaction();
+
+ service.createOrUpdateContact(transaction, null, newContact, false);
+ transaction.commitTransaction();
+
+ newTopiaId = newContact.getTopiaId();
+ assertNotNull(newTopiaId);
+ } finally {
+ if (transaction != null) {
+ transaction.closeContext();
+ }
+ }
+
+ // test 1 : Check contact existence
+ try {
+ transaction = manager.getContext().beginTransaction();
+
+ ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
+
+ Contact existingContact = dao.findByTopiaId(newTopiaId);
+ assertNotNull(existingContact);
+ assertEquals(boat, existingContact.getBoat());
+ assertEquals(sampleRow, existingContact.getSampleRow());
+ assertEquals(observer, existingContact.getMainObserver());
+ assertEquals(ContactState.CONTACT_START,
+ existingContact.getContactState());
+ } finally {
+ if (transaction != null) {
+ transaction.closeContext();
+ }
+ }
+
+ // test 2 : Update the contact with state OBSERVATION_DONE
+ // tideBeginDate, tideEndDate and NbObservants
+ Date tideBeginDate = DateUtil.createDate(18,3,2010);
+ Date tideEndDate = DateUtil.createDate(19,3,2010);
+ try {
+ transaction = manager.getContext().beginTransaction();
+
+ newContact.setContactState(ContactState.OBSERVATION_DONE);
+ newContact.setObservationBeginDate(tideBeginDate);
+ newContact.setObservationEndDate(tideEndDate);
+ newContact.setNbObservants(1);
+
+ ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
+ Contact oldContact = dao.findByTopiaId(newTopiaId);
+
+ service.createOrUpdateContact(transaction, oldContact, newContact, false);
+ transaction.commitTransaction();
+ } finally {
+ if (transaction != null) {
+ transaction.closeContext();
+ }
+ }
+
+ // test 2 : Check update contact
+ try {
+ transaction = manager.getContext().beginTransaction();
+
+ ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
+
+ Contact existingContact = dao.findByTopiaId(newTopiaId);
+ assertNotNull(existingContact);
+ assertEquals(1, existingContact.getNbObservants());
+ assertEquals(tideBeginDate, existingContact.getObservationBeginDate());
+ assertEquals(tideEndDate, existingContact.getObservationEndDate());
+ assertEquals(ContactState.OBSERVATION_DONE,
+ existingContact.getContactState());
+
+ // Will have an update on sampleMonth 03/2010 for estimatedTides
+ SampleMonthDAO monthDAO =
+ WaoDAOHelper.getSampleMonthDAO(transaction);
+ SampleMonth existingMonth =
+ monthDAO.findByTopiaId(sampleMonth.getTopiaId());
+ assertNotNull(existingMonth);
+ assertEquals(1, existingMonth.getEstimatedTidesValue());
+ } finally {
+ if (transaction != null) {
+ transaction.closeContext();
+ }
+ }
+ }
+
+ @Test
+ public void testImportContactCsv()
+ throws TopiaException, WaoBusinessException, IOException {
+
+ /** PREPARE DATA **/
+ prepareData(true, true);
+
+ when(creator.getCompany()).thenReturn(company);
+ when(creator.getLogin()).thenReturn(observer.getLogin());
+ when(creator.getProfile()).thenReturn(new UserProfileImpl(ObsProgram.OBSMER, UserRole.ADMIN, true));
+
+ /** EXEC METHOD **/
+ // test 1 : Import new contact with observer creator
+ InputStream input =
+ getClass().getResourceAsStream("/import/contacts.csv");
+ try {
+ ImportResults results = service.importContactCsv(creator, input);
+ assertEquals(0, results.getNbRowsRefused());
+ assertEquals(1, results.getNbRowsImported());
+ assertTrue(results.getErrors().isEmpty());
+ } finally {
+ input.close();
+ }
+
+ // test 1 : Check creation of the contact
+ TopiaContext transaction = null;
+ try {
+ transaction = manager.getContext().beginTransaction();
+
+ ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
+
+ List<Contact> contactsFound = dao.findAll();
+ assertEquals(1, contactsFound.size());
+ Contact contactFound = contactsFound.get(0);
+ assertNull(contactFound.getValidationCompany());
+ assertNull(contactFound.getValidationProgram());
+ } finally {
+ if (transaction != null) {
+ transaction.closeContext();
+ }
+ }
+
+ // test 2 : Import new contact with super admin creator
+ when(creator.getCompany()).thenReturn(company);
+ when(creator.getLogin()).thenReturn("admin");
+ when(creator.getProfile()).thenReturn(new UserProfileImpl(ObsProgram.OBSMER, UserRole.ADMIN, true));
+
+ input = getClass().getResourceAsStream("/import/contacts.csv");
+ try {
+ ImportResults results = service.importContactCsv(creator, input);
+ assertEquals(1, results.getNbRowsImported());
+ assertEquals(0, results.getNbRowsRefused());
+ assertTrue(results.getErrors().isEmpty());
+ } finally {
+ input.close();
+ }
+ }
+}
Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactInternalTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -1,793 +0,0 @@
-/*
- * #%L
- * 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 Affero 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 Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-package fr.ifremer.wao.service;
-
-import com.csvreader.CsvReader;
-import fr.ifremer.wao.TestManager;
-import fr.ifremer.wao.WaoBusinessException;
-import fr.ifremer.wao.WaoDAOHelper;
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.ContactState;
-import fr.ifremer.wao.bean.ContactStatus.NullSampleMonthException;
-import fr.ifremer.wao.bean.ObsProgram;
-import fr.ifremer.wao.bean.SamplingStrategy;
-import fr.ifremer.wao.bean.UserRole;
-import fr.ifremer.wao.entity.Boat;
-import fr.ifremer.wao.entity.BoatDAO;
-import fr.ifremer.wao.entity.Company;
-import fr.ifremer.wao.entity.CompanyDAO;
-import fr.ifremer.wao.entity.Contact;
-import fr.ifremer.wao.entity.ContactDAO;
-import fr.ifremer.wao.entity.SampleMonth;
-import fr.ifremer.wao.entity.SampleMonthDAO;
-import fr.ifremer.wao.entity.SampleRow;
-import fr.ifremer.wao.entity.SampleRowDAO;
-import fr.ifremer.wao.entity.UserProfileImpl;
-import fr.ifremer.wao.entity.WaoUser;
-import fr.ifremer.wao.entity.WaoUserDAO;
-import fr.ifremer.wao.io.ContactInput;
-import fr.ifremer.wao.io.ImportRefusedException;
-import fr.ifremer.wao.io.ImportResults;
-import fr.ifremer.wao.io.csv.WaoCsvHeader.BOAT;
-import fr.ifremer.wao.io.csv.WaoCsvHeader.CONTACT;
-import fr.ifremer.wao.io.csv.WaoCsvHeader.SAMPLING;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.TopiaException;
-import org.nuiton.topia.framework.TopiaQuery;
-import org.nuiton.util.DateUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.ParseException;
-import java.util.Date;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.when;
-
-/**
- * ServiceContactImplTest
- *
- * Created: 16 avr. 2010
- *
- * @author fdesbois
- * @version $Revision$
- *
- * Mise a jour: $Date$
- * par : $Author$
- */
-public class ServiceContactInternalTest extends AbstractServiceTest {
-
- private static TestManager manager;
-
- private static final Logger log =
- LoggerFactory.getLogger(ServiceContactInternalTest.class);
-
- private ServiceContactImpl service;
-
- @BeforeClass
- public static void setUpClass() throws Exception {
- manager = new TestManager();
- }
-
- @Before
- public void setUp() throws Exception {
- manager.start();
- MockitoAnnotations.initMocks(this);
- service = (ServiceContactImpl)manager.getServiceContact();
- sampleMonth = null;
- sampleRow = null;
- boat = null;
- company = null;
- observer = null;
- }
-
- @After
- public void tearDown() throws Exception {
- manager.stop();
- }
-
- // Real data
- protected SampleRow sampleRow;
- protected SampleMonth sampleMonth;
- protected Boat boat;
- protected Company company;
- protected WaoUser observer;
-
- // Mock data
- @Mock
- protected Contact contact;
- @Mock
- protected Contact contactReference;
- @Mock
- protected ConnectedUser creator;
- @Mock
- protected CsvReader reader;
-
- protected void prepareData(boolean needBoat, boolean needObserver)
- throws TopiaException {
- log.info("Prepare data :");
- TopiaContext transaction = manager.getContext().beginTransaction();
- try {
-
- if (needObserver) {
- CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
- company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
-
- WaoUserDAO userDAO = WaoDAOHelper.getWaoUserDAO(transaction);
- observer = userDAO.create(
- WaoUser.PROPERTY_COMPANY, company,
- WaoUser.PROPERTY_LOGIN, "jmichmuche",
- WaoUser.PROPERTY_FIRST_NAME, "Jean",
- WaoUser.PROPERTY_LAST_NAME, "Michmuche");
-
- when(contact.getMainObserver()).thenReturn(observer);
- }
-
- SampleRowDAO rowDAO =
- WaoDAOHelper.getSampleRowDAO(transaction);
- log.info("SampleRow : 2010_0001");
- sampleRow = rowDAO.create(SampleRow.PROPERTY_CODE, "2010_0001",
- SampleRow.PROPERTY_COMPANY, company);
-
- SampleMonthDAO monthDAO =
- WaoDAOHelper.getSampleMonthDAO(transaction);
- log.info("SampleMonth : 03/2010 _ row 2010_0001");
- Date monthDate = DateUtil.createDate(1, 3, 2010);
- sampleMonth = monthDAO.create(SampleMonth.PROPERTY_SAMPLE_ROW, sampleRow,
- SampleMonth.PROPERTY_PERIOD_DATE, monthDate);
- monthDate = DateUtil.createDate(1, 4, 2010);
- monthDAO.create(SampleMonth.PROPERTY_SAMPLE_ROW, sampleRow,
- SampleMonth.PROPERTY_PERIOD_DATE, monthDate);
-
- Date contactDate = DateUtil.createDate(18, 3, 2010);
- when(contact.getObservationBeginDate()).thenReturn(contactDate);
- when(contact.getSampleRow()).thenReturn(sampleRow);
-
- if (needBoat) {
- BoatDAO boatDAO = WaoDAOHelper.getBoatDAO(transaction);
- boat = boatDAO.create(Boat.PROPERTY_IMMATRICULATION, 175846, Boat.PROPERTY_ACTIVE, true);
- when(contact.getBoat()).thenReturn(boat);
- }
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
- }
-
- @Test
- public void testUpdateSampleMonthTidesValue() throws TopiaException,
- NullSampleMonthException {
- log.info("testUpdateSampleMonthTidesValue");
-
- /** PREPARE DATA **/
- prepareData(false, false);
- Date tideBeginDate = new Date(contact.getObservationBeginDate().getTime());
- when(contactReference.getObservationBeginDate()).thenReturn(tideBeginDate);
- when(contactReference.getSampleRow()).thenReturn(sampleRow);
- // WARN : by default mockito doesn't initialize Boolean type with null
- when(contactReference.getValidationProgram()).thenReturn(null);
- when(contact.getValidationProgram()).thenReturn(null);
-
- /** EXEC METHOD **/
- log.info("test 1 : ContactState changed from null to OBSERVATION_DONE" +
- " -> increment estimated tides value");
- TopiaContext transaction = manager.getContext().beginTransaction();
- try {
- when(contact.getContactState()).
- thenReturn(ContactState.OBSERVATION_DONE);
-
- service.updateSampleMonthTidesValue(transaction, null,
- contact, false);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- log.info("test 1 : verification sampleMonth estimated tides = 1");
- checkTidesValue(1, false);
-
- log.info("test 2 : ContactState changed from OBSERVATION_DONE to " +
- "CONTACT_REFUSED -> decrement estimated tides value");
- transaction = manager.getContext().beginTransaction();
- try {
- when(contactReference.getContactState()).
- thenReturn(ContactState.OBSERVATION_DONE);
-
- when(contact.getContactState()).
- thenReturn(ContactState.CONTACT_REFUSED);
-
- service.updateSampleMonthTidesValue(transaction, contactReference,
- contact, false);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- log.info("test 2 : verification sampleMonth estimated tides = 0");
- checkTidesValue(0, false);
-
- // Reset contactState to OBSERVATION_DONE for next test
- when(contact.getContactState()).
- thenReturn(ContactState.OBSERVATION_DONE);
-
- log.info("test 3 : CompanyValidation changed from null to " +
- "FALSE -> do nothing");
- transaction = manager.getContext().beginTransaction();
- try {
- when(contactReference.getValidationCompany()).thenReturn(null);
-
- when(contact.getValidationCompany()).thenReturn(Boolean.FALSE);
-
- service.updateSampleMonthTidesValue(transaction, contactReference,
- contact, true);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- log.info("test 3 : verification sampleMonth real tides = 0");
- checkTidesValue(0, true);
-
- log.info("test 4 : CompanyValidation changed from FALSE to " +
- "TRUE -> increment real tides value");
- transaction = manager.getContext().beginTransaction();
- try {
- when(contactReference.getValidationCompany()).
- thenReturn(Boolean.FALSE);
-
- when(contact.getValidationCompany()).thenReturn(Boolean.TRUE);
-
- service.updateSampleMonthTidesValue(transaction, contactReference,
- contact, true);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- log.info("test 4 : verification sampleMonth real tides = 1");
- checkTidesValue(1, true);
-
- // ContactReference after saving contact will normally have this value :
- when(contactReference.getValidationCompany()).thenReturn(Boolean.TRUE);
-
- log.info("test 5 : CompanyValidation doesn't changed but " +
- "ProgramValidation is set to FALSE -> decrement real tides");
- transaction = manager.getContext().beginTransaction();
- try {
- when(contact.getValidationProgram()).thenReturn(Boolean.FALSE);
-
- service.updateSampleMonthTidesValue(transaction, contactReference,
- contact, true);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- log.info("test 5 : verification sampleMonth real tides = 0");
- checkTidesValue(0, true);
-
- log.info("test 6 : Prepare data for delete case");
- // PREPARE DATA : update estimated to 1 and real to 1
- transaction = manager.getContext().beginTransaction();
- try {
- // Will update estimatedTides up to 1
- // contact has already OBSERVATION_DONE
- when(contactReference.getContactState()).
- thenReturn(ContactState.OBSERVATION_EXPECTED);
-
- // Will update realTides up to 1
- // contact has already validationCompany = TRUE
- when(contactReference.getValidationCompany()).thenReturn(null);
- when(contact.getValidationProgram()).thenReturn(Boolean.TRUE);
-
- service.updateSampleMonthTidesValue(transaction, contactReference,
- contact, true);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- // ContactReference after saving contact will normally have this values
- when(contactReference.getValidationProgram()).thenReturn(Boolean.TRUE);
- when(contactReference.getValidationCompany()).thenReturn(Boolean.TRUE);
-
- log.info("test 6 : Delete contact (new contact is null) -> " +
- "decrement realTides and estimatedTides");
- transaction = manager.getContext().beginTransaction();
- try {
- when(contactReference.getContactState()).
- thenReturn(ContactState.OBSERVATION_DONE);
- service.updateSampleMonthTidesValue(transaction, contactReference,
- null, true);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- log.info("test 6 : verification sampleMonth real tides = 0" +
- "and estimated tides = 0");
- checkTidesValue(0, true);
- checkTidesValue(0, false);
-
- log.info("test 7 : SampleMonth will change from 03/2010 to 04/2010" +
- " -> decrement estimated tides from oldMonth");
- transaction = manager.getContext().beginTransaction();
- try {
- // contactReference OBSERVATION_DONE, validations true/true
- // contact OBSERVATION_DONE, validations true/true
- when(contactReference.getContactState()).
- thenReturn(ContactState.OBSERVATION_DONE);
- when(contact.getContactState()).
- thenReturn(ContactState.OBSERVATION_DONE);
- when(contact.getObservationBeginDate()).
- thenReturn(DateUtil.createDate(3, 4, 2010));
-
- service.updateSampleMonthTidesValue(transaction, contactReference,
- contact, true);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- log.info("test 7 : verification old sampleMonth estimated tides = 0");
- checkTidesValue(0, false);
-
- log.info("test 7 : verification new sampleMonth estimated " +
- "tides = 1 and real tides = 1");
- transaction = manager.getContext().beginTransaction();
- try {
- SampleMonthDAO dao = WaoDAOHelper.getSampleMonthDAO(transaction);
-
- TopiaQuery query = dao.createQuery();
- query.addEquals(SampleMonth.PROPERTY_PERIOD_DATE, DateUtil.createDate(1, 4, 2010));
-
- SampleMonth month = dao.findByQuery(query);
-
- assertEquals(1, month.getEstimatedTidesValue());
- assertEquals(1, month.getRealTidesValue());
-
- } finally {
- transaction.closeContext();
- }
- }
-
- @Test
- public void testDecrementSampleMonthContactRefused()
- throws TopiaException, NullSampleMonthException {
- log.info("testDecrementSampleMonthContactRefused");
-
- /** PREPARE DATA **/
- prepareData(false, false);
-
- // contactReference as the same tideBeginDate and sampleRow as contact
- Date tideBeginDate = new Date(contact.getObservationBeginDate().getTime());
- when(contactReference.getObservationBeginDate()).thenReturn(tideBeginDate);
- when(contactReference.getSampleRow()).thenReturn(sampleRow);
-
- // Initialize correct old status in contactReference
- when(contactReference.getValidationCompany()).thenReturn(Boolean.TRUE);
- when(contactReference.getContactState()).
- thenReturn(ContactState.OBSERVATION_DONE);
- when(contactReference.getValidationProgram()).thenReturn(null);
-
-
- // Initialize data in sampleMonth
- TopiaContext transaction = manager.getContext().beginTransaction();
- try {
- SampleMonthDAO dao = WaoDAOHelper.getSampleMonthDAO(transaction);
-
- sampleMonth.addEstimatedTideTime(1);
- sampleMonth.addRealTideTime(1);
-
- dao.update(sampleMonth);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- // both estimated and real as value = 1
- checkTidesValue(1, false);
- checkTidesValue(1, true);
-
- /** EXEC METHOD **/
- log.info("test 1 : validationProgram null -> FALSE, estimated -1" +
- " and real -1");
- transaction = manager.getContext().beginTransaction();
- try {
- when(contact.getValidationCompany()).thenReturn(Boolean.TRUE);
- when(contact.getContactState()).
- thenReturn(ContactState.OBSERVATION_DONE);
- when(contact.getValidationProgram()).thenReturn(Boolean.FALSE);
-
- service.updateSampleMonthTidesValue(transaction, contactReference,
- contact, true);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- checkTidesValue(0, false);
- checkTidesValue(0, true);
-
- log.info("test 2 : validationProgram FALSE -> null, estimated +1" +
- " and real +1");
- transaction = manager.getContext().beginTransaction();
- try {
- when(contactReference.getValidationProgram()).
- thenReturn(Boolean.FALSE);
- when(contact.getValidationProgram()).thenReturn(null);
-
- service.updateSampleMonthTidesValue(transaction, contactReference,
- contact, true);
-
- transaction.commitTransaction();
- } finally {
- transaction.closeContext();
- }
-
- checkTidesValue(1, false);
- checkTidesValue(1, true);
- }
-
- protected void checkTidesValue(int expected, boolean real)
- throws TopiaException {
- TopiaContext transaction = manager.getContext().beginTransaction();
- try {
- SampleMonthDAO dao = WaoDAOHelper.getSampleMonthDAO(transaction);
-
- SampleMonth result = dao.findByTopiaId(sampleMonth.getTopiaId());
- int test = real ? result.getRealTidesValue() :
- result.getEstimatedTidesValue();
- assertEquals(expected, test);
- } finally {
- transaction.closeContext();
- }
- }
-
- @Test
- public void testLoadContactCsv() throws TopiaException,
- WaoBusinessException,
- IOException,
- ImportRefusedException,
- ParseException {
- log.info("testLoadContactCsv");
-
- /** PREPARE DATA **/
- prepareData(true, true);
-
- when(reader.get(CONTACT.CONT_ETAT.name())).
- thenReturn(ContactState.OBSERVATION_DONE.name());
- when(reader.get(CONTACT.OBSERV_ID.name())).
- thenReturn(observer.getLogin());
- when(reader.get(SAMPLING.PLAN_CODE.name())).
- thenReturn(sampleRow.getCode());
- when(reader.get(BOAT.NAVS_COD.name())).
- thenReturn(String.valueOf(boat.getImmatriculation()));
- when(reader.get(CONTACT.CONT_DEBUT_MAREE.name())).
- thenReturn("22/03/2010 1:00");
- when(reader.get(CONTACT.CONT_FIN_MAREE.name())).
- thenReturn("22/03/10 2:15");
- when(reader.get(CONTACT.CONT_NB_OBSERV.name())).
- thenReturn("1");
- when(reader.get(CONTACT.CONT_MAM_CAPT.name())).
- thenReturn("");
- when(reader.get(CONTACT.CONT_MAM_OBS.name())).
- thenReturn("X");
- when(reader.get(CONTACT.CONT_ALLEGRO.name())).
- thenReturn("25/03/2010");
- when(reader.get(CONTACT.CONT_SOCIETE_VALID.name())).
- thenReturn("A");
- when(reader.get(CONTACT.CONT_PROGRAM_VALID.name())).
- thenReturn("");
- when(reader.get(CONTACT.CONT_CREATION.name())).
- thenReturn("18/03/10");
- when(reader.get(CONTACT.CONT_CODE.name())).
- thenReturn("");
- String comment = "Commentaire sur le contact\nAutre ligne";
- when(reader.get(CONTACT.CONT_COMMENT.name())).
- thenReturn(comment);
- when(reader.get(CONTACT.CONT_DATA_RELIABILITY.name())).
- thenReturn("DOUBTFUL");
- when(reader.get(CONTACT.CONT_SAMPLING_STRATEGY.name())).
- thenReturn(SamplingStrategy.SIMULTANEOUS_ALL_SPECIES.name());
- when(reader.get(CONTACT.CONT_COMPLETE_SAMPLING.name())).
- thenReturn("Y");
-
- when(creator.getCompany()).thenReturn(company);
- when(creator.isAdmin()).thenReturn(false);
- when(creator.getLogin()).thenReturn(observer.getLogin());
-
- /** EXEC METHOD **/
-
- log.info("test 1 : load contact by Creator jmichmuche -> no error");
- ContactInput result = new ContactInput();
- TopiaContext transaction = manager.getContext().beginTransaction();
- try {
- result.initialize(transaction, creator, 1);
- service.loadContactCsv(reader, result, false);
- Date createDate = DateUtil.createDate(18,3,2010);
- assertEquals(createDate, result.getCreationDate());
- assertEquals(ContactState.OBSERVATION_DONE, result.getContactState());
- assertEquals(observer, result.getMainObserver());
- assertEquals(sampleRow, result.getSampleRow());
- assertEquals(boat, result.getBoat());
-
- assertEquals(DateUtil.getDifferenceInMinutes(DateUtil.createDate(0,0,1,22,3,2010), result.getObservationBeginDate()), 0);
- assertEquals(DateUtil.getDifferenceInMinutes(DateUtil.createDate(0,15,2,22,3,2010), result.getObservationEndDate()), 0);
-
- assertEquals(1, result.getNbObservants());
- assertFalse(result.getMammalsCapture());
- assertTrue(result.getMammalsObservation());
- assertEquals(comment, result.getComment());
- assertEquals(DateUtil.createDate(25,3,2010),
- result.getDataInputDate());
- // No validation update : creator is not an admin
- assertNull(result.getValidationCompany());
- assertNull(result.getValidationProgram());
- } finally {
- transaction.closeContext();
- }
-
- log.info("test 2 : Error on boat");
- when(reader.get(BOAT.NAVS_COD.name())).thenReturn("2222");
- checkImportError(Contact.PROPERTY_BOAT);
- // Reinit boat
- when(reader.get(BOAT.NAVS_COD.name())).
- thenReturn(String.valueOf(boat.getImmatriculation()));
-
- log.info("test 3 : Error on company");
- when(creator.getCompany()).thenReturn(null);
- checkImportError(WaoUser.PROPERTY_COMPANY);
- // Reinit creator company
- when(creator.getCompany()).thenReturn(company);
-
- log.info("test 4 : Error on observer");
- when(reader.get(CONTACT.OBSERV_ID.name())).thenReturn("FAKE");
- checkImportError(Contact.PROPERTY_MAIN_OBSERVER);
- // Reinit observer
- when(reader.get(CONTACT.OBSERV_ID.name())).
- thenReturn(observer.getLogin());
-
- log.info("test 5 : Error on sampleRow");
- when(reader.get(SAMPLING.PLAN_CODE.name())).thenReturn("FAKE");
- checkImportError(Contact.PROPERTY_SAMPLE_ROW);
- // Reinit sampleRow
- when(reader.get(SAMPLING.PLAN_CODE.name())).
- thenReturn(sampleRow.getCode());
-
- log.info("test 6 : Error on state");
- when(reader.get(CONTACT.CONT_ETAT.name())).thenReturn("FAKE");
- checkImportError(Contact.PROPERTY_STATE);
- // Reinit state
- when(reader.get(CONTACT.CONT_ETAT.name())).
- thenReturn(ContactState.OBSERVATION_DONE.name());
- }
-
- protected void checkImportError(String field) throws TopiaException {
- ContactInput result = new ContactInput();
- TopiaContext transaction = manager.getContext().beginTransaction();
- try {
- result.initialize(transaction, creator, 1);
- service.loadContactCsv(reader, result, false);
- } catch (Exception eee) {
- log.error("Error : " + eee.getMessage());
- assertEquals(ImportRefusedException.class, eee.getClass());
- ImportRefusedException ex = (ImportRefusedException)eee;
- assertEquals(field, ex.getField());
- } finally {
- transaction.closeContext();
- }
- }
-
- @Test
- public void testCreateOrUpdateContact()
- throws TopiaException, WaoBusinessException {
- log.info("testCreateOrUpdateContact");
-
- /** PREPARE DATA **/
- prepareData(true, true);
-
-// TopiaContext transaction = manager.getContext().beginTransaction();
-// ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
-// List<Contact> allContact = dao.findAll();
-// for (Contact contact : allContact) {
-// dao.delete(contact);
-// }
-
- ConnectedUser connectedUser = getConnectedUser(observer, UserRole.OBSERVER, ObsProgram.OBSMER);
-
- // Don't use a mock in this case
- Contact newContact = service.newContact(connectedUser, sampleRow, boat);
- newContact.setCreationDate(DateUtil.createDate(2, 3, 2010));
-
- /** EXEC METHOD **/
-
- log.info("test 1 : Create new contact with state CONTACT_START");
- TopiaContext transaction = null;
- String newTopiaId = null;
- try {
- transaction = manager.getContext().beginTransaction();
-
- service.createOrUpdateContact(transaction, null, newContact, false);
- transaction.commitTransaction();
-
- newTopiaId = newContact.getTopiaId();
- assertNotNull(newTopiaId);
- } finally {
- if (transaction != null) {
- transaction.closeContext();
- }
- }
-
- log.info("test 1 : Check contact existence");
- try {
- transaction = manager.getContext().beginTransaction();
-
- ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
-
- Contact existingContact = dao.findByTopiaId(newTopiaId);
- assertNotNull(existingContact);
- assertEquals(boat, existingContact.getBoat());
- assertEquals(sampleRow, existingContact.getSampleRow());
- assertEquals(observer, existingContact.getMainObserver());
- assertEquals(ContactState.CONTACT_START,
- existingContact.getContactState());
- } finally {
- if (transaction != null) {
- transaction.closeContext();
- }
- }
-
- log.info("test 2 : Update the contact with state OBSERVATION_DONE, " +
- "tideBeginDate, tideEndDate and NbObservants");
- Date tideBeginDate = DateUtil.createDate(18,3,2010);
- Date tideEndDate = DateUtil.createDate(19,3,2010);
- try {
- transaction = manager.getContext().beginTransaction();
-
- newContact.setContactState(ContactState.OBSERVATION_DONE);
- newContact.setObservationBeginDate(tideBeginDate);
- newContact.setObservationEndDate(tideEndDate);
- newContact.setNbObservants(1);
-
- ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
- Contact oldContact = dao.findByTopiaId(newTopiaId);
-
- service.createOrUpdateContact(transaction, oldContact, newContact, false);
- transaction.commitTransaction();
- } finally {
- if (transaction != null) {
- transaction.closeContext();
- }
- }
-
- log.info("test 2 : Check update contact");
- try {
- transaction = manager.getContext().beginTransaction();
-
- ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
-
- Contact existingContact = dao.findByTopiaId(newTopiaId);
- assertNotNull(existingContact);
- assertEquals(1, existingContact.getNbObservants());
- assertEquals(tideBeginDate, existingContact.getObservationBeginDate());
- assertEquals(tideEndDate, existingContact.getObservationEndDate());
- assertEquals(ContactState.OBSERVATION_DONE,
- existingContact.getContactState());
-
- // Will have an update on sampleMonth 03/2010 for estimatedTides
- SampleMonthDAO monthDAO =
- WaoDAOHelper.getSampleMonthDAO(transaction);
- SampleMonth existingMonth =
- monthDAO.findByTopiaId(sampleMonth.getTopiaId());
- assertNotNull(existingMonth);
- assertEquals(1, existingMonth.getEstimatedTidesValue());
- } finally {
- if (transaction != null) {
- transaction.closeContext();
- }
- }
- }
-
- @Test
- public void testImportContactCsv()
- throws TopiaException, WaoBusinessException, IOException {
- log.info("testImportContactCsv");
-
- /** PREPARE DATA **/
- prepareData(true, true);
-
- when(creator.getCompany()).thenReturn(company);
- when(creator.getLogin()).thenReturn(observer.getLogin());
- when(creator.getProfile()).thenReturn(new UserProfileImpl(ObsProgram.OBSMER, UserRole.ADMIN, true));
-
- /** EXEC METHOD **/
- log.info("test 1 : Import new contact with observer creator");
- InputStream input =
- getClass().getResourceAsStream("/import/contacts.csv");
- try {
- ImportResults results = service.importContactCsv(creator, input);
- assertEquals(0, results.getNbRowsRefused());
- assertEquals(1, results.getNbRowsImported());
- assertTrue(results.getErrors().isEmpty());
- } finally {
- input.close();
- }
-
- log.info("test 1 : Check creation of the contact");
- TopiaContext transaction = null;
- try {
- transaction = manager.getContext().beginTransaction();
-
- ContactDAO dao = WaoDAOHelper.getContactDAO(transaction);
-
- List<Contact> contactsFound = dao.findAll();
- assertEquals(1, contactsFound.size());
- Contact contactFound = contactsFound.get(0);
- assertNull(contactFound.getValidationCompany());
- assertNull(contactFound.getValidationProgram());
- } finally {
- if (transaction != null) {
- transaction.closeContext();
- }
- }
-
- log.info("test 2 : Import new contact with super admin creator");
- when(creator.getCompany()).thenReturn(company);
- when(creator.getLogin()).thenReturn("admin");
- when(creator.getProfile()).thenReturn(new UserProfileImpl(ObsProgram.OBSMER, UserRole.ADMIN, true));
-
- input = getClass().getResourceAsStream("/import/contacts.csv");
- try {
- ImportResults results = service.importContactCsv(creator, input);
- assertEquals(1, results.getNbRowsImported());
- assertEquals(0, results.getNbRowsRefused());
- assertTrue(results.getErrors().isEmpty());
- } finally {
- input.close();
- }
- }
-}
Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactTest.java (from rev 1306, trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactImplTest.java)
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactTest.java (rev 0)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -0,0 +1,111 @@
+/*
+ * #%L
+ * 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 Affero 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.wao.service;
+
+import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.bean.ContactFilter;
+import fr.ifremer.wao.bean.ContactFilterImpl;
+import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.UserRole;
+import fr.ifremer.wao.entity.Company;
+import fr.ifremer.wao.entity.Contact;
+import fr.ifremer.wao.entity.WaoUser;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.nuiton.topia.TopiaException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Map;
+
+/**
+ * ServiceContactImplTest
+ *
+ * Created: 3 mai 2010
+ *
+ * @author fdesbois
+ * $Id$
+ */
+public class ServiceContactTest extends AbstractServiceTest {
+
+ private static final Logger log =
+ LoggerFactory.getLogger(ServiceContactTest.class);
+
+ private ServiceContact service;
+
+ @Before
+ public void initialize() {
+ service = manager.getServiceContact();
+ }
+
+ @Test
+ public void testGetContactsFilteredByObserver() throws TopiaException {
+ log.info("getContactsFilteredByObserver");
+
+ /** PREPARE DATA **/
+ Contact contact = createDefaultContact();
+
+ /** EXEC METHOD **/
+ ContactFilter filter = new ContactFilterImpl();
+ filter.setObserver(findDefaultObserver());
+
+ log.info("test 1 : Ok good filter, contact is correctly returned");
+ Map<String, Contact> results = service.getContacts(filter);
+
+ Assert.assertEquals(1, results.size());
+ Contact contactFind = results.get(contact.getTopiaId());
+ Assert.assertEquals(contact, contactFind);
+
+ log.info("test 2 : Bad filter, no contact is returned");
+ WaoUser observer2 = createUser("marge",
+ UserRole.OBSERVER, findDefaultCompany());
+
+ filter.setObserver(observer2);
+
+ results = service.getContacts(filter);
+ Assert.assertEquals(0, results.size());
+ }
+
+ @Test
+ public void testSaveContactWithMultipleObservers() throws TopiaException {
+ Contact contact = createDefaultContact();
+
+ Company company = createCompany("Boite");
+ WaoUser toto = createUser("toto", UserRole.OBSERVER, company);
+ contact.addSecondaryObservers(toto);
+ contact.addSecondaryObservers(createUser("titi", UserRole.OBSERVER, company));
+
+ ConnectedUser connectedUser = getConnectedUser(toto, UserRole.COORDINATOR, ObsProgram.OBSMER);
+ service.saveContact(connectedUser, contact, false);
+
+ Contact savedContact = service.getContact(contact.getTopiaId());
+ Assert.assertEquals(2, savedContact.getSecondaryObservers().size());
+
+ contact.clearSecondaryObservers();
+ service.saveContact(connectedUser, contact, false);
+ savedContact = service.getContact(contact.getTopiaId());
+ Assert.assertEquals(0, savedContact.getSecondaryObservers().size());
+ }
+
+
+}
Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceContactTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -1,170 +0,0 @@
-/*
- * #%L
- * Wao :: Business
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2010 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero 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 Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-package fr.ifremer.wao.service;
-
-import fr.ifremer.wao.TestManager;
-import fr.ifremer.wao.WaoException;
-import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.bean.SamplingFilterImpl;
-import fr.ifremer.wao.entity.FishingZone;
-import org.apache.commons.io.IOUtils;
-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.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.InputStream;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-/**
- *
- * @author fdesbois <fdesbois at codelutin.com>
- */
-public class ServiceReferentialImplTest {
-
- private static TestManager manager;
-
- private static final Logger log = LoggerFactory.getLogger(ServiceReferentialImplTest.class);
-
- private ServiceReferential service;
-
- public ServiceReferentialImplTest() {
- }
-
- @BeforeClass
- public static void setUpClass() throws Exception {
- manager = new TestManager();
- }
-
- @AfterClass
- public static void tearDownClass() throws Exception {
- }
-
- @Before
- public void setUp() throws Exception {
- manager.start();
- service = manager.getServiceReferential();
- }
-
- @After
- public void tearDown() throws Exception {
- manager.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 getFishingZones method, of class ServiceReferentialImpl.
- * @throws WaoException if error during import or getFishingZones
- */
- @Test
- public void testGetFishingZones() {
- 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() {
- log.info("importFishingZoneCsv");
-
- InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv");
- int result = service.importFishingZoneCsv(input);
- assertEquals(6, result);
- }
-
- @Test
- public void testImportTerrestrialDivision() {
- InputStream input = null;
- try {
- input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv");
- service.importTerrestrialDivisions(input);
- int nbTerrestrialDivisions = service.getAllObservationUnits().size();
- input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv");
- service.importTerrestrialDivisions(input);
- assertEquals("importing the same file two times should not create extra lines",
- nbTerrestrialDivisions, service.getAllObservationUnits().size());
- } finally {
- IOUtils.closeQuietly(input);
- }
- }
-
-}
Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java (from rev 1314, trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialImplTest.java)
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java (rev 0)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -0,0 +1,138 @@
+/*
+ * #%L
+ * Wao :: Business
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.wao.service;
+
+import fr.ifremer.wao.WaoServices;
+import fr.ifremer.wao.WaoException;
+import fr.ifremer.wao.bean.SamplingFilter;
+import fr.ifremer.wao.bean.SamplingFilterImpl;
+import fr.ifremer.wao.entity.FishingZone;
+import org.apache.commons.io.IOUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.InputStream;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ *
+ * @author fdesbois <fdesbois at codelutin.com>
+ */
+public class ServiceReferentialTest extends AbstractServiceTest {
+
+ private static final Logger log = LoggerFactory.getLogger(ServiceReferentialTest.class);
+
+ private ServiceReferential service;
+
+ @Before
+ public void setUp() throws Exception {
+ service = manager.getServiceReferential();
+ }
+
+ /**
+ * Test of getFacades method, of class ServiceReferentialImpl.
+ */
+ @Test
+ public void testGetFacades() throws Exception {
+ 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 {
+ 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 getFishingZones method, of class ServiceReferentialImpl.
+ * @throws WaoException if error during import or getFishingZones
+ */
+ @Test
+ public void testGetFishingZones() {
+ 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() {
+ InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv");
+ int result = service.importFishingZoneCsv(input);
+ assertEquals(6, result);
+ }
+
+ @Test
+ public void testImportTerrestrialDivision() {
+ InputStream input = null;
+ try {
+ input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv");
+ service.importTerrestrialDivisions(input);
+ int nbTerrestrialDivisions = service.getAllObservationUnits().size();
+ input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv");
+ service.importTerrestrialDivisions(input);
+ assertEquals("importing the same file two times should not create extra lines",
+ nbTerrestrialDivisions, service.getAllObservationUnits().size());
+ } finally {
+ IOUtils.closeQuietly(input);
+ }
+ }
+
+}
Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Deleted: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -1,677 +0,0 @@
-/*
- * #%L
- * Wao :: Business
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2010 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero 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 Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-
-package fr.ifremer.wao.service;
-
-import fr.ifremer.wao.WaoBusinessException;
-import fr.ifremer.wao.WaoDAOHelper;
-import fr.ifremer.wao.WaoException;
-import fr.ifremer.wao.bean.ConnectedUser;
-import fr.ifremer.wao.bean.FacadeRow;
-import fr.ifremer.wao.bean.ObsProgram;
-import fr.ifremer.wao.bean.SamplingFilter;
-import fr.ifremer.wao.bean.SamplingFilterImpl;
-import fr.ifremer.wao.bean.SamplingStrategy;
-import fr.ifremer.wao.bean.UserRole;
-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.ContactDAO;
-import fr.ifremer.wao.entity.ContactImpl;
-import fr.ifremer.wao.entity.DCF5Code;
-import fr.ifremer.wao.entity.DCF5CodeImpl;
-import fr.ifremer.wao.entity.ElligibleBoat;
-import fr.ifremer.wao.entity.ElligibleBoatDAO;
-import fr.ifremer.wao.entity.FishingGearDCFDAO;
-import fr.ifremer.wao.entity.FishingGearDCFImpl;
-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 fr.ifremer.wao.entity.TargetSpeciesDCFImpl;
-import fr.ifremer.wao.entity.WaoUser;
-import fr.ifremer.wao.io.ImportResults;
-import org.junit.Assert;
-import org.junit.Test;
-import org.nuiton.topia.TopiaContext;
-import org.nuiton.topia.TopiaException;
-import org.nuiton.util.DateUtil;
-import org.nuiton.util.PeriodDates;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-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 static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertNull;
-
-/**
- * ServiceSamplingImplTest
- *
- * Created: 30 nov. 2009
- *
- * @author fdesbois <fdesbois at codelutin.com>
- */
-public class ServiceSamplingImplTest extends AbstractServiceTest {
-
- private static final Logger log =
- LoggerFactory.getLogger(ServiceSamplingImplTest.class);
-
- @Test
- public void testCreateUpdateSampleRow() throws Exception {
- log.info("createUpdateSampleRow");
-
- /** PREPARE DATA **/
- TopiaContext transaction = manager.getContext().beginTransaction();
-
- List<FishingZone> zones = prepareFishingZones(transaction);
-
- InputStream input = getClass().getResourceAsStream("/import/navires.csv");
- ServiceBoatImpl serviceBoat = (ServiceBoatImpl) manager.getServiceBoat();
- serviceBoat.importBoatCsv(input);
-
- // add DRB, DRH and ALG as existing codes
- FishingGearDCFDAO fishingGearDCFDAO = WaoDAOHelper.getFishingGearDCFDAO(transaction);
- fishingGearDCFDAO.create(new FishingGearDCFImpl("DRB"));
- fishingGearDCFDAO.create(new FishingGearDCFImpl("DRH"));
- WaoDAOHelper.getTargetSpeciesDCFDAO(transaction).create(new TargetSpeciesDCFImpl("ALG"));
-
- transaction.commitTransaction();
-
- transaction.closeContext();
-
- // CREATE
- Profession profession1 = new ProfessionImpl();
- 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 = serviceSampling.newSampleRow(getConnectedAdmin());
- row.setCode("2010_03");
- row.setNbObservants(3);
- row.setAverageTideTime(2.5);
- row.setProgramName("DPMA-2009");
- row.setPeriodBegin(DateUtil.createDate(1, 1, 2009));
- row.setPeriodEnd(DateUtil.createDate(31, 3, 2010));
- row.setProfession(profession1);
- row.setSampleMonth(months);
- row.setFishingZone(zones);
- row.setFishingZonesInfos("port tres loin du champ");
-
- // for row, add DCF5 codes DRB_ALG, DRH
- Collection<DCF5Code> dcf5codes = new ArrayList<DCF5Code>();
- DCF5Code dcf5 = new DCF5CodeImpl();
- dcf5.setFishingGearDCF(new FishingGearDCFImpl("DRB"));
- dcf5.setTargetSpeciesDCF(new TargetSpeciesDCFImpl("ALG"));
- dcf5codes.add(dcf5);
- dcf5 = new DCF5CodeImpl();
- dcf5.setFishingGearDCF(new FishingGearDCFImpl("DRH"));
- dcf5codes.add(dcf5);
- row.setDCF5Code(dcf5codes);
-
- /** EXEC CREATE **/
- List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174592 978419 273129");
- serviceSampling.createUpdateSampleRow(row, boats, new SampleRowLogImpl(), getConnectedAdmin());
- assertNotNull(row.getTopiaId());
-
- assertNotNull(row.getProfession().getTopiaId());
-
- SampleRow result = serviceSampling.getSampleRow(row.getTopiaId());
- assertEquals(3, result.getFishingZone().size());
- assertEquals(3, result.getElligibleBoat().size());
-
- // TEST FOR DELETE ELLIGIBLE PROPERTY_BOAT
- boats.remove(2);
- serviceSampling.createUpdateSampleRow(result, boats, new SampleRowLogImpl(), getConnectedAdmin());
-
- result = serviceSampling.getSampleRow(row.getTopiaId());
- assertEquals(2, result.getElligibleBoat().size());
-
- // TEST FOR REMOVE FISHING ZONE
- //FishingZone zone = result.getFishingZone().get(0);
- result.getFishingZone().remove(0);
- serviceSampling.createUpdateSampleRow(result, boats, new SampleRowLogImpl(), getConnectedAdmin());
-
- result = serviceSampling.getSampleRow(row.getTopiaId());
- assertEquals(2, result.getFishingZone().size());
-
- log.info("test if sampleRow becomes null in contact after update");
-
- Contact contact = new ContactImpl();
- WaoUser observer = createDefaultObserver();
- contact.setMainObserver(observer);
- contact.setSampleRow(result);
-
- ConnectedUser connectedUser = getConnectedUser(observer, UserRole.OBSERVER, ObsProgram.OBSMER);
- manager.getServiceContact().saveContact(connectedUser, contact, false);
-
-// serviceSampling.createUpdateSampleRow(result, boats, new SampleRowLogImpl());
-
- transaction = manager.getContext().beginTransaction();
- try {
- ContactDAO contactDAO = WaoDAOHelper.getContactDAO(transaction);
-
- Contact contactFound = contactDAO.findBySampleRow(row);
-
- Assert.assertNotNull(contactFound);
-
- } finally {
- transaction.closeContext();
- }
-
- }
-
- @Test
- public void testUpdateElligibleBoats() throws TopiaException {
- log.info("testUpdateElligibleBoats");
-
- /** PREPARE DATA **/
- SampleRow row = createDefaultSampleRow();
- Boat boat = createDefaultBoat();
-
- // Create an elligibleBoat active for company
- ElligibleBoat elligible = createElligibleBoat(row, boat, true);
- // Retrieve the sampleRow (updated with elligible)
- row = findDefaultSampleRow(SampleRow.PROPERTY_ELLIGIBLE_BOAT);
-
- /** EXEC METHOD **/
- List<Boat> boats = new ArrayList<Boat>();
- boats.add(boat);
-
- TopiaContext transaction = serviceSampling.beginTransaction();
- // Will update the existing ElligibleBoat and set globalActive to true
- List<List<Integer>> results =
- serviceSampling.updateElligibleBoats(transaction, row, boats);
-
- /** CHECKING RESULTS **/
- Assert.assertEquals(2, results.size());
- // Index=1 for updatedImmatriculations, 1 is updated
- Assert.assertEquals(1, results.get(1).size());
- // Index=0 for removedImmatriculations, 0 is removed
- Assert.assertEquals(0, results.get(0).size());
-
- Assert.assertEquals(1, row.sizeElligibleBoat());
- ElligibleBoat updatedElligible =
- row.getElligibleBoatByTopiaId(elligible.getTopiaId());
-
- Assert.assertTrue(updatedElligible.getGlobalActive());
- }
-
- /**
- * Test of getSampleRowsOrderedByFishingZone method, of class ServiceSamplingImpl.
- */
- @Test
- public void testGetSampleRowsOrderedByFishingZone() throws Exception {
- log.info("getSampleRowsOrderedByFishingZone");
-
- /** PREPARE DATA **/
-
- TopiaContext transaction = manager.getContext().beginTransaction();
-
- List<FishingZone> zones = prepareFishingZones(transaction);
-
- //Program program1 = programDAO.create(Program.NAME, "DPMA-2009");
- Date dateBegin1 = DateUtil.createDate(1, 1, 2009);
- Date dateEnd1 = DateUtil.createDate(1, 3, 2010);
- PeriodDates period1 = new PeriodDates(dateBegin1, dateEnd1);
-
- //Program program2 = programDAO.create(Program.NAME, "PPDA-2008");
- Date dateBegin2 = DateUtil.createDate(1, 1, 2008);
- Date dateEnd2 = DateUtil.createDate(1, 12, 2008);
- PeriodDates period2 = new PeriodDates(dateBegin2, dateEnd2);
-
- SampleRowDAO dao = WaoDAOHelper.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);
- SamplingFilter filter = new SamplingFilterImpl();
- filter.setPeriod(new PeriodDates(begin, end));
- filter.setObsProgram(ObsProgram.OBSMER);
- // RESULT : [2010_0002, 2010_0004, 2010_0001, 2010_0003]
- FacadeRow facade = serviceSampling.getSampleRowsOrderedByFishingZone(filter);
- 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);
- filter.setPeriod(new PeriodDates(begin, end));
- // RESULT : [2010_0002, 2010_0004, 2010_0001]
- facade = serviceSampling.getSampleRowsOrderedByFishingZone(filter);
- 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 TopiaException {
-
- FishingZoneDAO fishingZoneDAO = WaoDAOHelper.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 = manager.getContext().beginTransaction();
-
- FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
- FishingZone zoneIId = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
- FishingZone zoneIV = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
- FishingZone zoneI = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
-
- CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
- Company company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
- Calendar begin = new GregorianCalendar(2009,8,1);
- Calendar end = new GregorianCalendar(2010,11,31);
- SampleRowDAO sampleRowDAO = WaoDAOHelper.getSampleRowDAO(transaction);
- SampleRow row = sampleRowDAO.create(
- SampleRow.PROPERTY_CODE,"2010_178",
- SampleRow.PROPERTY_COMPANY,company,
- SampleRow.PROPERTY_PROGRAM_NAME, "DPMA-2009",
- SampleRow.PROPERTY_PERIOD_BEGIN, begin.getTime(),
- SampleRow.PROPERTY_PERIOD_END, end.getTime());
-
-
- transaction.commitTransaction();
- transaction.closeContext();
-
- InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
- serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
-
- /** EXEC METHOD **/
- SamplingFilter filter = new SamplingFilterImpl();
-// User admin = new UserImpl();
-// admin.setAdmin(true);
-// filter.setCompany()
- filter.setNbMonthFinishedFromToday(0);
- List<SampleRow> results = serviceSampling.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 = serviceSampling.getSampleRowsByFilter(filter);
- assertEquals(1, results.size());
- }
-
- @Test
- public void testGetNewProfession() throws Exception {
- log.info("getNewProfession");
-
- /** PREPARE DATA **/
-
- TopiaContext transaction = manager.getContext().beginTransaction();
-
- ProfessionDAO dao = WaoDAOHelper.getProfessionDAO(transaction);
-
- Profession profession = dao.create(
- Profession.PROPERTY_LIBELLE, "Fileyage en barre",
- Profession.PROPERTY_MESH_SIZE, "< 80",
- Profession.PROPERTY_OTHER, "90mm",
- Profession.PROPERTY_SPECIES, "barre, lieu noir, saumon des plages");
-
- transaction.commitTransaction();
- transaction.closeContext();
-
- /** EXEC METHOD **/
- Profession newProfession = serviceSampling.getNewProfession(profession);
- Assert.assertNotSame(profession, newProfession);
- 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 = manager.getContext().beginTransaction();
-
- FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
- FishingZone zoneIId = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
- FishingZone zoneIV = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
- FishingZone zoneI = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
-
- CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
- companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
- companyDAO.create(Company.PROPERTY_NAME, "BIS");
- transaction.commitTransaction();
-
-
- InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
- serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
-
- SampleRowDAO rowDAO = WaoDAOHelper.getSampleRowDAO(transaction);
- SampleRow row = rowDAO.findByCode("2010_0001");
- row.getProfession();
- row.getProfession();
- row.getCompany();
- row.sizeSampleMonth();
- row.sizeElligibleBoat();
- row.sizeSampleRowLog();
- transaction.closeContext();
-
- input = getClass().getResourceAsStream("/import/navires.csv");
- ServiceBoat serviceBoat = manager.getServiceBoat();
- serviceBoat.importBoatCsv(input);
- List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174592 978419 273129");
-
- serviceSampling.createUpdateSampleRow(row, boats, new SampleRowLogImpl(), getConnectedAdmin());
- /** EXEC METHOD **/
-
- serviceSampling.deleteSampleRow(row);
- transaction = manager.getContext().beginTransaction();
- rowDAO = WaoDAOHelper.getSampleRowDAO(transaction);
- row = rowDAO.findByCode("2010_0001");
- assertNull(row);
-
- ElligibleBoatDAO elligibleDAO = WaoDAOHelper.getElligibleBoatDAO(transaction);
- List<ElligibleBoat> elligibles = elligibleDAO.findAll();
- assertEquals(0, elligibles.size());
-
- log.info("test if sampleRow can't be deleted if contacts are associated");
-
- row = rowDAO.findByCode("2010_0002");
- transaction.closeContext();
-
- Contact contact = new ContactImpl();
- WaoUser observer = createDefaultObserver();
- contact.setMainObserver(observer);
- contact.setSampleRow(row);
-
- ConnectedUser connectedUser = getConnectedUser(observer, UserRole.OBSERVER, ObsProgram.OBSMER);
- manager.getServiceContact().saveContact(connectedUser, contact, false);
-
- try {
- serviceSampling.deleteSampleRow(row);
- Assert.fail("deleting a sample-row with associated contact should"
- + " not be permitted");
- } catch (WaoBusinessException eee) {
- if (log.isTraceEnabled()) {
- log.trace("exception raised while trying to delete sample row",
- eee);
- }
- }
- }
-
- @Test
- public void testImportSamplingPlanCsv()
- throws TopiaException, WaoException, WaoBusinessException {
- log.info("importSamplingPlanCsv");
-
- /** PREPARE DATA **/
- TopiaContext transaction = manager.getContext().beginTransaction();
-
- FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
- FishingZone zoneIId = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
- FishingZone zoneIV = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
- FishingZone zoneI = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
-
- CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
- companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
- companyDAO.create(Company.PROPERTY_NAME, "BIS");
-
- transaction.commitTransaction();
- transaction.closeContext();
-
- /** EXEC METHOD **/
- InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
- ImportResults result = serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
-
- // total imported
- assertEquals(12, result.getNbRowsImported());
- // total refused
- assertEquals(1, result.getNbRowsRefused());
-
- /** CHECK VALUES **/
- transaction = manager.getContext().beginTransaction();
-
- SampleRowDAO rowDAO = WaoDAOHelper.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 =
- WaoDAOHelper.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);
-
- List<SampleMonth> months = row1.getSampleMonth();
- assertEquals(11, months.size());
-
- Collection<FishingZone> zones = row1.getFishingZone();
- assertEquals(2, zones.size());
- zones.contains(zoneI);
- zones.contains(zoneIId);
-
- Collection<DCF5Code> dcf5codes = row1.getDCF5Code();
- assertEquals(1, dcf5codes.size());
-
- assertEquals(row1.getSamplingStrategy(), SamplingStrategy.SIMULTANEOUS_ALL_SPECIES);
-
- transaction.closeContext();
- }
-
- @Test
- public void testGetPrograms() throws Exception {
- /** PREPARE DATA **/
- TopiaContext transaction = manager.getContext().beginTransaction();
-
- FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
- zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
- zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
- zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
-
- CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
- companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
- companyDAO.create(Company.PROPERTY_NAME, "BIS");
- transaction.commitTransaction();
- transaction.closeContext();
-
- InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
- serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
-
- /** EXEC METHOD **/
- List<String> programs = serviceSampling.getPrograms(null);
- assertEquals(4, programs.size());
- }
-
-
- @Test
- public void testGetNewSampleRowCode() throws Exception {
- log.info("getNewSampleRowCode");
-
- /** PREPARE DATA **/
- TopiaContext transaction = manager.getContext().beginTransaction();
-
- FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
- FishingZone zoneIId = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
- FishingZone zoneIV = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
- FishingZone zoneI = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
-
- CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
- companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
- companyDAO.create(Company.PROPERTY_NAME, "BIS");
- transaction.commitTransaction();
-
- ServiceSampling serviceSampling = manager.getServiceSampling();
- InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
- serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
-
- transaction.closeContext();
-
- /** EXEC METHOD **/
-
- Calendar begin = new GregorianCalendar(2009, 11, 1);
-
- String result = serviceSampling.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);
- }
-
-}
Copied: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingTest.java (from rev 1306, trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java)
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingTest.java (rev 0)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -0,0 +1,662 @@
+/*
+ * #%L
+ * Wao :: Business
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.wao.service;
+
+import fr.ifremer.wao.WaoBusinessException;
+import fr.ifremer.wao.WaoDAOHelper;
+import fr.ifremer.wao.WaoException;
+import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.bean.FacadeRow;
+import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.SamplingFilter;
+import fr.ifremer.wao.bean.SamplingFilterImpl;
+import fr.ifremer.wao.bean.SamplingStrategy;
+import fr.ifremer.wao.bean.UserRole;
+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.ContactDAO;
+import fr.ifremer.wao.entity.ContactImpl;
+import fr.ifremer.wao.entity.DCF5Code;
+import fr.ifremer.wao.entity.DCF5CodeImpl;
+import fr.ifremer.wao.entity.ElligibleBoat;
+import fr.ifremer.wao.entity.ElligibleBoatDAO;
+import fr.ifremer.wao.entity.FishingGearDCFDAO;
+import fr.ifremer.wao.entity.FishingGearDCFImpl;
+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 fr.ifremer.wao.entity.TargetSpeciesDCFImpl;
+import fr.ifremer.wao.entity.WaoUser;
+import fr.ifremer.wao.io.ImportResults;
+import org.junit.Assert;
+import org.junit.Test;
+import org.nuiton.topia.TopiaContext;
+import org.nuiton.topia.TopiaException;
+import org.nuiton.util.DateUtil;
+import org.nuiton.util.PeriodDates;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+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 static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertNull;
+
+/**
+ * ServiceSamplingImplTest
+ *
+ * Created: 30 nov. 2009
+ *
+ * @author fdesbois <fdesbois at codelutin.com>
+ */
+public class ServiceSamplingTest extends AbstractServiceTest {
+
+ private static final Logger log =
+ LoggerFactory.getLogger(ServiceSamplingTest.class);
+
+ @Test
+ public void testCreateUpdateSampleRow() throws Exception {
+ /** PREPARE DATA **/
+ TopiaContext transaction = manager.getContext().beginTransaction();
+
+ List<FishingZone> zones = prepareFishingZones(transaction);
+
+ InputStream input = getClass().getResourceAsStream("/import/navires.csv");
+ ServiceBoatImpl serviceBoat = (ServiceBoatImpl) manager.getServiceBoat();
+ serviceBoat.importBoatCsv(input);
+
+ // add DRB, DRH and ALG as existing codes
+ FishingGearDCFDAO fishingGearDCFDAO = WaoDAOHelper.getFishingGearDCFDAO(transaction);
+ fishingGearDCFDAO.create(new FishingGearDCFImpl("DRB"));
+ fishingGearDCFDAO.create(new FishingGearDCFImpl("DRH"));
+ WaoDAOHelper.getTargetSpeciesDCFDAO(transaction).create(new TargetSpeciesDCFImpl("ALG"));
+
+ transaction.commitTransaction();
+
+ transaction.closeContext();
+
+ // CREATE
+ Profession profession1 = new ProfessionImpl();
+ 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 = serviceSampling.newSampleRow(getConnectedAdmin());
+ row.setCode("2010_03");
+ row.setNbObservants(3);
+ row.setAverageTideTime(2.5);
+ row.setProgramName("DPMA-2009");
+ row.setPeriodBegin(DateUtil.createDate(1, 1, 2009));
+ row.setPeriodEnd(DateUtil.createDate(31, 3, 2010));
+ row.setProfession(profession1);
+ row.setSampleMonth(months);
+ row.setFishingZone(zones);
+ row.setFishingZonesInfos("port tres loin du champ");
+
+ // for row, add DCF5 codes DRB_ALG, DRH
+ Collection<DCF5Code> dcf5codes = new ArrayList<DCF5Code>();
+ DCF5Code dcf5 = new DCF5CodeImpl();
+ dcf5.setFishingGearDCF(new FishingGearDCFImpl("DRB"));
+ dcf5.setTargetSpeciesDCF(new TargetSpeciesDCFImpl("ALG"));
+ dcf5codes.add(dcf5);
+ dcf5 = new DCF5CodeImpl();
+ dcf5.setFishingGearDCF(new FishingGearDCFImpl("DRH"));
+ dcf5codes.add(dcf5);
+ row.setDCF5Code(dcf5codes);
+
+ /** EXEC CREATE **/
+ List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174592 978419 273129");
+ serviceSampling.createUpdateSampleRow(row, boats, new SampleRowLogImpl(), getConnectedAdmin());
+ assertNotNull(row.getTopiaId());
+
+ assertNotNull(row.getProfession().getTopiaId());
+
+ SampleRow result = serviceSampling.getSampleRow(row.getTopiaId());
+ assertEquals(3, result.getFishingZone().size());
+ assertEquals(3, result.getElligibleBoat().size());
+
+ // TEST FOR DELETE ELLIGIBLE PROPERTY_BOAT
+ boats.remove(2);
+ serviceSampling.createUpdateSampleRow(result, boats, new SampleRowLogImpl(), getConnectedAdmin());
+
+ result = serviceSampling.getSampleRow(row.getTopiaId());
+ assertEquals(2, result.getElligibleBoat().size());
+
+ // TEST FOR REMOVE FISHING ZONE
+ //FishingZone zone = result.getFishingZone().get(0);
+ result.getFishingZone().remove(0);
+ serviceSampling.createUpdateSampleRow(result, boats, new SampleRowLogImpl(), getConnectedAdmin());
+
+ result = serviceSampling.getSampleRow(row.getTopiaId());
+ assertEquals(2, result.getFishingZone().size());
+
+ // test if sampleRow becomes null in contact after update
+
+ Contact contact = new ContactImpl();
+ WaoUser observer = createDefaultObserver();
+ contact.setMainObserver(observer);
+ contact.setSampleRow(result);
+
+ ConnectedUser connectedUser = getConnectedUser(observer, UserRole.OBSERVER, ObsProgram.OBSMER);
+ manager.getServiceContact().saveContact(connectedUser, contact, false);
+
+// serviceSampling.createUpdateSampleRow(result, boats, new SampleRowLogImpl());
+
+ transaction = manager.getContext().beginTransaction();
+ try {
+ ContactDAO contactDAO = WaoDAOHelper.getContactDAO(transaction);
+
+ Contact contactFound = contactDAO.findBySampleRow(row);
+
+ Assert.assertNotNull(contactFound);
+
+ } finally {
+ transaction.closeContext();
+ }
+
+ }
+
+ @Test
+ public void testUpdateElligibleBoats() throws TopiaException {
+ /** PREPARE DATA **/
+ SampleRow row = createDefaultSampleRow();
+ Boat boat = createDefaultBoat();
+
+ // Create an elligibleBoat active for company
+ ElligibleBoat elligible = createElligibleBoat(row, boat, true);
+ // Retrieve the sampleRow (updated with elligible)
+ row = findDefaultSampleRow(SampleRow.PROPERTY_ELLIGIBLE_BOAT);
+
+ /** EXEC METHOD **/
+ List<Boat> boats = new ArrayList<Boat>();
+ boats.add(boat);
+
+ TopiaContext transaction = serviceSampling.beginTransaction();
+ // Will update the existing ElligibleBoat and set globalActive to true
+ List<List<Integer>> results =
+ serviceSampling.updateElligibleBoats(transaction, row, boats);
+
+ /** CHECKING RESULTS **/
+ Assert.assertEquals(2, results.size());
+ // Index=1 for updatedImmatriculations, 1 is updated
+ Assert.assertEquals(1, results.get(1).size());
+ // Index=0 for removedImmatriculations, 0 is removed
+ Assert.assertEquals(0, results.get(0).size());
+
+ Assert.assertEquals(1, row.sizeElligibleBoat());
+ ElligibleBoat updatedElligible =
+ row.getElligibleBoatByTopiaId(elligible.getTopiaId());
+
+ Assert.assertTrue(updatedElligible.getGlobalActive());
+ }
+
+ /**
+ * Test of getSampleRowsOrderedByFishingZone method, of class ServiceSamplingImpl.
+ */
+ @Test
+ public void testGetSampleRowsOrderedByFishingZone() throws Exception {
+ /** PREPARE DATA **/
+
+ TopiaContext transaction = manager.getContext().beginTransaction();
+
+ List<FishingZone> zones = prepareFishingZones(transaction);
+
+ //Program program1 = programDAO.create(Program.NAME, "DPMA-2009");
+ Date dateBegin1 = DateUtil.createDate(1, 1, 2009);
+ Date dateEnd1 = DateUtil.createDate(1, 3, 2010);
+ PeriodDates period1 = new PeriodDates(dateBegin1, dateEnd1);
+
+ //Program program2 = programDAO.create(Program.NAME, "PPDA-2008");
+ Date dateBegin2 = DateUtil.createDate(1, 1, 2008);
+ Date dateEnd2 = DateUtil.createDate(1, 12, 2008);
+ PeriodDates period2 = new PeriodDates(dateBegin2, dateEnd2);
+
+ SampleRowDAO dao = WaoDAOHelper.getSampleRowDAO(transaction);
+
+ SampleRow row1 = dao.create();
+ row1.setCode("2010_0001");
+ row1.addFishingZone(zones.get(2));
+ row1.setProgramName("DPMA-2009");
+ row1.setPeriod(period1);
+
+ log.trace(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.trace(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.trace(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.trace(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);
+ SamplingFilter filter = new SamplingFilterImpl();
+ filter.setPeriod(new PeriodDates(begin, end));
+ filter.setObsProgram(ObsProgram.OBSMER);
+ // RESULT : [2010_0002, 2010_0004, 2010_0001, 2010_0003]
+ FacadeRow facade = serviceSampling.getSampleRowsOrderedByFishingZone(filter);
+ 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);
+ filter.setPeriod(new PeriodDates(begin, end));
+ // RESULT : [2010_0002, 2010_0004, 2010_0001]
+ facade = serviceSampling.getSampleRowsOrderedByFishingZone(filter);
+ 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 TopiaException {
+
+ FishingZoneDAO fishingZoneDAO = WaoDAOHelper.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 {
+ /** PREPARE DATA **/
+ TopiaContext transaction = manager.getContext().beginTransaction();
+
+ FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
+ FishingZone zoneIId = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
+ FishingZone zoneIV = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
+ FishingZone zoneI = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
+
+ CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
+ Company company = companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
+ Calendar begin = new GregorianCalendar(2009,8,1);
+ Calendar end = new GregorianCalendar(2010,11,31);
+ SampleRowDAO sampleRowDAO = WaoDAOHelper.getSampleRowDAO(transaction);
+ SampleRow row = sampleRowDAO.create(
+ SampleRow.PROPERTY_CODE,"2010_178",
+ SampleRow.PROPERTY_COMPANY,company,
+ SampleRow.PROPERTY_PROGRAM_NAME, "DPMA-2009",
+ SampleRow.PROPERTY_PERIOD_BEGIN, begin.getTime(),
+ SampleRow.PROPERTY_PERIOD_END, end.getTime());
+
+
+ transaction.commitTransaction();
+ transaction.closeContext();
+
+ InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
+ serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
+
+ /** EXEC METHOD **/
+ SamplingFilter filter = new SamplingFilterImpl();
+// User admin = new UserImpl();
+// admin.setAdmin(true);
+// filter.setCompany()
+ filter.setNbMonthFinishedFromToday(0);
+ List<SampleRow> results = serviceSampling.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 = serviceSampling.getSampleRowsByFilter(filter);
+ assertEquals(1, results.size());
+ }
+
+ @Test
+ public void testGetNewProfession() throws Exception {
+ /** PREPARE DATA **/
+
+ TopiaContext transaction = manager.getContext().beginTransaction();
+
+ ProfessionDAO dao = WaoDAOHelper.getProfessionDAO(transaction);
+
+ Profession profession = dao.create(
+ Profession.PROPERTY_LIBELLE, "Fileyage en barre",
+ Profession.PROPERTY_MESH_SIZE, "< 80",
+ Profession.PROPERTY_OTHER, "90mm",
+ Profession.PROPERTY_SPECIES, "barre, lieu noir, saumon des plages");
+
+ transaction.commitTransaction();
+ transaction.closeContext();
+
+ /** EXEC METHOD **/
+ Profession newProfession = serviceSampling.getNewProfession(profession);
+ Assert.assertNotSame(profession, newProfession);
+ 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 {
+ /** PREPARE DATA **/
+ TopiaContext transaction = manager.getContext().beginTransaction();
+
+ FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
+ FishingZone zoneIId = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
+ FishingZone zoneIV = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
+ FishingZone zoneI = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
+
+ CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
+ companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
+ companyDAO.create(Company.PROPERTY_NAME, "BIS");
+ transaction.commitTransaction();
+
+
+ InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
+ serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
+
+ SampleRowDAO rowDAO = WaoDAOHelper.getSampleRowDAO(transaction);
+ SampleRow row = rowDAO.findByCode("2010_0001");
+ row.getProfession();
+ row.getProfession();
+ row.getCompany();
+ row.sizeSampleMonth();
+ row.sizeElligibleBoat();
+ row.sizeSampleRowLog();
+ transaction.closeContext();
+
+ input = getClass().getResourceAsStream("/import/navires.csv");
+ ServiceBoat serviceBoat = manager.getServiceBoat();
+ serviceBoat.importBoatCsv(input);
+ List<Boat> boats = serviceBoat.getBoatsByImmatriculations("174592 978419 273129");
+
+ serviceSampling.createUpdateSampleRow(row, boats, new SampleRowLogImpl(), getConnectedAdmin());
+ /** EXEC METHOD **/
+
+ serviceSampling.deleteSampleRow(row);
+ transaction = manager.getContext().beginTransaction();
+ rowDAO = WaoDAOHelper.getSampleRowDAO(transaction);
+ row = rowDAO.findByCode("2010_0001");
+ assertNull(row);
+
+ ElligibleBoatDAO elligibleDAO = WaoDAOHelper.getElligibleBoatDAO(transaction);
+ List<ElligibleBoat> elligibles = elligibleDAO.findAll();
+ assertEquals(0, elligibles.size());
+
+ // test if sampleRow can't be deleted if contacts are associated
+
+ row = rowDAO.findByCode("2010_0002");
+ transaction.closeContext();
+
+ Contact contact = new ContactImpl();
+ WaoUser observer = createDefaultObserver();
+ contact.setMainObserver(observer);
+ contact.setSampleRow(row);
+
+ ConnectedUser connectedUser = getConnectedUser(observer, UserRole.OBSERVER, ObsProgram.OBSMER);
+ manager.getServiceContact().saveContact(connectedUser, contact, false);
+
+ try {
+ serviceSampling.deleteSampleRow(row);
+ Assert.fail("deleting a sample-row with associated contact should"
+ + " not be permitted");
+ } catch (WaoBusinessException eee) {
+ if (log.isTraceEnabled()) {
+ log.trace("exception raised while trying to delete sample row",
+ eee);
+ }
+ }
+ }
+
+ @Test
+ public void testImportSamplingPlanCsv()
+ throws TopiaException, WaoException, WaoBusinessException {
+ /** PREPARE DATA **/
+ TopiaContext transaction = manager.getContext().beginTransaction();
+
+ FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
+ FishingZone zoneIId = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
+ FishingZone zoneIV = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
+ FishingZone zoneI = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
+
+ CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
+ companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
+ companyDAO.create(Company.PROPERTY_NAME, "BIS");
+
+ transaction.commitTransaction();
+ transaction.closeContext();
+
+ /** EXEC METHOD **/
+ InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
+ ImportResults result = serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
+
+ // total imported
+ assertEquals(12, result.getNbRowsImported());
+ // total refused
+ assertEquals(1, result.getNbRowsRefused());
+
+ /** CHECK VALUES **/
+ transaction = manager.getContext().beginTransaction();
+
+ SampleRowDAO rowDAO = WaoDAOHelper.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 =
+ WaoDAOHelper.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);
+
+ List<SampleMonth> months = row1.getSampleMonth();
+ assertEquals(11, months.size());
+
+ Collection<FishingZone> zones = row1.getFishingZone();
+ assertEquals(2, zones.size());
+ zones.contains(zoneI);
+ zones.contains(zoneIId);
+
+ Collection<DCF5Code> dcf5codes = row1.getDCF5Code();
+ assertEquals(1, dcf5codes.size());
+
+ assertEquals(row1.getSamplingStrategy(), SamplingStrategy.SIMULTANEOUS_ALL_SPECIES);
+
+ transaction.closeContext();
+ }
+
+ @Test
+ public void testGetPrograms() throws Exception {
+ /** PREPARE DATA **/
+ TopiaContext transaction = manager.getContext().beginTransaction();
+
+ FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
+ zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
+ zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
+ zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
+
+ CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
+ companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
+ companyDAO.create(Company.PROPERTY_NAME, "BIS");
+ transaction.commitTransaction();
+ transaction.closeContext();
+
+ InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
+ serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
+
+ /** EXEC METHOD **/
+ List<String> programs = serviceSampling.getPrograms(null);
+ assertEquals(4, programs.size());
+ }
+
+
+ @Test
+ public void testGetNewSampleRowCode() throws Exception {
+ /** PREPARE DATA **/
+ TopiaContext transaction = manager.getContext().beginTransaction();
+
+ FishingZoneDAO zoneDAO = WaoDAOHelper.getFishingZoneDAO(transaction);
+ FishingZone zoneIId = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IId");
+ FishingZone zoneIV = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "IV");
+ FishingZone zoneI = zoneDAO.create(FishingZone.PROPERTY_DISTRICT_CODE, "I");
+
+ CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
+ companyDAO.create(Company.PROPERTY_NAME, "TARTANPION");
+ companyDAO.create(Company.PROPERTY_NAME, "BIS");
+ transaction.commitTransaction();
+
+ ServiceSampling serviceSampling = manager.getServiceSampling();
+ InputStream input = getClass().getResourceAsStream("/import/echantillonnage.csv");
+ serviceSampling.importSamplingPlanCsv(input, getConnectedUser(null, UserRole.ADMIN, ObsProgram.OBSMER));
+
+ transaction.closeContext();
+
+ /** EXEC METHOD **/
+
+ Calendar begin = new GregorianCalendar(2009, 11, 1);
+
+ String result = serviceSampling.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/ServiceSamplingTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSynthesisImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -70,16 +70,11 @@
private static final Logger log =
LoggerFactory.getLogger(ServiceSynthesisImplTest.class);
- private ServiceSynthesis service;
+ protected ServiceSynthesis service;
@Before
- public void setCurrentDate() {
- manager.setCurrentDate(DateUtil.createDate(5, 10, 2010));
- }
-
- @Before
public void initialize() {
- log.info("initialize ServiceSynthesisImplTest");
+ manager.setCurrentDate(DateUtil.createDate(5, 10, 2010));
service = manager.getServiceSynthesis();
}
@@ -88,7 +83,6 @@
*/
@Test
public void testGetBoardingBoats() throws Exception {
- log.info("getBoardingBoats");
/** PREPARE DATA **/
InputStream input = getClass().getResourceAsStream("/import/navires.csv");
ServiceBoat serviceBoat = manager.getServiceBoat();
@@ -187,7 +181,6 @@
*/
@Test
public void testGetComplianceBoardingIndicator() throws Exception {
- log.info("getComplianceBoardingIndicator");
/** PREPARE DATA **/
InputStream input = getClass().getResourceAsStream("/import/navires.csv");
ServiceBoat serviceBoat = manager.getServiceBoat();
@@ -304,7 +297,6 @@
*/
@Test
public void testGetContactStateStatistics() throws Exception {
- log.info("getContactStateStatistics");
/** PREPARE DATA **/
// Company TARTANPION
@@ -376,7 +368,6 @@
*/
@Test
public void testGetContactDataInputDateReactivity() throws Exception {
- log.info("getContactDataInputDateReactivity");
/** PREPARE DATA **/
InputStream input = getClass().getResourceAsStream("/import/navires.csv");
ServiceBoat serviceBoat = manager.getServiceBoat();
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceUserImplTest.java 2011-06-09 09:35:04 UTC (rev 1327)
@@ -56,11 +56,10 @@
private static final Logger log =
LoggerFactory.getLogger(ServiceUserImplTest.class);
- private ServiceUser service;
+ protected ServiceUser service;
@Before
public void setUp() throws Exception {
- super.setUp();
service = manager.getServiceUser();
}
@@ -75,8 +74,6 @@
*/
@Test
public void testCreateUser() throws Exception {
- log.info("############### START ############### testCreateUpdateUser");
-
// create a user with no role
WaoUser user = new WaoUserImpl();
user.setLogin("login");
@@ -130,7 +127,6 @@
@Test
public void testUpdateUser() throws WaoBusinessException, TopiaException {
- log.info("############### START ############### testUpdateUser");
// ---- PREPARE DATA ---- //
@@ -176,7 +172,6 @@
*/
@Test
public void testGetObservers() throws Exception {
- log.info("############### START ############### testGetObservers");
UserProfile adminProfile = new UserProfileImpl(
ObsProgram.OBSMER,
@@ -285,8 +280,6 @@
*/
@Test
public void testCreateDefaultAdmin() throws Exception {
- log.info("############### START ############### testCreateDefaultAdmin");
-
service.createDefaultAdmin();
ServiceUser serviceUser = manager.getServiceUser();
Modified: trunk/wao-business/src/test/resources/log4j.properties
===================================================================
--- trunk/wao-business/src/test/resources/log4j.properties 2011-06-08 16:22:13 UTC (rev 1326)
+++ trunk/wao-business/src/test/resources/log4j.properties 2011-06-09 09:35:04 UTC (rev 1327)
@@ -32,5 +32,5 @@
log4j.appender.A1.layout.ConversionPattern=%d %5p [%t] (%F:%L) %M - %m%n
log4j.logger.fr.ifremer.wao=DEBUG
-log4j.logger.org.nuiton.util=INFO
+log4j.logger.org.nuiton.util=WARN
log4j.logger.org.nuiton.util.beans.BinderProvider=ERROR
1
0
[Suiviobsmer-commits] r1326 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/components java/fr/ifremer/wao/ui/pages webapp
by bleny@users.labs.libre-entreprise.org 08 Jun '11
by bleny@users.labs.libre-entreprise.org 08 Jun '11
08 Jun '11
Author: bleny
Date: 2011-06-08 16:22:13 +0000 (Wed, 08 Jun 2011)
New Revision: 1326
Log:
fix Boats page
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
trunk/wao-ui/src/main/webapp/Boats.tml
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-06-08 09:52:47 UTC (rev 1325)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-06-08 16:22:13 UTC (rev 1326)
@@ -31,6 +31,7 @@
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.ioc.annotations.Inject;
import java.util.List;
@@ -42,7 +43,7 @@
@InjectComponent
private FeedBack filterFeedback;
- @Parameter(required = true)
+ @Inject
private ServiceBoat serviceBoat;
/*
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 2011-06-08 09:52:47 UTC (rev 1325)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-06-08 16:22:13 UTC (rev 1326)
@@ -116,13 +116,16 @@
void onActivate(EventContext ec) {
waoActivationContext = WaoActivationContext.newContextFromTapestry(ec);
- sampleRowContextId = waoActivationContext.getSampleRowCode();
- getBoatFilter().setBoatImmatriculation(
- waoActivationContext.getBoatImmatriculation());
- getBoatFilter().setShipOwnerName(
- waoActivationContext.getShipOwnerName());
}
+ String[] onPassivate() {
+ WaoActivationContext waoActivationContext = WaoActivationContext.newEmptyContext();
+ if (sampleRowContext != null) {
+ waoActivationContext.setSampleRowCode(sampleRowContext.getCode());
+ }
+ return waoActivationContext.toStrings();
+ }
+
@Property
@Persist
private SampleRow sampleRowContext;
@@ -133,18 +136,16 @@
// creating contact and coming back to Boats. But this may break the page
// filterComponent.resetFilter();
- if (boatSelectedImmatriculation != null && getBoatSelected() == null) {
- layout.addFatal("L'immatriculation " + boatSelectedImmatriculation +
- " ne correspond à aucun navire affichable. " +
- "Veuillez à enlever cette immatriculation de l'url puis" +
- " rechargez la page.");
- boatSelectedImmatriculation = null;
- }
-
boats = null;
boatSelectedImmatriculation = null;
companyBoatInfos = null;
+ getBoatFilter().setBoatImmatriculation(
+ waoActivationContext.getBoatImmatriculation());
+ getBoatFilter().setShipOwnerName(
+ waoActivationContext.getShipOwnerName());
+
+ String sampleRowContextId = waoActivationContext.getSampleRowCode();
if (sampleRowContextId == null) {
sampleRowContext = null;
} else {
@@ -160,9 +161,6 @@
public InputStream getStream() throws IOException {
InputStream result = null;
try {
- if (log.isDebugEnabled()) {
- log.debug("Filter sampleRow : " + getFilter().getSampleRow());
- }
result = serviceBoat.exportBoatCsv(getBoatFilter());
} catch (WaoException eee) {
throw new IOException(eee);
@@ -174,49 +172,19 @@
/******************** FILTERS *******************/
- public ServiceBoat getServiceBoat() {
- return serviceBoat;
- }
-
@InjectComponent
private BoatFilterComponent filterComponent;
- @Property
- private String sampleRowContextId;
-
/** Selected boat immatriculation for showing boatInfos */
@Persist
private Integer boatSelectedImmatriculation;
- /** Filters to apply on boats list */
-// @Persist
-// private BoatFilter boatFilter;
-
- /** Current sampleRow from context */
-// @Persist
-// private SampleRow sampleRow;
-
- /** Profession select */
-// @Persist
-// private GenericSelectModel<Profession> professionSelectModel;
-//
-// @Property
-// private String professionId;
-//
-// /** Used to manage view of filters zone */
-// @Persist
-// private boolean filtersHidden;
-
-// @InjectComponent
-// private Zone filtersZone;
-
/**
* Filters to apply on boats list.
*
* @return the current BoatFilter to apply
* @throws WaoException
*/
-// @Override
public SamplingFilter getFilter() throws WaoException {
return getBoatFilter();
}
@@ -225,20 +193,6 @@
return filterComponent.getFilter();
}
-// @Override
-// protected boolean isAvailableDataForFiltersOnly() {
-// return true;
-// }
-
-// public GenericSelectModel<Profession> getProfessionSelectModel() throws WaoException {
-// if (professionSelectModel == null) {
-// List<Profession> professions = serviceReferential.getProfessions();
-// professionSelectModel = new GenericSelectModel<Profession>(professions, Profession.class,
-// "code", "topiaId", propertyAccess);
-// }
-// return professionSelectModel;
-// }
-
public boolean isFiltersVisible() {
return filterComponent.getFiltersVisible();
}
@@ -252,67 +206,14 @@
}
}
- /**
- * EVENT_SELECTED :: reset submit button for filtersForm. Reset filters and sampleRow from context.
- */
void onSelectedFromReset() {
- // Suppress persistant boat filter and sampleRowId in url context.
- sampleRowContextId = null;
- sampleRowContext = null;
- filterComponent.setSampleRow(null);
filterComponent.resetFilter();
}
- /**
- * EVENT_SELECTED :: search sumit button for filtersForm. Get profession from selectModel to add it in filters.
- * Other filters are managed by AbstractFilteredPage superclass.
- *
- * @throws WaoException for business errors
- * @see AbstractFilteredPage#onSelectedFromSearch()
- */
-// @Override
-// public void onSelectedFromSearch() throws WaoException {
-// super.onSelectedFromSearch();
-// if (log.isDebugEnabled()) {
-// log.debug("FILTER : facadeName=" + boatFilter.getFacadeName());
-// log.debug("FILTER : sectorName=" + boatFilter.getSectorName());
-// log.debug("FILTER : sampleRow=" + boatFilter.getSampleRow());
-//// log.debug("FILTER : profession=" + boatFilter.getProfession());
-// log.debug("FILTER : boatName=" + boatFilter.getBoatName());
-// log.debug("FILTER : boatImmatriculation=" + boatFilter.getBoatImmatriculation());
-// log.debug("FILTER : boatDistrictCode=" + boatFilter.getBoatDistrictCode());
-// log.debug("FILTER : company=" + boatFilter.getCompany());
-// }
-// Profession profession = getProfessionSelectModel().findObject(professionId);
-// boatFilter.setProfession(profession);
-// }
-
- /**
- * EVENT_SUCCESS :: for filtersForm. Reset persitant data to have new data using filters selected.
- *
- * @return the filtersZone if it's a refresh data for select, or the page otherwise
- * @throws WaoException for business errors
- */
-// Object onSuccessFromFiltersForm() throws WaoException {
-// if (isEdited()) {
-// return filtersZone.getBody();
-// }
-// // Suppress persistant boats list to get new one with filter
-// boats = null;
-// // Suppress persistant immatriculation for boat selected
-// boatSelectedImmatriculation = null;
-// // Suppress persistant boat informations for boat selected
-// companyBoatInfos = null;
-// return this;
-// }
-
@Log
Object onSuccessFromFiltersForm() throws WaoException {
- // Suppress persistant boats list to get new one with filter
boats = null;
- // Suppress persistant immatriculation for boat selected
boatSelectedImmatriculation = null;
- // Suppress persistant boat informations for boat selected
companyBoatInfos = null;
return boatsZone.getBody();
}
@@ -462,9 +363,9 @@
@Inject
private WaoManager manager;
- public boolean isActivityCalendarImportRun() {
- return manager.isActivityCalendarImportRun();
- }
+// public boolean isActivityCalendarImportRun() {
+// return manager.isActivityCalendarImportRun();
+// }
public Block getActiveBoatInfosBlock() {
if (boatInfosEditable) {
@@ -528,7 +429,6 @@
return company;
}
-
/**
* Used to get the selected boat.
*
@@ -536,11 +436,16 @@
* @throws WaoException
*/
public Boat getBoatSelected() throws WaoException {
- if (log.isDebugEnabled()) {
- log.debug("selected imma : " + boatSelectedImmatriculation);
- log.debug("exist boat ? : " + getBoats().contains(boatSelectedImmatriculation));
+ Boat boatSelected;
+ if (boatSelectedImmatriculation == null) {
+ boatSelected = null;
+ } else {
+ boatSelected = getBoats().get(boatSelectedImmatriculation);
+ if (boatSelected == null) {
+ throw new IllegalStateException("immatriculation selected among an obsolete list of boats");
+ }
}
- return getBoats().get(boatSelectedImmatriculation);
+ return boatSelected;
}
/**
Modified: trunk/wao-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Boats.tml 2011-06-08 09:52:47 UTC (rev 1325)
+++ trunk/wao-ui/src/main/webapp/Boats.tml 2011-06-08 16:22:13 UTC (rev 1326)
@@ -44,8 +44,7 @@
</a>
</div-->
<t:boatFilterComponent t:id="filterComponent"
- t:user="user"
- t:serviceBoat="serviceBoat"/>
+ t:user="user" />
</fieldset>
</div>
@@ -159,7 +158,7 @@
<!-- BOATINFOS:: Informations du navire sélectionné -->
<t:if t:test="boatSelectedImmatriculation">
<t:zone t:id="boatInfosZone" t:update="show" class="fleft" id="so-boats-boat-infos">
- <t:unless t:test="activityCalendarImportRun">
+ <!--t:unless t:test="activityCalendarImportRun"-->
<!-- HEADER For admin -->
<t:if t:test="user.admin">
<h2>${format:wao.ui.misc.infosAbout=boatSelected.name}</h2>
@@ -208,7 +207,7 @@
Veuillez réessayer ultérieurement.
</div>
</p:else>
- </t:unless>
+ <!--/t:unless-->
</t:zone>
<!-- BOATINFOS:: DISPLAY MODE -->
1
0
[Suiviobsmer-commits] r1325 - in trunk: wao-business/src/main/java/fr/ifremer/wao/service wao-ui/src/main/java/fr/ifremer/wao/ui/data wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/webapp wao-ui/src/main/webapp/img
by bleny@users.labs.libre-entreprise.org 08 Jun '11
by bleny@users.labs.libre-entreprise.org 08 Jun '11
08 Jun '11
Author: bleny
Date: 2011-06-08 09:52:47 +0000 (Wed, 08 Jun 2011)
New Revision: 1325
Log:
icons for synthesis ; leaving sample row form lead back to the last seen sampling plan ; add filter on ship owner name on click in boat details
Added:
trunk/wao-ui/src/main/webapp/img/synthesis-observation-hour.png
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/WaoActivationContext.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/ObsDebSamplingPlan.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
trunk/wao-ui/src/main/webapp/Boats.tml
trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
trunk/wao-ui/src/main/webapp/SampleRowForm.tml
trunk/wao-ui/src/main/webapp/Synthesis.tml
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 2011-06-08 08:06:04 UTC (rev 1324)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-06-08 09:52:47 UTC (rev 1325)
@@ -691,9 +691,11 @@
if (result.getObsProgram() == ObsProgram.OBSDEB) {
result.sizeObservers();
- result.getObservationUnit();
- result.getTerrestrialLocation();
- if (result.getObservationType() == ObservationType.PHONE_CALL) {
+ if (result.getObservationUnit() != null) {
+ result.getObservationUnit().getRegionIfremer();
+ }
+ if (result.isPhoneCall()) {
+ result.getTerrestrialLocation();
result.getBoat().getBoatGroup();
}
}
@@ -733,9 +735,12 @@
if (ObsProgram.OBSDEB.equals(result.getObsProgram())) {
result.sizeObservers();
- result.getObservationUnit();
- if (result.getObservationType() == ObservationType.PHONE_CALL) {
+ if (result.getObservationUnit() != null) {
+ result.getObservationUnit().getRegionIfremer();
+ }
+ if (result.isPhoneCall()) {
result.getBoat().getBoatGroup();
+ result.getTerrestrialLocation();
}
} else {
result.sizeElligibleBoat();
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/WaoActivationContext.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/WaoActivationContext.java 2011-06-08 08:06:04 UTC (rev 1324)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/WaoActivationContext.java 2011-06-08 09:52:47 UTC (rev 1325)
@@ -36,15 +36,17 @@
protected static final String SAMPLE_ROW_ID = "sampleRowId";
protected static final String OBSERVATION_TYPE_NAME = "observationTypeName";
protected static final String BOAT_IMMATRICULATION = "boatImmatriculation";
+ protected static final String SHIP_OWNER_NAME = "shipOwnerName";
protected static final List<String> VALID_KEYS = Arrays.asList(
SAMPLE_ROW_CODE, SAMPLE_ROW_ID, OBSERVATION_TYPE_NAME,
- BOAT_IMMATRICULATION);
+ BOAT_IMMATRICULATION, SHIP_OWNER_NAME);
protected String sampleRowCode;
protected String sampleRowId;
protected ObservationType observationType;
protected Integer boatImmatriculation;
+ protected String shipOwnerName;
public static WaoActivationContext newEmptyContext() {
WaoActivationContext newWaoActivationContext = new WaoActivationContext();
@@ -70,6 +72,7 @@
newWaoActivationContext.setObservationType(context.get(OBSERVATION_TYPE_NAME));
newWaoActivationContext.setSampleRowId(context.get(SAMPLE_ROW_ID));
newWaoActivationContext.setBoatImmatriculation(context.get(BOAT_IMMATRICULATION));
+ newWaoActivationContext.setShipOwnerName(context.get(SHIP_OWNER_NAME));
return newWaoActivationContext;
}
@@ -94,6 +97,9 @@
context.put(BOAT_IMMATRICULATION,
String.valueOf(boatImmatriculation));
}
+ if (shipOwnerName != null) {
+ context.put(SHIP_OWNER_NAME, shipOwnerName);
+ }
String[] strings = new String[context.size() * 2];
int i = 0;
for (Map.Entry<String, String> contextEntry : context.entrySet()) {
@@ -148,4 +154,12 @@
public Integer getBoatImmatriculation() {
return boatImmatriculation;
}
+
+ public String getShipOwnerName() {
+ return shipOwnerName;
+ }
+
+ public void setShipOwnerName(String shipOwnerName) {
+ this.shipOwnerName = shipOwnerName;
+ }
}
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 2011-06-08 08:06:04 UTC (rev 1324)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-06-08 09:52:47 UTC (rev 1325)
@@ -37,6 +37,7 @@
import fr.ifremer.wao.entity.Contact;
import fr.ifremer.wao.entity.ElligibleBoat;
import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.entity.ShipOwner;
import fr.ifremer.wao.service.ServiceBoat;
import fr.ifremer.wao.service.ServiceContact;
import fr.ifremer.wao.service.ServiceReferential;
@@ -118,6 +119,8 @@
sampleRowContextId = waoActivationContext.getSampleRowCode();
getBoatFilter().setBoatImmatriculation(
waoActivationContext.getBoatImmatriculation());
+ getBoatFilter().setShipOwnerName(
+ waoActivationContext.getShipOwnerName());
}
@Property
@@ -444,6 +447,13 @@
this.company = company;
}
+ public String[] getContextForShipOwner() {
+ ShipOwner shipOwner = getBoatInfos().getBoat().getShipOwner();
+ String shipOwnerName = shipOwner.getFirstName() + " "
+ + shipOwner.getLastName();
+ waoActivationContext.setShipOwnerName(shipOwnerName);
+ return waoActivationContext.toStrings();
+ }
/*@Persist
private WaoPropertyChangeListener propertyChange;*/
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-06-08 08:06:04 UTC (rev 1324)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-06-08 09:52:47 UTC (rev 1325)
@@ -46,6 +46,7 @@
import fr.ifremer.wao.ui.services.WaoManager;
import org.apache.tapestry5.Block;
import org.apache.tapestry5.ComponentResources;
+import org.apache.tapestry5.EventContext;
import org.apache.tapestry5.StreamResponse;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Log;
@@ -109,6 +110,12 @@
@Property
private ConnectedUser connectedUser;
+ private WaoActivationContext waoActivationContext;
+
+ void onActivate(EventContext ec) {
+ waoActivationContext = WaoActivationContext.newContextFromTapestry(ec);
+ }
+
//// actions of the sub-menu
@Persist
@@ -195,7 +202,11 @@
protected ObservationType getObservationType() {
ObservationType observationType = samplingFilter.getFilter().getExpectedObservationType();
if (observationType == null) {
- observationType = ObservationType.FIELD_WORK_OBSERVATION;
+ if (waoActivationContext.getObservationType() == null) {
+ observationType = ObservationType.FIELD_WORK_OBSERVATION;
+ } else {
+ observationType = waoActivationContext.getObservationType();
+ }
setObservationType(observationType);
}
return observationType;
@@ -213,13 +224,11 @@
}
public void onActionFromSwitchObservationType() {
- ObservationType observationType = getObservationType();
- if (observationType == ObservationType.FIELD_WORK_OBSERVATION) {
- observationType = ObservationType.PHONE_CALL;
+ if (showFieldWorkSamplingPlan()) {
+ setObservationType(ObservationType.PHONE_CALL);
} else {
- observationType = ObservationType.FIELD_WORK_OBSERVATION;
+ setObservationType(ObservationType.FIELD_WORK_OBSERVATION);
}
- setObservationType(observationType);
}
//// grid data
@@ -309,6 +318,7 @@
public String[] getContextForEditingSampleRow() {
WaoActivationContext waoActivationContext = WaoActivationContext.newEmptyContext();
waoActivationContext.setSampleRowId(sampleRow.getTopiaId());
+ waoActivationContext.setObservationType(sampleRow.getObservationType());
return waoActivationContext.toStrings();
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-06-08 08:06:04 UTC (rev 1324)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-06-08 09:52:47 UTC (rev 1325)
@@ -876,6 +876,9 @@
@InjectPage
private SamplingPlan samplingPlan;
+ @InjectPage
+ private ObsDebSamplingPlan obsDebSamplingPlan;
+
@Log
Object onSuccessFromSampleRowForm() throws WaoException {
if (cancel) {
@@ -905,7 +908,8 @@
serviceSampling.createUpdateSampleRow(sampleRow, boats, getSampleRowLog(), user);
if (user.isObsDeb()) {
- return ObsDebSamplingPlan.class;
+ obsDebSamplingPlan.setObservationType(sampleRow.getObservationType());
+ return obsDebSamplingPlan;
} else {
samplingPlan.setSelectedRowId(sampleRow.getTopiaId());
return samplingPlan;
Modified: trunk/wao-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Boats.tml 2011-06-08 08:06:04 UTC (rev 1324)
+++ trunk/wao-ui/src/main/webapp/Boats.tml 2011-06-08 09:52:47 UTC (rev 1325)
@@ -266,7 +266,9 @@
<div>
<p>
<label>${message:wao.ui.field.Boat.shipOwner} : </label>
- ${boatInfos.boat.shipOwner.firstName} ${boatInfos.boat.shipOwner.lastName}
+ <a t:type="pagelink" t:page="boats" t:context="contextForShipOwner" title="${message:wao.ui.action.filter}" >
+ ${boatInfos.boat.shipOwner.firstName} ${boatInfos.boat.shipOwner.lastName}
+ </a>
</p>
<t:if t:test="boatSelected.fleet">
<p>
Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-06-08 08:06:04 UTC (rev 1324)
+++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-06-08 09:52:47 UTC (rev 1325)
@@ -53,7 +53,7 @@
t:page="sampleRowForm"
t:context="contextForNewSampleRow"
title="${message:wao.ui.samplingPlan.addSampleRow}">
- ${message:wao.ui.samplingPlan.addSampleRow}
+ ${message:wao.ui.samplingPlan.addSampleRow}
</a>
</li>
<li>
Modified: trunk/wao-ui/src/main/webapp/SampleRowForm.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-06-08 08:06:04 UTC (rev 1324)
+++ trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-06-08 09:52:47 UTC (rev 1325)
@@ -59,7 +59,7 @@
<div class="t-beaneditor-row">
<label for="observers">${message:wao.ui.field.SampleRow.observers}</label>
<t:topiaEntitySelector t:id="observers"
- t:multiple="sampleRow.fieldWorkObservation"
+ t:multiple="true"
t:clazzName="WaoUser"
t:labelPropertyName="fullName"
t:values="observers"
Modified: trunk/wao-ui/src/main/webapp/Synthesis.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-06-08 08:06:04 UTC (rev 1324)
+++ trunk/wao-ui/src/main/webapp/Synthesis.tml 2011-06-08 09:52:47 UTC (rev 1325)
@@ -51,7 +51,7 @@
</li>
<li>
<a t:type="actionlink" t:context="[actionSynthesisId,'DISTINCT_BOATS_COUNTS']" t:zone="so-synthesis-main" title="${message:SynthesisId.DISTINCT_BOATS_COUNTS}">
- <img src="${asset:context:}/img/synthesis-distinct-boats-counts.png" alt="${message:SynthesisId.DISTINCT_BOATS_COUNTS}" />
+ <img src="${asset:context:}/img/synthesis-graph-boarding.png" alt="${message:SynthesisId.DISTINCT_BOATS_COUNTS}" />
</a>
</li>
<p:else>
Added: trunk/wao-ui/src/main/webapp/img/synthesis-observation-hour.png
===================================================================
(Binary files differ)
Property changes on: trunk/wao-ui/src/main/webapp/img/synthesis-observation-hour.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
1
0
[Suiviobsmer-commits] r1324 - in trunk: wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-ui/src/main/webapp
by bleny@users.labs.libre-entreprise.org 08 Jun '11
by bleny@users.labs.libre-entreprise.org 08 Jun '11
08 Jun '11
Author: bleny
Date: 2011-06-08 08:06:04 +0000 (Wed, 08 Jun 2011)
New Revision: 1324
Log:
fix boat details data loading in Boats page
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatGroupImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
trunk/wao-ui/src/main/webapp/Boats.tml
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatGroupImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatGroupImpl.java 2011-06-07 20:12:09 UTC (rev 1323)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/BoatGroupImpl.java 2011-06-08 08:06:04 UTC (rev 1324)
@@ -5,7 +5,7 @@
@Override
public String getDescription() {
return getCode() + " - " + getCommune() + " - " + getSector() + " - "
- + getStaffSizeGroup() + "-" + getLengthGroup();
+ + getStaffSizeGroup() + " - " + getLengthGroup();
}
@Override
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 2011-06-07 20:12:09 UTC (rev 1323)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-06-08 08:06:04 UTC (rev 1324)
@@ -99,6 +99,7 @@
import java.io.IOException;
import java.io.InputStream;
+import java.sql.SQLOutput;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
@@ -497,9 +498,15 @@
newContact.setObservationType(row.getObservationType());
if (CollectionUtils.isNotEmpty(row.getObservers())) {
List<WaoUser> expectedObservers = new LinkedList<WaoUser>(row.getObservers());
- newContact.setMainObserver(expectedObservers.get(0));
+ WaoUser mainObserver;
+ if (expectedObservers.contains(connectedUser.getUser())) {
+ mainObserver = connectedUser.getUser();
+ } else {
+ mainObserver = expectedObservers.get(0);
+ }
+ newContact.setMainObserver(mainObserver);
newContact.setSecondaryObservers(expectedObservers);
- newContact.removeSecondaryObservers(newContact.getMainObserver());
+ newContact.removeSecondaryObservers(mainObserver);
}
if (row.isFieldWorkObservation()) {
@@ -568,9 +575,13 @@
newContact.setTerrestrialLocation(similarContact.getTerrestrialLocation());
newContact.clearSecondaryObservers();
newContact.addAllSecondaryObservers(similarContact.getSecondaryObservers());
- if (similarContact.getBoat().getImmatriculation() ==
- newContact.getBoat().getImmatriculation()) {
- newContact.setObservationType(ObservationType.FIELD_WORK_SURVEY);
+ newContact.setDataInputDate(similarContact.getDataInputDate());
+
+ if (newContact.getObsProgram() == ObsProgram.OBSDEB) {
+ if (similarContact.getBoat().getImmatriculation() ==
+ newContact.getBoat().getImmatriculation()) {
+ newContact.setObservationType(ObservationType.FIELD_WORK_SURVEY);
+ }
}
}
}
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-06-07 20:12:09 UTC (rev 1323)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-06-08 08:06:04 UTC (rev 1324)
@@ -1,179 +1,179 @@
ContactPieChartConstant.OTHER=Autres
-ContactPieChartConstant.REALIZED=R\u00e9alis\u00e9s
-ContactPieChartConstant.REFUSED=Refus\u00e9s
-ContactState.CONTACT_DEFINITELY_REFUSED=Refus d\u00e9finitif
+ContactPieChartConstant.REALIZED=Réalisés
+ContactPieChartConstant.REFUSED=Refusés
+ContactState.CONTACT_DEFINITELY_REFUSED=Refus définitif
ContactState.CONTACT_REFUSED=Refus
ContactState.CONTACT_START=Contact pris
-ContactState.OBSERVATION_CANCELLED=Annul\u00e9e
-ContactState.OBSERVATION_DONE=Observation r\u00e9alis\u00e9e
-ContactState.OBSERVATION_EXPECTED=Observation programm\u00e9e
-ContactState.OBSERVATION_NOT_DONE=Non observ\u00e9
-DataReliability.CORRECTION_ASKED=Correction demand\u00e9e
+ContactState.OBSERVATION_CANCELLED=Annulée
+ContactState.OBSERVATION_DONE=Observation réalisée
+ContactState.OBSERVATION_EXPECTED=Observation programmée
+ContactState.OBSERVATION_NOT_DONE=Non observé
+DataReliability.CORRECTION_ASKED=Correction demandée
DataReliability.DOUBTFUL=Douteuse
-DataReliability.NOT_PROVIDED=Non contr\u00f4l\u00e9e
+DataReliability.NOT_PROVIDED=Non contrôlée
DataReliability.NOT_RELIABLE=Non exploitable
DataReliability.RELIABLE=Exploitable
DataReliability.UNKNOWN=Inconnue
-GlobalIndicatorValue.BAD=P\u00e9nalit\u00e9 de niveau 1
+GlobalIndicatorValue.BAD=Pénalité de niveau 1
GlobalIndicatorValue.GOOD=Bonus de niveau 1
GlobalIndicatorValue.NEUTRAL=Conforme au cahier des charges
-GlobalIndicatorValue.VERY_BAD=P\u00e9nalit\u00e9 de niveau 2
+GlobalIndicatorValue.VERY_BAD=Pénalité de niveau 2
GlobalIndicatorValue.VERY_GOOD=Bonus de niveau 2
-LocationType.AUCTION=Cri\u00e9e
+LocationType.AUCTION=Criée
LocationType.DISTRICT=Quartier maritime
LocationType.PORT=Port
-LocationType.REGION=R\u00e9gion Ifremer
+LocationType.REGION=Région Ifremer
ObsProgram.OBSDEB=ObsDeb
ObsProgram.OBSMER=ObsMer
ObsProgram.OBSVENTE=ObsVente
ObservationType.FIELD_WORK_OBSERVATION=Observation de terrain
-ObservationType.FIELD_WORK_SURVEY=Enqu\u00eate de terrain
-ObservationType.PHONE_CALL=Enqu\u00eate t\u00e9l\u00e9phonique
-SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00e9 \: Toutes esp\u00e8ces commerciales
-SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1+G2
-SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1
-SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00e9cifique
-SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observ\u00e9s
-SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un m\u00eame navire conforme aux exigences
-SynthesisId.GRAPH_SAMPLING=Taux de r\u00e9alisation du plan d'\u00e9chantillonage
-SynthesisId.IND_ALLEGRO_REACTIVITY=D\u00e9lais de transmission des donn\u00e9es
-SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqu\u00e9s
-SynthesisId.IND_CONTACT_STATE=\u00c9tats des contacts
-SynthesisId.IND_DATA_RELIABILITY=Qualit\u00e9 de la donn\u00e9e
-SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journ\u00e9e
+ObservationType.FIELD_WORK_SURVEY=Enquête de terrain
+ObservationType.PHONE_CALL=Enquête téléphonique
+SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultané \: Toutes espèces commerciales
+SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultané \: espèces G1+G2
+SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultané \: espèces G1
+SamplingStrategy.SPECIFIC_STOCK=Stock spécifique
+SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observés
+SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un même navire conforme aux exigences
+SynthesisId.GRAPH_SAMPLING=Taux de réalisation du plan d'échantillonage
+SynthesisId.IND_ALLEGRO_REACTIVITY=Délais de transmission des données
+SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqués
+SynthesisId.IND_CONTACT_STATE=États des contacts
+SynthesisId.IND_DATA_RELIABILITY=Qualité de la donnée
+SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journée
UserRole.ADMIN=Administrateur
UserRole.COORDINATOR=Coordinateur
-UserRole.GUEST=Invit\u00e9
+UserRole.GUEST=Invité
UserRole.OBSERVER=Observateur
UserRole.PROFESSIONAL=Professionnel
csv.import.error.missingMandatoryHeaders=Les champs obligatoires %s sont manquants
-csv.import.error.unableToParseValue=Erreur lors de l'interpr\u00e9tation de la valeur '%s' (colonne '%s', ligne %s)
-csv.import.error.unableToReadField=Impossible de lire la colonne '%s' \u00e0 la ligne %s
+csv.import.error.unableToParseValue=Erreur lors de l'interprétation de la valeur '%s' (colonne '%s', ligne %s)
+csv.import.error.unableToReadField=Impossible de lire la colonne '%s' à la ligne %s
csv.import.error.unableToReadLine=Impossible de lire la ligne %s
-csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entit\u00e9 '%s', ligne %s, column '%s')
+csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entité '%s', ligne %s, column '%s')
csv.import.error.unrecognizedHeaders=Les champs %s ne sont pas reconnus. Les champs possibles sont %s.
csv.import.logComment=Modification depuis import
-fr.ifremer.wao.entity.FishingGearDCF.=Non sp\u00e9cifi\u00e9
-fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorqu\u00e9es par bateau
-fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues \u00e0 main
-fr.ifremer.wao.entity.FishingGearDCF.FAR=Pi\u00e8ges a\u00e9riens
-fr.ifremer.wao.entity.FishingGearDCF.FCN=\u00c9perviers
-fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-sp\u00e9cifi\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.FIX=Pi\u00e8ges (non-sp\u00e9cifi\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pi\u00e8ges fixes non couverts
+fr.ifremer.wao.entity.FishingGearDCF.=Non spécifié
+fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorquées par bateau
+fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues à main
+fr.ifremer.wao.entity.FishingGearDCF.FAR=Pièges aériens
+fr.ifremer.wao.entity.FishingGearDCF.FCN=Éperviers
+fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.FIX=Pièges (non-spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pièges fixes non couverts
fr.ifremer.wao.entity.FishingGearDCF.FPO=Nasses (casiers)
-fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets \u00e0 l'\u00e9talage (diables)
+fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets à l'étalage (diables)
fr.ifremer.wao.entity.FishingGearDCF.FWR=Barrages, parcs, bordigues, etc.
fr.ifremer.wao.entity.FishingGearDCF.FYK=Verveux
-fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emm\u00e9lants (non sp\u00e9cifi\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis \u00e0 civelles
-fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emmélants (non spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis à civelles
+fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non spécifiés)
fr.ifremer.wao.entity.FishingGearDCF.GNC=Filets maillants encerclants
-fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants d\u00e9rivants (filets d\u00e9rivants)
+fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants dérivants (filets dérivants)
fr.ifremer.wao.entity.FishingGearDCF.GNF=Filets maillants fixes (sur perches)
-fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants cal\u00e9s (ancr\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.GT=Tr\u00e9mailleurs
-fr.ifremer.wao.entity.FishingGearDCF.GTN=Tr\u00e9mails et filets maillants combin\u00e9s
-fr.ifremer.wao.entity.FishingGearDCF.GTR=Tr\u00e9mails
+fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants calés (ancrés)
+fr.ifremer.wao.entity.FishingGearDCF.GT=Trémailleurs
+fr.ifremer.wao.entity.FishingGearDCF.GTN=Trémails et filets maillants combinés
+fr.ifremer.wao.entity.FishingGearDCF.GTR=Trémails
fr.ifremer.wao.entity.FishingGearDCF.HAR=Harpons
-fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues m\u00e9canis\u00e9es
+fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues mécanisées
fr.ifremer.wao.entity.FishingGearDCF.HMP=Pompes
-fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de r\u00e9colte (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de récolte (non spécifiés)
fr.ifremer.wao.entity.FishingGearDCF.LA=Filets tournants sans coulisse (filet lamparo)
-fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes \u00e0 main et lignes avec cannes
-fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes \u00e0 main et lignes \u00e0 cannes
-fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non sp\u00e9cifi\u00e9es)
-fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres d\u00e9rivantes
-fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres cal\u00e9es ou semi-flottantes
-fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulev\u00e9s (non sp\u00e9cifi\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulev\u00e9s man\u0153uvr\u00e9es du bateau
-fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulev\u00e9s portatifs
-fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulev\u00e9s fixes man\u0153uvr\u00e9es du rivage
-fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de tra\u00eene
-fr.ifremer.wao.entity.FishingGearDCF.LX=Hame\u00e7ons et lignes (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes à main et lignes avec cannes
+fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes à main et lignes à cannes
+fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non spécifiées)
+fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres dérivantes
+fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres calées ou semi-flottantes
+fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulevés (non spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulevés manœuvrées du bateau
+fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulevés portatifs
+fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulevés fixes manœuvrées du rivage
+fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de traîne
+fr.ifremer.wao.entity.FishingGearDCF.LX=Hameçons et lignes (non spécifiés)
fr.ifremer.wao.entity.FishingGearDCF.MIS=Divers
-fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non sp\u00e9cifi\u00e9s
-fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts \u00e0 panneaux (non sp\u00e9cifi\u00e9)
-fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond \u00e0 panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts p\u00e9lagiques \u00e0 panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux \u00e0 panneaux
+fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non spécifiés
+fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts à panneaux (non spécifié)
+fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond à panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts pélagiques à panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux à panneaux
fr.ifremer.wao.entity.FishingGearDCF.PS=Filets tournants avec coulisse (sennes coulissantes)
-fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par un bateau
-fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-b\u0153ufs (non sp\u00e9cifi\u00e9)
-fr.ifremer.wao.entity.FishingGearDCF.PTB=Chalut-b\u0153ufs de fond
-fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-b\u0153ufs p\u00e9lagiques
-fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de p\u00eache r\u00e9vr\u00e9ative
+fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes manœuvrées par un bateau
+fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes manœuvrées par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-bœufs (non spécifié)
+fr.ifremer.wao.entity.FishingGearDCF.PTB=Chalut-bœufs de fond
+fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-bœufs pélagiques
+fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de pêche révréative
fr.ifremer.wao.entity.FishingGearDCF.SB=Sennes de plages
fr.ifremer.wao.entity.FishingGearDCF.SDN=Sennes danoises
-fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes man\u0153uvr\u00e9es par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes \u00e9cossaises
-fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes hal\u00e9es \u00e0 bord
-fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non sp\u00e9cifi\u00e9es)
-fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non sp\u00e9cifi\u00e9)
-fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts \u00e0 perche
-fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut \u00e0 langoustines
-fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut \u00e0 crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut p\u00e9lagique (non sp\u00e9cifi\u00e9)
-fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut \u00e0 crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non sp\u00e9cifi\u00e9)
-fr.ifremer.wao.entity.TargetSpeciesDCF.=Non sp\u00e9cifi\u00e9
+fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes manœuvrées par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes écossaises
+fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes halées à bord
+fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non spécifiées)
+fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non spécifié)
+fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts à perche
+fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut à langoustines
+fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut à crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut pélagique (non spécifié)
+fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut à crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non spécifié)
+fr.ifremer.wao.entity.TargetSpeciesDCF.=Non spécifié
fr.ifremer.wao.entity.TargetSpeciesDCF.ALG=Algues
-fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Esp\u00e8ces catadromes
-fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustac\u00e9s
+fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Espèces catadromes
+fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustacés
fr.ifremer.wao.entity.TargetSpeciesDCF.CSJ=Coquilles Saint-Jacques
-fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Esp\u00e8ces d\u00e9mersales
-fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Esp\u00e8ces d'eaux profondes
+fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Espèces démersales
+fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Espèces d'eaux profondes
fr.ifremer.wao.entity.TargetSpeciesDCF.FIN=Poisson plats
-fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands p\u00e9lagiques
+fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands pélagiques
fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Mollusques
-fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits p\u00e9lagiques
-wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit \u00eatre form\u00e9e de 6 chiffres
-wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut pr\u00e9ciser dans le commentaire administrateur pourquoi la donn\u00e9e est '%s'
-wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut pr\u00e9ciser la qualit\u00e9 de la donn\u00e9e avant de valider
+fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits pélagiques
+wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit être formée de 6 chiffres
+wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s'
+wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut préciser la qualité de la donnée avant de valider
wao.business.entity.UserProfile.description=%s sur %s%s
-wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseign\u00e9 dans WAO l'information suivante \:\n\nMar\u00e9e \: %s\nM\u00e9tier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao
+wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseigné dans WAO l'information suivante \:\n\nMarée \: %s\nMétier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao
wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information sur capture accidentelle
wao.business.other=Autre
wao.business.readOnly=(lecture seule)
-wao.error.boat.canCreateContact=Impossible de cr\u00e9er un nouveau contact pour la soci\u00e9t\u00e9 %1$s et le navire %2$s (%3$d)
-wao.error.boat.getNbBoarding=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s
-wao.error.boatInfos.getNbBoardingForCompany=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s pour la soci\u00e9t\u00e9 %2$s
+wao.error.boat.canCreateContact=Impossible de créer un nouveau contact pour la société %1$s et le navire %2$s (%3$d)
+wao.error.boat.getNbBoarding=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s
+wao.error.boatInfos.getNbBoardingForCompany=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s pour la société %2$s
wao.error.context.close=Une erreur est survenue pendant la fermeture du contexte principale de ToPIA
wao.error.context.encodeString=
-wao.error.context.getRootContext=Une erreur est survenue pour la r\u00e9cup\u00e9ration du contexte principale de ToPIA
+wao.error.context.getRootContext=Une erreur est survenue pour la récupération du contexte principale de ToPIA
wao.error.context.parse=Une erreur est survenue pendant le chargement de la configuration du fichier %1$s
wao.error.context.rollback=Une erreur est survenue pendant l'annulation de la transaction courante
-wao.error.context.start=Une erreur est survenue pendant le d\u00e9marrage de l'application
+wao.error.context.start=Une erreur est survenue pendant le démarrage de l'application
wao.error.context.stop=Une erreur est survenue pendant la fermeture de l'application
-wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de mar\u00e9es r\u00e9els pour le mois de %1$s [ligne \: %2$s]
-wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire \u00e9crit par %1$s
-wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de cr\u00e9er ou modifier les informations li\u00e9s au navire %1$d pour la soci\u00e9t\u00e9 %2$s
-wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires s\u00e9lectionn\u00e9s
+wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de marées réels pour le mois de %1$s [ligne \: %2$s]
+wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire écrit par %1$s
+wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de créer ou modifier les informations liés au navire %1$d pour la société %2$s
+wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires sélectionnés
wao.error.serviceBoat.getActivityCalendarLogAccessFile=
wao.error.serviceBoat.getActivityCalendarLogFile=
wao.error.serviceBoat.getAllActiveBoats=
wao.error.serviceBoat.getBoat=Impossible de charger le navire
-wao.error.serviceBoat.getBoatNamesStartWith=Impossible de r\u00e9cup\u00e9rer les navires avec un nom commencant par '%1$s'
+wao.error.serviceBoat.getBoatNamesStartWith=Impossible de récupérer les navires avec un nom commencant par '%1$s'
wao.error.serviceBoat.getBoatsByFilter=Impossible de filtrer la liste des navires
-wao.error.serviceBoat.getBoatsByImmatriculations=La cha\u00eene d'immatriculations est incorrect \! Chaque immatriculation doit poss\u00e9der 6 chiffres
-wao.error.serviceBoat.getCompanyBoatInfos=Impossible de r\u00e9cup\u00e9rer les informations du navire immatricul\u00e9 %1$d pour la soci\u00e9t\u00e9 %2$s
-wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activit\u00e9 du navire %1$s (%2$d)
+wao.error.serviceBoat.getBoatsByImmatriculations=La chaîne d'immatriculations est incorrect \! Chaque immatriculation doit posséder 6 chiffres
+wao.error.serviceBoat.getCompanyBoatInfos=Impossible de récupérer les informations du navire immatriculé %1$d pour la société %2$s
+wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activité du navire %1$s (%2$d)
wao.error.serviceBoat.getNbBoatsByFilter=Impossible de filtrer la liste des navires
wao.error.serviceBoat.getPossibleValuesForFilter=
wao.error.serviceBoat.getShipOwnerNamesContains=
-wao.error.serviceBoat.importActivityCalendarCsv=Probl\u00e8me d'import du fichier CSV des calendriers d'activit\u00e9
-wao.error.serviceBoat.importBoatCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier.
+wao.error.serviceBoat.importActivityCalendarCsv=Problème d'import du fichier CSV des calendriers d'activité
+wao.error.serviceBoat.importBoatCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier.
wao.error.serviceBoat.newBoatFilter=
wao.error.serviceCartography.exportContactMotifsStatisticsKml=
wao.error.serviceCartography.exportContactStatisticsKml=
-wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonn\u00e9es des quartiers des navires. V\u00e9rifiez la documentation pour le bon format du fichier Kml.
+wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonnées des quartiers des navires. Vérifiez la documentation pour le bon format du fichier Kml.
wao.error.serviceChart.getContactPieChartData=
wao.error.serviceChart.getContactPieChartUrl=
wao.error.serviceContact.exportContactCsv=Impossible d'exporter les contacts
wao.error.serviceContact.getContact=Impossible de trouver le contact
wao.error.serviceContact.getContacts=Impossible de filtrer la liste des contacts
-wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtr\u00e9s
+wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtrés
wao.error.serviceContact.getNewContact=Impossible d'instancier un nouveau contact
wao.error.serviceContact.getPossibleObsDebCodes=
wao.error.serviceContact.getPossibleTerrestrialLocations=
@@ -188,7 +188,7 @@
wao.error.serviceContact.updateSampleMonthTidesValue=
wao.error.serviceContact.validateContact=
wao.error.serviceNews.getNewNews=
-wao.error.serviceNews.getNews=Impossible de r\u00e9cup\u00e9rer l'ensemble des news
+wao.error.serviceNews.getNews=Impossible de récupérer l'ensemble des news
wao.error.serviceNews.saveNews=Impossible d'enregistrer la news ayant pour titre '%1$s'
wao.error.serviceReferential.getAllContactStateMotifs=
wao.error.serviceReferential.getAllObsDebCodes=
@@ -200,13 +200,13 @@
wao.error.serviceReferential.getAllTerrestrialLocations=
wao.error.serviceReferential.getCodesDCF5Contains=
wao.error.serviceReferential.getFacades=Impossible de charger la liste des facades
-wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de p\u00eache
-wao.error.serviceReferential.getProfessions=Impossible de charger la liste des m\u00e9tiers
-wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00eache
+wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de pêche
+wao.error.serviceReferential.getProfessions=Impossible de charger la liste des métiers
+wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de pêche
wao.error.serviceReferential.getTerrestrialDistrict=
wao.error.serviceReferential.importContactStateMotifs=
-wao.error.serviceReferential.importDCFcodes=Impossible de cr\u00e9er le r\u00e9f\u00e9rentiel des codes DCF
-wao.error.serviceReferential.importFishingZoneCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00e9tails.
+wao.error.serviceReferential.importDCFcodes=Impossible de créer le référentiel des codes DCF
+wao.error.serviceReferential.importFishingZoneCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de détails.
wao.error.serviceReferential.importInitialContactStateMotifs=
wao.error.serviceReferential.importObsDebCodes=
wao.error.serviceReferential.importTerrestrialDivisions=
@@ -215,74 +215,74 @@
wao.error.serviceReferential.updateAllContactStatesMotifs=
wao.error.serviceSampling.countSampleRows=
wao.error.serviceSampling.createSampleRowLog=
-wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00e9chantillon
-wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00e9chantillon \: %1$s
-wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'\u00e9chantillonnage sur la p\u00e9riode du %1$s au %2$s
+wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'échantillon
+wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'échantillon \: %1$s
+wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'échantillonnage sur la période du %1$s au %2$s
wao.error.serviceSampling.exportSamplingPlanICalendar=
wao.error.serviceSampling.getDCFGears=
wao.error.serviceSampling.getDCFSpecies=
wao.error.serviceSampling.getNewProfession=
wao.error.serviceSampling.getNewSampleMonth=
wao.error.serviceSampling.getNewSampleRow=
-wao.error.serviceSampling.getNewSampleRowCode=Impossible de r\u00e9cup\u00e9rer un nouveau code pour une ligne d'\u00e9chantillonnage
+wao.error.serviceSampling.getNewSampleRowCode=Impossible de récupérer un nouveau code pour une ligne d'échantillonnage
wao.error.serviceSampling.getNewSampleRowLog=
wao.error.serviceSampling.getPossibleValuesForFilter=
wao.error.serviceSampling.getPrograms=Impossible de charger la liste des programmes
-wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'\u00e9chantillon ayant pour identifiant \: %1$s
-wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00e9chantillon ayant pour code %1$s
-wao.error.serviceSampling.getSampleRowsByFilter=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage
+wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'échantillon ayant pour identifiant \: %1$s
+wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'échantillon ayant pour code %1$s
+wao.error.serviceSampling.getSampleRowsByFilter=Impossible de récupérer la liste des lignes du plan d'échantillonnage
wao.error.serviceSampling.getSampleRowsForEligibility=
-wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage
+wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de récupérer la liste des lignes du plan d'échantillonnage
wao.error.serviceSampling.importSamplingPlanCsv=Erreur lors de l'import du plan
wao.error.serviceSampling.newOperation=
wao.error.serviceSampling.newSampleRow=
wao.error.serviceSampling.newSamplingFilter=
wao.error.serviceSampling.validateSampleRow=
wao.error.serviceSynthesis.getAllIndicatorLogs=
-wao.error.serviceSynthesis.getBoardingBoats=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es du graphique concernant les embarquements sur les navires
+wao.error.serviceSynthesis.getBoardingBoats=Impossible de récupérer les données du graphique concernant les embarquements sur les navires
wao.error.serviceSynthesis.getBoatsCount=
wao.error.serviceSynthesis.getComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de r\u00e9cup\u00e9rer l'indicateur de r\u00e9activit\u00e9 sur les dates de saisies dans Allegro
+wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de récupérer l'indicateur de réactivité sur les dates de saisies dans Allegro
wao.error.serviceSynthesis.getContactPieChartData=
wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict=
wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateStatistics=Impossible de r\u00e9cup\u00e9rer les statistiques sur les \u00e9tats des contacts
+wao.error.serviceSynthesis.getContactStateStatistics=Impossible de récupérer les statistiques sur les états des contacts
wao.error.serviceSynthesis.getDataReliability=
-wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es pour le graphique dynamique des efforts de mar\u00e9es
+wao.error.serviceSynthesis.getDataSampling=Impossible de récupérer les données pour le graphique dynamique des efforts de marées
wao.error.serviceSynthesis.getDistinctBoatsCounts=
-wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es concernant les indicateurs pour la synth\u00e8se globale
+wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de récupérer les données concernant les indicateurs pour la synthèse globale
wao.error.serviceSynthesis.getGlobalSynthesisResult=
-wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de r\u00e9cup\u00e9rer l'indicateur de non respect du nombre d'observateurs embarqu\u00e9s
+wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de récupérer l'indicateur de non respect du nombre d'observateurs embarqués
wao.error.serviceSynthesis.getObservationHours=
-wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre \u00e0 jour les param\u00e8tres de la synth\u00e8se globale
+wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre à jour les paramètres de la synthèse globale
wao.error.serviceUser.addTokensToAllProfiles=
wao.error.serviceUser.connect=Une erreur est survenue lors de la demande de connexion
-wao.error.serviceUser.createDefaultAdmin=Impossible de cr\u00e9er l'administrateur par d\u00e9faut
-wao.error.serviceUser.createUpdateCompany=Impossible de cr\u00e9er ou de mettre \u00e0 jour la soci\u00e9t\u00e9
-wao.error.serviceUser.createUpdateUser=Impossible de cr\u00e9er ou de mettre \u00e0 jour l'utilisateur
-wao.error.serviceUser.deleteCompany=Impossible de supprimer la soci\u00e9t\u00e9 ou de v\u00e9rifier les contraintes de suppression
+wao.error.serviceUser.createDefaultAdmin=Impossible de créer l'administrateur par défaut
+wao.error.serviceUser.createUpdateCompany=Impossible de créer ou de mettre à jour la société
+wao.error.serviceUser.createUpdateUser=Impossible de créer ou de mettre à jour l'utilisateur
+wao.error.serviceUser.deleteCompany=Impossible de supprimer la société ou de vérifier les contraintes de suppression
wao.error.serviceUser.deleteUser=Impossible de supprimer l'utilisateur
wao.error.serviceUser.existLogin=
wao.error.serviceUser.forgetPassword=Impossible d'envoyer le mail d'oubli de mot de passe
-wao.error.serviceUser.getCompanies=Impossible de r\u00e9cup\u00e9rer la liste des soci\u00e9t\u00e9s
+wao.error.serviceUser.getCompanies=Impossible de récupérer la liste des sociétés
wao.error.serviceUser.getCompany=
wao.error.serviceUser.getConnectedUserByToken=
wao.error.serviceUser.getNewUser=Impossible d'instancier un nouvel utilisateur
-wao.error.serviceUser.getObservers=Impossible de r\u00e9cup\u00e9rer la liste des observateurs
+wao.error.serviceUser.getObservers=Impossible de récupérer la liste des observateurs
wao.error.serviceUser.getUserByToken=
wao.error.serviceUser.getUserRolesByLogin=
-wao.error.serviceUser.getUsersByCompany=Impossible de r\u00e9cup\u00e9rer la liste des utilisateurs de la soci\u00e9t\u00e9 %1$s
+wao.error.serviceUser.getUsersByCompany=Impossible de récupérer la liste des utilisateurs de la société %1$s
wao.export.ical.desc=avec %s
wao.export.ical.title=Observation ObsDeb
-wao.import.contact.failure.boatMissing=Il faut pr\u00e9ciser l'immatriculation du navire associ\u00e9 au contact
-wao.import.contact.failure.locationTypeMissing=Le type du lieu doit \u00eatre renseign\u00e9
-wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associ\u00e9e
+wao.import.contact.failure.boatMissing=Il faut préciser l'immatriculation du navire associé au contact
+wao.import.contact.failure.locationTypeMissing=Le type du lieu doit être renseigné
+wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associée
wao.import.contact.failure.terrestrialLocationMissing=Il manque le code du lieu
wao.import.contact.failure.wrongBoat=Il n'y a pas de navire avec l'immatriculation '%s'
wao.import.contact.failure.wrongSampleRowCode=Il n'y a pas de ligne du plan avec le code '%s'
wao.import.contact.failure.wrongTerrestrialLocation=Il n'y a pas de lieu de type '%s' ayant pour code '%s'
wao.import.failure.wrongLocationType='%s' n'est pas un type de lieu valide, les valeurs admises sont %s
-wao.import.failure.wrongObsDebCode=Il n'y a pas de code m\u00e9tier ayant pour code '%s'
+wao.import.failure.wrongObsDebCode=Il n'y a pas de code métier ayant pour code '%s'
wao.import.failure.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s'
-wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut \u00eatre associ\u00e9 \u00e0 la ligne %s car il doit observer, le m\u00eame jour, pour la ligne %s
-wao.validation.sampleRow.observerNotInCompany=L'observateur %s ne fait pas parti de la soci\u00e9t\u00e9 %s
+wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut être associé à la ligne %s car il doit observer, le même jour, pour la ligne %s
+wao.validation.sampleRow.observerNotInCompany=L'observateur %s ne fait pas parti de la société %s
Modified: trunk/wao-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Boats.tml 2011-06-07 20:12:09 UTC (rev 1323)
+++ trunk/wao-ui/src/main/webapp/Boats.tml 2011-06-08 08:06:04 UTC (rev 1324)
@@ -268,16 +268,16 @@
<label>${message:wao.ui.field.Boat.shipOwner} : </label>
${boatInfos.boat.shipOwner.firstName} ${boatInfos.boat.shipOwner.lastName}
</p>
- <t:if t:test="boatInfos.boat.fleet">
+ <t:if t:test="boatSelected.fleet">
<p>
<label>${message:wao.ui.field.Boat.fleet} : </label>
- ${boatInfos.boat.fleet.description}
+ ${boatSelected.fleet.description}
</p>
</t:if>
- <t:if t:test="boatInfos.boat.boatGroup">
+ <t:if t:test="boatSelected.boatGroup">
<p>
<label>${message:wao.ui.field.Boat.boatGroup} : </label>
- ${boatInfos.boat.boatGroup.description}
+ ${boatSelected.boatGroup.description}
</p>
</t:if>
<p class="sep"> </p>
1
0
07 Jun '11
Author: tchemit
Date: 2011-06-07 20:12:09 +0000 (Tue, 07 Jun 2011)
New Revision: 1323
Log:
Update mavenpom4labs to 2.5.5.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-06-07 15:08:06 UTC (rev 1322)
+++ trunk/pom.xml 2011-06-07 20:12:09 UTC (rev 1323)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4labs</artifactId>
- <version>2.5.4</version>
+ <version>2.5.5</version>
</parent>
<groupId>fr.ifremer</groupId>
1
0
[Suiviobsmer-commits] r1322 - in trunk/wao-business/src: main/java/fr/ifremer/wao/bean main/java/fr/ifremer/wao/io/csv2/models main/java/fr/ifremer/wao/io/csv2/models/operations main/resources/i18n test/java/fr/ifremer/wao/business
by bleny@users.labs.libre-entreprise.org 07 Jun '11
by bleny@users.labs.libre-entreprise.org 07 Jun '11
07 Jun '11
Author: bleny
Date: 2011-06-07 15:08:06 +0000 (Tue, 07 Jun 2011)
New Revision: 1322
Log:
fix contacts import/export
Added:
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/LocationTypeParserFormatter.java
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactState.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java
trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFieldWorkTest.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactState.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactState.java 2011-06-07 12:43:43 UTC (rev 1321)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ContactState.java 2011-06-07 15:08:06 UTC (rev 1322)
@@ -55,7 +55,7 @@
CONTACT_START(n_("ContactState.CONTACT_START"), false, false, false, false),
/** Observer has now someone to meet */
- OBSERVATION_EXPECTED(n_("ContactState.OBSERVATION_EXPECTED"), false, false, true, false),
+ OBSERVATION_EXPECTED(n_("ContactState.OBSERVATION_EXPECTED"), false, false, true, true),
/** Observation was done, all data have been collected. Everything is fine */
OBSERVATION_DONE(n_("ContactState.OBSERVATION_DONE"), true, false, true, true),
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java 2011-06-07 12:43:43 UTC (rev 1321)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java 2011-06-07 15:08:06 UTC (rev 1322)
@@ -46,6 +46,7 @@
import fr.ifremer.wao.io.csv2.ValueGetterSetter;
import fr.ifremer.wao.io.csv2.ValueParserFormatter;
import fr.ifremer.wao.io.csv2.models.operations.BoatParserFormatter;
+import fr.ifremer.wao.io.csv2.models.operations.LocationTypeParserFormatter;
import fr.ifremer.wao.io.csv2.models.operations.ObsDebCodeParserFormatter;
import fr.ifremer.wao.io.csv2.models.operations.UserParserFormatter;
import fr.ifremer.wao.io.csv2.models.operations.UsersParserFormatter;
@@ -224,14 +225,28 @@
// terrestrial location for both ObsVente and ObsDeb
ValueGetterSetter<Contact, LocationType> locationTypeGetter = new Common.ValueSaver<Contact, LocationType>();
- modelBuilder.newMandatoryColumn("CONTACT_LIEU_TYPE", new Common.ToStringParserFormatter<LocationType>(LocationType.values()), locationTypeGetter);
- modelBuilder.newColumnForExport("CONTACT_LIEU_TYPE", new ValueGetter<Contact, String>() {
- @Override
- public String get(Contact contact) throws Exception {
- return contact.getTerrestrialLocation().getLocationType().toString();
- }
- });
- modelBuilder.newColumnForImportExport("CONTACT_LIEU_CODE", Contact.PROPERTY_TERRESTRIAL_LOCATION,
+ LocationTypeParserFormatter locationTypeParserFormatter = new LocationTypeParserFormatter();
+ modelBuilder.newMandatoryColumn(
+ "CONTACT_LIEU_TYPE",
+ locationTypeParserFormatter,
+ locationTypeGetter);
+ modelBuilder.newColumnForExport(
+ "CONTACT_LIEU_TYPE",
+ new ValueGetter<Contact, LocationType>() {
+ @Override
+ public LocationType get(Contact contact) throws Exception {
+ LocationType locationType = null;
+ if (contact.getTerrestrialLocation() != null) {
+ locationType = contact.getTerrestrialLocation()
+ .getLocationType();
+ }
+ return locationType;
+ }
+ },
+ locationTypeParserFormatter);
+ modelBuilder.newColumnForImportExport(
+ "CONTACT_LIEU_CODE",
+ Contact.PROPERTY_TERRESTRIAL_LOCATION,
new TerrestrialLocationParserFormatter(terrestrialLocations, locationTypeGetter));
modelBuilder.newIgnoredColumn("CONTACT_LIEU_DESCRIPTION");
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/LocationTypeParserFormatter.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/LocationTypeParserFormatter.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/LocationTypeParserFormatter.java 2011-06-07 15:08:06 UTC (rev 1322)
@@ -0,0 +1,44 @@
+package fr.ifremer.wao.io.csv2.models.operations;
+
+import fr.ifremer.wao.WaoUtils;
+import fr.ifremer.wao.bean.LocationType;
+import fr.ifremer.wao.io.csv2.ValueParserFormatter;
+import org.apache.commons.lang.StringUtils;
+
+import java.text.ParseException;
+import java.util.HashMap;
+import java.util.Map;
+
+/** Parse a location type (PORT or AUCTION only) */
+public class LocationTypeParserFormatter implements ValueParserFormatter<LocationType> {
+
+ @Override
+ public String format(LocationType locationType) {
+ String value = "";
+ if (locationType != null) {
+ value = locationType.toString();
+ }
+ return value;
+ }
+
+ protected Map<String, LocationType> fromStrings;
+
+ @Override
+ public LocationType parse(String value) throws ParseException {
+ if (fromStrings == null) {
+ fromStrings = new HashMap<String, LocationType>();
+ fromStrings.put(LocationType.PORT.toString(), LocationType.PORT);
+ fromStrings.put(LocationType.AUCTION.toString(), LocationType.AUCTION);
+ }
+ LocationType locationType = null;
+ if (StringUtils.isNotBlank(value)) {
+ locationType = fromStrings.get(value.trim());
+ if (locationType == null) {
+ throw new IllegalArgumentException(
+ WaoUtils._("wao.import.failure.wrongLocationType",
+ value, fromStrings.keySet()));
+ }
+ }
+ return locationType;
+ }
+}
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-06-07 12:43:43 UTC (rev 1321)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-06-07 15:08:06 UTC (rev 1322)
@@ -281,6 +281,7 @@
wao.import.contact.failure.wrongBoat=There is no boat with plate number '%s'
wao.import.contact.failure.wrongSampleRowCode=The is no sample row with code '%s'
wao.import.contact.failure.wrongTerrestrialLocation=There is no location of type '%s' with code '%s'
+wao.import.failure.wrongLocationType='%s' is not a valid location type, allowed values are %s
wao.import.failure.wrongObsDebCode=There is no profession code having code '%s'
wao.import.failure.wrongUser=There is no user with login '%s'
wao.validation.sampleRow.conflictOnObserver=Observer %s cannot be associated to the line %s because he has to observer, on the same day, for row %s
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-06-07 12:43:43 UTC (rev 1321)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-06-07 15:08:06 UTC (rev 1322)
@@ -1,179 +1,179 @@
ContactPieChartConstant.OTHER=Autres
-ContactPieChartConstant.REALIZED=Réalisés
-ContactPieChartConstant.REFUSED=Refusés
-ContactState.CONTACT_DEFINITELY_REFUSED=Refus définitif
+ContactPieChartConstant.REALIZED=R\u00e9alis\u00e9s
+ContactPieChartConstant.REFUSED=Refus\u00e9s
+ContactState.CONTACT_DEFINITELY_REFUSED=Refus d\u00e9finitif
ContactState.CONTACT_REFUSED=Refus
ContactState.CONTACT_START=Contact pris
-ContactState.OBSERVATION_CANCELLED=Annulée
-ContactState.OBSERVATION_DONE=Observation réalisée
-ContactState.OBSERVATION_EXPECTED=Observation programmée
-ContactState.OBSERVATION_NOT_DONE=Non observé
-DataReliability.CORRECTION_ASKED=Correction demandée
+ContactState.OBSERVATION_CANCELLED=Annul\u00e9e
+ContactState.OBSERVATION_DONE=Observation r\u00e9alis\u00e9e
+ContactState.OBSERVATION_EXPECTED=Observation programm\u00e9e
+ContactState.OBSERVATION_NOT_DONE=Non observ\u00e9
+DataReliability.CORRECTION_ASKED=Correction demand\u00e9e
DataReliability.DOUBTFUL=Douteuse
-DataReliability.NOT_PROVIDED=Non contrôlée
+DataReliability.NOT_PROVIDED=Non contr\u00f4l\u00e9e
DataReliability.NOT_RELIABLE=Non exploitable
DataReliability.RELIABLE=Exploitable
DataReliability.UNKNOWN=Inconnue
-GlobalIndicatorValue.BAD=Pénalité de niveau 1
+GlobalIndicatorValue.BAD=P\u00e9nalit\u00e9 de niveau 1
GlobalIndicatorValue.GOOD=Bonus de niveau 1
GlobalIndicatorValue.NEUTRAL=Conforme au cahier des charges
-GlobalIndicatorValue.VERY_BAD=Pénalité de niveau 2
+GlobalIndicatorValue.VERY_BAD=P\u00e9nalit\u00e9 de niveau 2
GlobalIndicatorValue.VERY_GOOD=Bonus de niveau 2
-LocationType.AUCTION=Criée
+LocationType.AUCTION=Cri\u00e9e
LocationType.DISTRICT=Quartier maritime
LocationType.PORT=Port
-LocationType.REGION=Région Ifremer
+LocationType.REGION=R\u00e9gion Ifremer
ObsProgram.OBSDEB=ObsDeb
ObsProgram.OBSMER=ObsMer
ObsProgram.OBSVENTE=ObsVente
ObservationType.FIELD_WORK_OBSERVATION=Observation de terrain
-ObservationType.FIELD_WORK_SURVEY=Enquête de terrain
-ObservationType.PHONE_CALL=Enquête téléphonique
-SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultané \: Toutes espèces commerciales
-SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultané \: espèces G1+G2
-SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultané \: espèces G1
-SamplingStrategy.SPECIFIC_STOCK=Stock spécifique
-SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observés
-SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un même navire conforme aux exigences
-SynthesisId.GRAPH_SAMPLING=Taux de réalisation du plan d'échantillonage
-SynthesisId.IND_ALLEGRO_REACTIVITY=Délais de transmission des données
-SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqués
-SynthesisId.IND_CONTACT_STATE=États des contacts
-SynthesisId.IND_DATA_RELIABILITY=Qualité de la donnée
-SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journée
+ObservationType.FIELD_WORK_SURVEY=Enqu\u00eate de terrain
+ObservationType.PHONE_CALL=Enqu\u00eate t\u00e9l\u00e9phonique
+SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00e9 \: Toutes esp\u00e8ces commerciales
+SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1+G2
+SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1
+SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00e9cifique
+SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observ\u00e9s
+SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un m\u00eame navire conforme aux exigences
+SynthesisId.GRAPH_SAMPLING=Taux de r\u00e9alisation du plan d'\u00e9chantillonage
+SynthesisId.IND_ALLEGRO_REACTIVITY=D\u00e9lais de transmission des donn\u00e9es
+SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqu\u00e9s
+SynthesisId.IND_CONTACT_STATE=\u00c9tats des contacts
+SynthesisId.IND_DATA_RELIABILITY=Qualit\u00e9 de la donn\u00e9e
+SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journ\u00e9e
UserRole.ADMIN=Administrateur
UserRole.COORDINATOR=Coordinateur
-UserRole.GUEST=Invité
+UserRole.GUEST=Invit\u00e9
UserRole.OBSERVER=Observateur
UserRole.PROFESSIONAL=Professionnel
csv.import.error.missingMandatoryHeaders=Les champs obligatoires %s sont manquants
-csv.import.error.unableToParseValue=Erreur lors de l'interprétation de la valeur '%s' (colonne '%s', ligne %s)
-csv.import.error.unableToReadField=Impossible de lire la colonne '%s' à la ligne %s
+csv.import.error.unableToParseValue=Erreur lors de l'interpr\u00e9tation de la valeur '%s' (colonne '%s', ligne %s)
+csv.import.error.unableToReadField=Impossible de lire la colonne '%s' \u00e0 la ligne %s
csv.import.error.unableToReadLine=Impossible de lire la ligne %s
-csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entité '%s', ligne %s, column '%s')
+csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entit\u00e9 '%s', ligne %s, column '%s')
csv.import.error.unrecognizedHeaders=Les champs %s ne sont pas reconnus. Les champs possibles sont %s.
csv.import.logComment=Modification depuis import
-fr.ifremer.wao.entity.FishingGearDCF.=Non spécifié
-fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorquées par bateau
-fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues à main
-fr.ifremer.wao.entity.FishingGearDCF.FAR=Pièges aériens
-fr.ifremer.wao.entity.FishingGearDCF.FCN=Éperviers
-fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.FIX=Pièges (non-spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pièges fixes non couverts
+fr.ifremer.wao.entity.FishingGearDCF.=Non sp\u00e9cifi\u00e9
+fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorqu\u00e9es par bateau
+fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues \u00e0 main
+fr.ifremer.wao.entity.FishingGearDCF.FAR=Pi\u00e8ges a\u00e9riens
+fr.ifremer.wao.entity.FishingGearDCF.FCN=\u00c9perviers
+fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.FIX=Pi\u00e8ges (non-sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pi\u00e8ges fixes non couverts
fr.ifremer.wao.entity.FishingGearDCF.FPO=Nasses (casiers)
-fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets à l'étalage (diables)
+fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets \u00e0 l'\u00e9talage (diables)
fr.ifremer.wao.entity.FishingGearDCF.FWR=Barrages, parcs, bordigues, etc.
fr.ifremer.wao.entity.FishingGearDCF.FYK=Verveux
-fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emmélants (non spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis à civelles
-fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emm\u00e9lants (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis \u00e0 civelles
+fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non sp\u00e9cifi\u00e9s)
fr.ifremer.wao.entity.FishingGearDCF.GNC=Filets maillants encerclants
-fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants dérivants (filets dérivants)
+fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants d\u00e9rivants (filets d\u00e9rivants)
fr.ifremer.wao.entity.FishingGearDCF.GNF=Filets maillants fixes (sur perches)
-fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants calés (ancrés)
-fr.ifremer.wao.entity.FishingGearDCF.GT=Trémailleurs
-fr.ifremer.wao.entity.FishingGearDCF.GTN=Trémails et filets maillants combinés
-fr.ifremer.wao.entity.FishingGearDCF.GTR=Trémails
+fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants cal\u00e9s (ancr\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.GT=Tr\u00e9mailleurs
+fr.ifremer.wao.entity.FishingGearDCF.GTN=Tr\u00e9mails et filets maillants combin\u00e9s
+fr.ifremer.wao.entity.FishingGearDCF.GTR=Tr\u00e9mails
fr.ifremer.wao.entity.FishingGearDCF.HAR=Harpons
-fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues mécanisées
+fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues m\u00e9canis\u00e9es
fr.ifremer.wao.entity.FishingGearDCF.HMP=Pompes
-fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de récolte (non spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de r\u00e9colte (non sp\u00e9cifi\u00e9s)
fr.ifremer.wao.entity.FishingGearDCF.LA=Filets tournants sans coulisse (filet lamparo)
-fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes à main et lignes avec cannes
-fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes à main et lignes à cannes
-fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non spécifiées)
-fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres dérivantes
-fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres calées ou semi-flottantes
-fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulevés (non spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulevés manœuvrées du bateau
-fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulevés portatifs
-fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulevés fixes manœuvrées du rivage
-fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de traîne
-fr.ifremer.wao.entity.FishingGearDCF.LX=Hameçons et lignes (non spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes \u00e0 main et lignes avec cannes
+fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes \u00e0 main et lignes \u00e0 cannes
+fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non sp\u00e9cifi\u00e9es)
+fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres d\u00e9rivantes
+fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres cal\u00e9es ou semi-flottantes
+fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulev\u00e9s (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulev\u00e9s man\u0153uvr\u00e9es du bateau
+fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulev\u00e9s portatifs
+fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulev\u00e9s fixes man\u0153uvr\u00e9es du rivage
+fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de tra\u00eene
+fr.ifremer.wao.entity.FishingGearDCF.LX=Hame\u00e7ons et lignes (non sp\u00e9cifi\u00e9s)
fr.ifremer.wao.entity.FishingGearDCF.MIS=Divers
-fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non spécifiés
-fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts à panneaux (non spécifié)
-fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond à panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts pélagiques à panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux à panneaux
+fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non sp\u00e9cifi\u00e9s
+fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts \u00e0 panneaux (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond \u00e0 panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts p\u00e9lagiques \u00e0 panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux \u00e0 panneaux
fr.ifremer.wao.entity.FishingGearDCF.PS=Filets tournants avec coulisse (sennes coulissantes)
-fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes manœuvrées par un bateau
-fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes manœuvrées par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-bœufs (non spécifié)
-fr.ifremer.wao.entity.FishingGearDCF.PTB=Chalut-bœufs de fond
-fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-bœufs pélagiques
-fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de pêche révréative
+fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par un bateau
+fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-b\u0153ufs (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.FishingGearDCF.PTB=Chalut-b\u0153ufs de fond
+fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-b\u0153ufs p\u00e9lagiques
+fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de p\u00eache r\u00e9vr\u00e9ative
fr.ifremer.wao.entity.FishingGearDCF.SB=Sennes de plages
fr.ifremer.wao.entity.FishingGearDCF.SDN=Sennes danoises
-fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes manœuvrées par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes écossaises
-fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes halées à bord
-fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non spécifiées)
-fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non spécifié)
-fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts à perche
-fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut à langoustines
-fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut à crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut pélagique (non spécifié)
-fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut à crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non spécifié)
-fr.ifremer.wao.entity.TargetSpeciesDCF.=Non spécifié
+fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes man\u0153uvr\u00e9es par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes \u00e9cossaises
+fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes hal\u00e9es \u00e0 bord
+fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non sp\u00e9cifi\u00e9es)
+fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts \u00e0 perche
+fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut \u00e0 langoustines
+fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut \u00e0 crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut p\u00e9lagique (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut \u00e0 crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.TargetSpeciesDCF.=Non sp\u00e9cifi\u00e9
fr.ifremer.wao.entity.TargetSpeciesDCF.ALG=Algues
-fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Espèces catadromes
-fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustacés
+fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Esp\u00e8ces catadromes
+fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustac\u00e9s
fr.ifremer.wao.entity.TargetSpeciesDCF.CSJ=Coquilles Saint-Jacques
-fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Espèces démersales
-fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Espèces d'eaux profondes
+fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Esp\u00e8ces d\u00e9mersales
+fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Esp\u00e8ces d'eaux profondes
fr.ifremer.wao.entity.TargetSpeciesDCF.FIN=Poisson plats
-fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands pélagiques
+fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands p\u00e9lagiques
fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Mollusques
-fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits pélagiques
-wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit être formée de 6 chiffres
-wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s'
-wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut préciser la qualité de la donnée avant de valider
+fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits p\u00e9lagiques
+wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit \u00eatre form\u00e9e de 6 chiffres
+wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut pr\u00e9ciser dans le commentaire administrateur pourquoi la donn\u00e9e est '%s'
+wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut pr\u00e9ciser la qualit\u00e9 de la donn\u00e9e avant de valider
wao.business.entity.UserProfile.description=%s sur %s%s
-wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseigné dans WAO l'information suivante \:\n\nMarée \: %s\nMétier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao
+wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseign\u00e9 dans WAO l'information suivante \:\n\nMar\u00e9e \: %s\nM\u00e9tier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao
wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information sur capture accidentelle
wao.business.other=Autre
wao.business.readOnly=(lecture seule)
-wao.error.boat.canCreateContact=Impossible de créer un nouveau contact pour la société %1$s et le navire %2$s (%3$d)
-wao.error.boat.getNbBoarding=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s
-wao.error.boatInfos.getNbBoardingForCompany=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s pour la société %2$s
+wao.error.boat.canCreateContact=Impossible de cr\u00e9er un nouveau contact pour la soci\u00e9t\u00e9 %1$s et le navire %2$s (%3$d)
+wao.error.boat.getNbBoarding=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s
+wao.error.boatInfos.getNbBoardingForCompany=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s pour la soci\u00e9t\u00e9 %2$s
wao.error.context.close=Une erreur est survenue pendant la fermeture du contexte principale de ToPIA
wao.error.context.encodeString=
-wao.error.context.getRootContext=Une erreur est survenue pour la récupération du contexte principale de ToPIA
+wao.error.context.getRootContext=Une erreur est survenue pour la r\u00e9cup\u00e9ration du contexte principale de ToPIA
wao.error.context.parse=Une erreur est survenue pendant le chargement de la configuration du fichier %1$s
wao.error.context.rollback=Une erreur est survenue pendant l'annulation de la transaction courante
-wao.error.context.start=Une erreur est survenue pendant le démarrage de l'application
+wao.error.context.start=Une erreur est survenue pendant le d\u00e9marrage de l'application
wao.error.context.stop=Une erreur est survenue pendant la fermeture de l'application
-wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de marées réels pour le mois de %1$s [ligne \: %2$s]
-wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire écrit par %1$s
-wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de créer ou modifier les informations liés au navire %1$d pour la société %2$s
-wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires sélectionnés
+wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de mar\u00e9es r\u00e9els pour le mois de %1$s [ligne \: %2$s]
+wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire \u00e9crit par %1$s
+wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de cr\u00e9er ou modifier les informations li\u00e9s au navire %1$d pour la soci\u00e9t\u00e9 %2$s
+wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires s\u00e9lectionn\u00e9s
wao.error.serviceBoat.getActivityCalendarLogAccessFile=
wao.error.serviceBoat.getActivityCalendarLogFile=
wao.error.serviceBoat.getAllActiveBoats=
wao.error.serviceBoat.getBoat=Impossible de charger le navire
-wao.error.serviceBoat.getBoatNamesStartWith=Impossible de récupérer les navires avec un nom commencant par '%1$s'
+wao.error.serviceBoat.getBoatNamesStartWith=Impossible de r\u00e9cup\u00e9rer les navires avec un nom commencant par '%1$s'
wao.error.serviceBoat.getBoatsByFilter=Impossible de filtrer la liste des navires
-wao.error.serviceBoat.getBoatsByImmatriculations=La chaîne d'immatriculations est incorrect \! Chaque immatriculation doit posséder 6 chiffres
-wao.error.serviceBoat.getCompanyBoatInfos=Impossible de récupérer les informations du navire immatriculé %1$d pour la société %2$s
-wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activité du navire %1$s (%2$d)
+wao.error.serviceBoat.getBoatsByImmatriculations=La cha\u00eene d'immatriculations est incorrect \! Chaque immatriculation doit poss\u00e9der 6 chiffres
+wao.error.serviceBoat.getCompanyBoatInfos=Impossible de r\u00e9cup\u00e9rer les informations du navire immatricul\u00e9 %1$d pour la soci\u00e9t\u00e9 %2$s
+wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activit\u00e9 du navire %1$s (%2$d)
wao.error.serviceBoat.getNbBoatsByFilter=Impossible de filtrer la liste des navires
wao.error.serviceBoat.getPossibleValuesForFilter=
wao.error.serviceBoat.getShipOwnerNamesContains=
-wao.error.serviceBoat.importActivityCalendarCsv=Problème d'import du fichier CSV des calendriers d'activité
-wao.error.serviceBoat.importBoatCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier.
+wao.error.serviceBoat.importActivityCalendarCsv=Probl\u00e8me d'import du fichier CSV des calendriers d'activit\u00e9
+wao.error.serviceBoat.importBoatCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier.
wao.error.serviceBoat.newBoatFilter=
wao.error.serviceCartography.exportContactMotifsStatisticsKml=
wao.error.serviceCartography.exportContactStatisticsKml=
-wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonnées des quartiers des navires. Vérifiez la documentation pour le bon format du fichier Kml.
+wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonn\u00e9es des quartiers des navires. V\u00e9rifiez la documentation pour le bon format du fichier Kml.
wao.error.serviceChart.getContactPieChartData=
wao.error.serviceChart.getContactPieChartUrl=
wao.error.serviceContact.exportContactCsv=Impossible d'exporter les contacts
wao.error.serviceContact.getContact=Impossible de trouver le contact
wao.error.serviceContact.getContacts=Impossible de filtrer la liste des contacts
-wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtrés
+wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtr\u00e9s
wao.error.serviceContact.getNewContact=Impossible d'instancier un nouveau contact
wao.error.serviceContact.getPossibleObsDebCodes=
wao.error.serviceContact.getPossibleTerrestrialLocations=
@@ -188,7 +188,7 @@
wao.error.serviceContact.updateSampleMonthTidesValue=
wao.error.serviceContact.validateContact=
wao.error.serviceNews.getNewNews=
-wao.error.serviceNews.getNews=Impossible de récupérer l'ensemble des news
+wao.error.serviceNews.getNews=Impossible de r\u00e9cup\u00e9rer l'ensemble des news
wao.error.serviceNews.saveNews=Impossible d'enregistrer la news ayant pour titre '%1$s'
wao.error.serviceReferential.getAllContactStateMotifs=
wao.error.serviceReferential.getAllObsDebCodes=
@@ -200,13 +200,13 @@
wao.error.serviceReferential.getAllTerrestrialLocations=
wao.error.serviceReferential.getCodesDCF5Contains=
wao.error.serviceReferential.getFacades=Impossible de charger la liste des facades
-wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de pêche
-wao.error.serviceReferential.getProfessions=Impossible de charger la liste des métiers
-wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de pêche
+wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de p\u00eache
+wao.error.serviceReferential.getProfessions=Impossible de charger la liste des m\u00e9tiers
+wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00eache
wao.error.serviceReferential.getTerrestrialDistrict=
wao.error.serviceReferential.importContactStateMotifs=
-wao.error.serviceReferential.importDCFcodes=Impossible de créer le référentiel des codes DCF
-wao.error.serviceReferential.importFishingZoneCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de détails.
+wao.error.serviceReferential.importDCFcodes=Impossible de cr\u00e9er le r\u00e9f\u00e9rentiel des codes DCF
+wao.error.serviceReferential.importFishingZoneCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00e9tails.
wao.error.serviceReferential.importInitialContactStateMotifs=
wao.error.serviceReferential.importObsDebCodes=
wao.error.serviceReferential.importTerrestrialDivisions=
@@ -215,73 +215,74 @@
wao.error.serviceReferential.updateAllContactStatesMotifs=
wao.error.serviceSampling.countSampleRows=
wao.error.serviceSampling.createSampleRowLog=
-wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'échantillon
-wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'échantillon \: %1$s
-wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'échantillonnage sur la période du %1$s au %2$s
+wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00e9chantillon
+wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00e9chantillon \: %1$s
+wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'\u00e9chantillonnage sur la p\u00e9riode du %1$s au %2$s
wao.error.serviceSampling.exportSamplingPlanICalendar=
wao.error.serviceSampling.getDCFGears=
wao.error.serviceSampling.getDCFSpecies=
wao.error.serviceSampling.getNewProfession=
wao.error.serviceSampling.getNewSampleMonth=
wao.error.serviceSampling.getNewSampleRow=
-wao.error.serviceSampling.getNewSampleRowCode=Impossible de récupérer un nouveau code pour une ligne d'échantillonnage
+wao.error.serviceSampling.getNewSampleRowCode=Impossible de r\u00e9cup\u00e9rer un nouveau code pour une ligne d'\u00e9chantillonnage
wao.error.serviceSampling.getNewSampleRowLog=
wao.error.serviceSampling.getPossibleValuesForFilter=
wao.error.serviceSampling.getPrograms=Impossible de charger la liste des programmes
-wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'échantillon ayant pour identifiant \: %1$s
-wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'échantillon ayant pour code %1$s
-wao.error.serviceSampling.getSampleRowsByFilter=Impossible de récupérer la liste des lignes du plan d'échantillonnage
+wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'\u00e9chantillon ayant pour identifiant \: %1$s
+wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00e9chantillon ayant pour code %1$s
+wao.error.serviceSampling.getSampleRowsByFilter=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage
wao.error.serviceSampling.getSampleRowsForEligibility=
-wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de récupérer la liste des lignes du plan d'échantillonnage
+wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage
wao.error.serviceSampling.importSamplingPlanCsv=Erreur lors de l'import du plan
wao.error.serviceSampling.newOperation=
wao.error.serviceSampling.newSampleRow=
wao.error.serviceSampling.newSamplingFilter=
wao.error.serviceSampling.validateSampleRow=
wao.error.serviceSynthesis.getAllIndicatorLogs=
-wao.error.serviceSynthesis.getBoardingBoats=Impossible de récupérer les données du graphique concernant les embarquements sur les navires
+wao.error.serviceSynthesis.getBoardingBoats=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es du graphique concernant les embarquements sur les navires
wao.error.serviceSynthesis.getBoatsCount=
wao.error.serviceSynthesis.getComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de récupérer l'indicateur de réactivité sur les dates de saisies dans Allegro
+wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de r\u00e9cup\u00e9rer l'indicateur de r\u00e9activit\u00e9 sur les dates de saisies dans Allegro
wao.error.serviceSynthesis.getContactPieChartData=
wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict=
wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateStatistics=Impossible de récupérer les statistiques sur les états des contacts
+wao.error.serviceSynthesis.getContactStateStatistics=Impossible de r\u00e9cup\u00e9rer les statistiques sur les \u00e9tats des contacts
wao.error.serviceSynthesis.getDataReliability=
-wao.error.serviceSynthesis.getDataSampling=Impossible de récupérer les données pour le graphique dynamique des efforts de marées
+wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es pour le graphique dynamique des efforts de mar\u00e9es
wao.error.serviceSynthesis.getDistinctBoatsCounts=
-wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de récupérer les données concernant les indicateurs pour la synthèse globale
+wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es concernant les indicateurs pour la synth\u00e8se globale
wao.error.serviceSynthesis.getGlobalSynthesisResult=
-wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de récupérer l'indicateur de non respect du nombre d'observateurs embarqués
+wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de r\u00e9cup\u00e9rer l'indicateur de non respect du nombre d'observateurs embarqu\u00e9s
wao.error.serviceSynthesis.getObservationHours=
-wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre à jour les paramètres de la synthèse globale
+wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre \u00e0 jour les param\u00e8tres de la synth\u00e8se globale
wao.error.serviceUser.addTokensToAllProfiles=
wao.error.serviceUser.connect=Une erreur est survenue lors de la demande de connexion
-wao.error.serviceUser.createDefaultAdmin=Impossible de créer l'administrateur par défaut
-wao.error.serviceUser.createUpdateCompany=Impossible de créer ou de mettre à jour la société
-wao.error.serviceUser.createUpdateUser=Impossible de créer ou de mettre à jour l'utilisateur
-wao.error.serviceUser.deleteCompany=Impossible de supprimer la société ou de vérifier les contraintes de suppression
+wao.error.serviceUser.createDefaultAdmin=Impossible de cr\u00e9er l'administrateur par d\u00e9faut
+wao.error.serviceUser.createUpdateCompany=Impossible de cr\u00e9er ou de mettre \u00e0 jour la soci\u00e9t\u00e9
+wao.error.serviceUser.createUpdateUser=Impossible de cr\u00e9er ou de mettre \u00e0 jour l'utilisateur
+wao.error.serviceUser.deleteCompany=Impossible de supprimer la soci\u00e9t\u00e9 ou de v\u00e9rifier les contraintes de suppression
wao.error.serviceUser.deleteUser=Impossible de supprimer l'utilisateur
wao.error.serviceUser.existLogin=
wao.error.serviceUser.forgetPassword=Impossible d'envoyer le mail d'oubli de mot de passe
-wao.error.serviceUser.getCompanies=Impossible de récupérer la liste des sociétés
+wao.error.serviceUser.getCompanies=Impossible de r\u00e9cup\u00e9rer la liste des soci\u00e9t\u00e9s
wao.error.serviceUser.getCompany=
wao.error.serviceUser.getConnectedUserByToken=
wao.error.serviceUser.getNewUser=Impossible d'instancier un nouvel utilisateur
-wao.error.serviceUser.getObservers=Impossible de récupérer la liste des observateurs
+wao.error.serviceUser.getObservers=Impossible de r\u00e9cup\u00e9rer la liste des observateurs
wao.error.serviceUser.getUserByToken=
wao.error.serviceUser.getUserRolesByLogin=
-wao.error.serviceUser.getUsersByCompany=Impossible de récupérer la liste des utilisateurs de la société %1$s
+wao.error.serviceUser.getUsersByCompany=Impossible de r\u00e9cup\u00e9rer la liste des utilisateurs de la soci\u00e9t\u00e9 %1$s
wao.export.ical.desc=avec %s
wao.export.ical.title=Observation ObsDeb
-wao.import.contact.failure.boatMissing=Il faut préciser l'immatriculation du navire associé au contact
-wao.import.contact.failure.locationTypeMissing=Le type du lieu doit être renseigné
-wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associée
+wao.import.contact.failure.boatMissing=Il faut pr\u00e9ciser l'immatriculation du navire associ\u00e9 au contact
+wao.import.contact.failure.locationTypeMissing=Le type du lieu doit \u00eatre renseign\u00e9
+wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associ\u00e9e
wao.import.contact.failure.terrestrialLocationMissing=Il manque le code du lieu
wao.import.contact.failure.wrongBoat=Il n'y a pas de navire avec l'immatriculation '%s'
wao.import.contact.failure.wrongSampleRowCode=Il n'y a pas de ligne du plan avec le code '%s'
wao.import.contact.failure.wrongTerrestrialLocation=Il n'y a pas de lieu de type '%s' ayant pour code '%s'
-wao.import.failure.wrongObsDebCode=Il n'y a pas de code métier ayant pour code '%s'
+wao.import.failure.wrongLocationType='%s' n'est pas un type de lieu valide, les valeurs admises sont %s
+wao.import.failure.wrongObsDebCode=Il n'y a pas de code m\u00e9tier ayant pour code '%s'
wao.import.failure.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s'
-wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut être associé à la ligne %s car il doit observer, le même jour, pour la ligne %s
-wao.validation.sampleRow.observerNotInCompany=L'observateur %s ne fait pas parti de la société %s
+wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut \u00eatre associ\u00e9 \u00e0 la ligne %s car il doit observer, le m\u00eame jour, pour la ligne %s
+wao.validation.sampleRow.observerNotInCompany=L'observateur %s ne fait pas parti de la soci\u00e9t\u00e9 %s
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFieldWorkTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFieldWorkTest.java 2011-06-07 12:43:43 UTC (rev 1321)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFieldWorkTest.java 2011-06-07 15:08:06 UTC (rev 1322)
@@ -445,7 +445,7 @@
log.debug("csv for contacts exported as coordinator is \n" + csv);
}
- int expectedLineNumber = 1 + 2; // 1 header line + 2 contacts
+ int expectedLineNumber = 1 + 3; // 1 header line + 2 contacts
int actualLineNumber = StringUtils.countMatches(csv, "\n");
Assert.assertEquals(expectedLineNumber, actualLineNumber);
}
@@ -455,13 +455,11 @@
public void coordinatorCanGetSynthesisResults() throws WaoBusinessException, IOException {
observerCanCreateContact();
- // TODO 20110426 bleny consider validation company and validation program when counting
-
SamplingFilter samplingFilter = serviceSampling.newSamplingFilter(fixtures.joshAsCoordinator());
Map<String, Map<String, Integer>> observationHours =
serviceSynthesis.getObservationHours(samplingFilter);
- Assert.assertEquals(2, observationHours.get("2010").get("09").intValue());
+ Assert.assertEquals(3, observationHours.get("2010").get("09").intValue());
Assert.assertEquals("24 values associated with '2010', one for each hour of the day",
24, observationHours.get("2010").size());
1
0