[Suiviobsmer-commits] r292 - in trunk: . suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl suiviobsmer-business/src/main/xmi suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl
Author: fdesbois Date: 2010-01-28 19:51:18 +0000 (Thu, 28 Jan 2010) New Revision: 292 Added: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerRunnerTest.java trunk/suiviobsmer-business/src/test/resources/import/misc.csv Removed: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business/SuiviObsmerRunnerTest.java Modified: trunk/changelog.txt trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSynthesisImpl.java trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerUtilsTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatInfosImplTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImportTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java trunk/suiviobsmer-business/src/test/resources/import/contacts.csv trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Synthesis.properties trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml Log: - Improve tests - Evo #2061 : add program filter for synthesis Modified: trunk/changelog.txt =================================================================== --- trunk/changelog.txt 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/changelog.txt 2010-01-28 19:51:18 UTC (rev 292) @@ -1,6 +1,12 @@ Release note ============ +0.3.1 +----- + +- [fdesbois] Evo #2061 : Synthèse : ajouter le filtre "Programme ou règlement rattachement" +- [fdesbois] Ano #2056 : Le filtre sur la date de début pour les contacts ne reste pas + 0.3.0 ----- Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/ImportHelper.java 2010-01-28 19:51:18 UTC (rev 292) @@ -393,6 +393,17 @@ return result.getTime(); } + public static String readSampleRowCode(CsvReader reader) throws IOException { + String code = read(reader, SAMPLING.PLAN_CODE); + // Replace single number after year by a double one : 2010_111 -> 2010_0111 + code = code.replaceFirst("_(\\d{3})$", "_0$1"); + // Replace single number after year by a double one : 2010_11 -> 2010_0011 + code = code.replaceFirst("_(\\d{2})$", "_00$1"); + // Replace single number after year by a double one : 2010_1 -> 2010_0001 + code = code.replaceFirst("_(\\d)$", "_000$1"); + return code; + } + public static DateFormat getContactDateFormat() { return new SimpleDateFormat(CONTACT_DATE_PATTERN, Locale.FRENCH); } Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/ContactFilterImpl.java 2010-01-28 19:51:18 UTC (rev 292) @@ -59,9 +59,9 @@ // Seems to be necessary to have distinct on sampleRows in case of // fishingZone join. Otherwise multiple contacts for sames sampleRow // will be returned (Bad count). - TopiaQuery<SampleRow> subquery = TopiaQuery.createQuery(SampleRow.class, "S").setSelect("S").addDistinct(); - subquery = prepareQueryForSampling(subquery, "S"); - query.add(contact + "." + Contact.SAMPLE_ROW + " IN (" + subquery.fullQuery() + ")").addParams(subquery.getParams()); +// TopiaQuery<SampleRow> subquery = TopiaQuery.createQuery(SampleRow.class, "S").setSelect("S").addDistinct(); + query = prepareQueryForSampling(query, contact + "." + Contact.SAMPLE_ROW); +// query.add(contact + "." + Contact.SAMPLE_ROW + " IN (" + subquery.fullQuery() + ")").addParams(subquery.getParams()); } query = prepareQueryForBoat(query, contact + "." + Contact.BOAT); Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/bean/SamplingFilterImpl.java 2010-01-28 19:51:18 UTC (rev 292) @@ -51,11 +51,16 @@ if (getSampleRow() != null) { query.add(main, getSampleRow()); } else if (StringUtils.isNotEmpty(getSectorName())) { - query.addFrom(FishingZone.class.getName() + " F"); - query.add("F." + FishingZone.SECTOR_NAME, getSectorName()).add("F IN elements(" + main + "." + SampleRow.FISHING_ZONE + ")"); + + TopiaQuery<SampleRow> subquery = TopiaQuery.createQuery(SampleRow.class, "SR").addFrom(FishingZone.class.getName() + " F"); + subquery.add("F." + FishingZone.SECTOR_NAME, getSectorName()).add("F IN elements(SR." + SampleRow.FISHING_ZONE + ")"); + + query.add(main + " IN (" + subquery.fullQuery() + ")").addParams(subquery.getParams()); } else if (StringUtils.isNotEmpty(getFacadeName())) { - query.addFrom(FishingZone.class.getName() + " F"); - query.add("F." + FishingZone.FACADE_NAME, getFacadeName()).add("F IN elements(" + main + "." + SampleRow.FISHING_ZONE + ")"); + TopiaQuery<SampleRow> subquery = TopiaQuery.createQuery(SampleRow.class, "SR").addFrom(FishingZone.class.getName() + " F"); + subquery.add("F." + FishingZone.FACADE_NAME, getFacadeName()).add("F IN elements(SR." + SampleRow.FISHING_ZONE + ")"); + + query.add(main + " IN (" + subquery.fullQuery() + ")").addParams(subquery.getParams()); } // Profession filter @@ -63,6 +68,11 @@ query.add(main + "." + SampleRow.PROFESSION, getProfession()); } + // Program filter + if (getProgramName() != null) { + query.add(main + "." + SampleRow.PROGRAM_NAME, getProgramName()); + } + // Period filter on sampleRow dates if (getPeriod() != null) { getPeriod().initDayOfMonthExtremities(); Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImpl.java 2010-01-28 19:51:18 UTC (rev 292) @@ -139,10 +139,7 @@ // Add join for ElligibleBoat String elligibleBoatClassName = ElligibleBoat.class.getName(); query.addFrom(elligibleBoatClassName + " E").add("E." + ElligibleBoat.BOAT + " = " + main); - //query = filter.prepareQueryForSampling(query, "E." + ElligibleBoat.SAMPLE_ROW); - TopiaQuery<SampleRow> subquery = TopiaQuery.createQuery(SampleRow.class, "S").setSelect("S").addDistinct(); - subquery = filter.prepareQueryForSampling(subquery, "S"); - query.add("E." + ElligibleBoat.SAMPLE_ROW + " IN (" + subquery.fullQuery() + ")").addParams(subquery.getParams()); + query = filter.prepareQueryForSampling(query, "E." + ElligibleBoat.SAMPLE_ROW); // Company if (filter.getCompany() != null) { Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceContactImpl.java 2010-01-28 19:51:18 UTC (rev 292) @@ -361,7 +361,7 @@ } if (company != null) { - String rowCode = ImportHelper.read(reader, SAMPLING.PLAN_CODE); + String rowCode = ImportHelper.readSampleRowCode(reader); SampleRow row = rowDAO.findByProperties(SampleRow.CODE, rowCode, SampleRow.COMPANY, company); Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImpl.java 2010-01-28 19:51:18 UTC (rev 292) @@ -26,6 +26,7 @@ import fr.ifremer.suiviobsmer.SuiviObsmerException; import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper; import fr.ifremer.suiviobsmer.SuiviObsmerContext; +import fr.ifremer.suiviobsmer.bean.SamplingFilter; import fr.ifremer.suiviobsmer.entity.Company; import fr.ifremer.suiviobsmer.entity.FishingZone; import fr.ifremer.suiviobsmer.entity.FishingZoneDAO; @@ -66,7 +67,7 @@ } @Override - public List<String> getFacades(Company company) throws SuiviObsmerException { + public List<String> getFacades(SamplingFilter filter) throws SuiviObsmerException { TopiaContext transaction = null; List<String> results = new ArrayList<String>(); try { @@ -75,11 +76,7 @@ FishingZoneDAO dao = SuiviObsmerModelDAOHelper.getFishingZoneDAO(transaction); TopiaQuery<FishingZone> query = dao.createQuery("F"); - if (company != null) { - query.addFrom(SampleRow.class.getName() + " S"). - add("S IN elements(F." + FishingZone.SAMPLE_ROW + ")"). - add("S." + SampleRow.COMPANY, company); - } + query = prepareQueryForFishingZoneFilter(query, filter); results = (List<String>)query.setSelect("DISTINCT F." + FishingZone.FACADE_NAME).execute(); @@ -91,7 +88,7 @@ } @Override - public List<String> getSectors(Company company, String facadeName) throws SuiviObsmerException { + public List<String> getSectors(SamplingFilter filter) throws SuiviObsmerException { TopiaContext transaction = null; List<String> results = new ArrayList<String>(); try { @@ -100,14 +97,10 @@ FishingZoneDAO dao = SuiviObsmerModelDAOHelper.getFishingZoneDAO(transaction); TopiaQuery<FishingZone> query = dao.createQuery("F"); - if (company != null) { - query.addFrom(SampleRow.class.getName() + " S"). - add("S IN elements(F." + FishingZone.SAMPLE_ROW + ")"). - add("S." + SampleRow.COMPANY, company); - } + query = prepareQueryForFishingZoneFilter(query, filter); - if (StringUtils.isNotEmpty(facadeName)) { - query.add("F." + FishingZone.FACADE_NAME, facadeName); + if (StringUtils.isNotEmpty(filter.getFacadeName())) { + query.add("F." + FishingZone.FACADE_NAME, filter.getFacadeName()); } results = (List<String>)query.setSelect("DISTINCT F." + FishingZone.SECTOR_NAME).execute(); @@ -119,6 +112,23 @@ return results; } + protected TopiaQuery<FishingZone> prepareQueryForFishingZoneFilter(TopiaQuery<FishingZone> query, SamplingFilter filter) { + if (filter.getCompany() != null || StringUtils.isNotEmpty(filter.getProgramName())) { + query.addFrom(SampleRow.class.getName() + " S"). + add("S IN elements(F." + FishingZone.SAMPLE_ROW + ")"); + } + + if (filter.getCompany() != null) { + query.add("S." + SampleRow.COMPANY, filter.getCompany()); + } + + if (filter.getProgramName() != null) { + query.add("S." + SampleRow.PROGRAM_NAME, filter.getProgramName()); + } + + return query; + } + @Override public List<Profession> getProfessions() throws SuiviObsmerException { TopiaContext transaction = null; Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImpl.java 2010-01-28 19:51:18 UTC (rev 292) @@ -315,15 +315,21 @@ } @Override - public List<String> getPrograms() throws SuiviObsmerException { + public List<String> getPrograms(Company company) throws SuiviObsmerException { TopiaContext transaction = null; List<String> results = new ArrayList<String>(); try { transaction = rootContext.beginTransaction(); SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - results = (List<String>)dao.createQuery().setSelect("DISTINCT " + SampleRow.PROGRAM_NAME).execute(); + TopiaQuery<SampleRow> query = dao.createQuery(); + if (company != null) { + query.add(SampleRow.COMPANY, company); + } + + results = (List<String>)query.setSelect("DISTINCT " + SampleRow.PROGRAM_NAME).execute(); + transaction.closeContext(); } catch (Exception eee) { SuiviObsmerContext.serviceException(transaction, @@ -438,7 +444,7 @@ String[] part = maxCode.split("_"); num = Integer.parseInt(part[1]) + 1; } - String str = StringUtils.leftPad("" + num, 2, "0"); + String str = StringUtils.leftPad("" + num, 4, "0"); result = year + "_" + str; transaction.closeContext(); @@ -509,15 +515,12 @@ log.trace(" " + Arrays.asList(reader.getValues())); } - String code = reader.get(SAMPLING.PLAN_CODE.name()).trim(); + String code = ImportHelper.readSampleRowCode(reader); //reader.get(SAMPLING.PLAN_CODE.name()).trim(); if (StringUtils.isEmpty(code)) { continue; } - // Replace single number after year by a double one : 2010_1 -> 2010_01 - code = code.replaceFirst("_(\\d)$", "_0$1"); - String districts = reader.get(FISHING_ZONE.PECHE_DIVISION.name()); row = dao.findByCode(code); Modified: trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSynthesisImpl.java =================================================================== --- trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSynthesisImpl.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/main/java/fr/ifremer/suiviobsmer/impl/ServiceSynthesisImpl.java 2010-01-28 19:51:18 UTC (rev 292) @@ -96,9 +96,7 @@ addParam("fromDate", period.getFromDate()).addParam("thruDate", period.getThruDate()). addGroup(periodDate).addOrder(periodDate); - TopiaQuery<SampleRow> subquery = TopiaQuery.createQuery(SampleRow.class, "S").setSelect("S").addDistinct(); - subquery = filter.prepareQueryForSampling(subquery, "S"); - query.add("M." + SampleMonth.SAMPLE_ROW + " IN (" + subquery.fullQuery() + ")").addParams(subquery.getParams()); + query = filter.prepareQueryForSampling(query, "M." + SampleMonth.SAMPLE_ROW); if (log.isTraceEnabled()) { log.trace("Exec query : " + query); Modified: trunk/suiviobsmer-business/src/main/xmi/suiviobsmer.zargo =================================================================== (Binary files differ) Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/ImportHelperTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -21,7 +21,11 @@ package fr.ifremer.suiviobsmer; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; +import com.csvreader.CsvReader; +import fr.ifremer.suiviobsmer.ImportHelper.SAMPLING; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; @@ -45,6 +49,8 @@ private static final Logger log = LoggerFactory.getLogger(ImportHelperTest.class); + private CsvReader reader; + public ImportHelperTest() { runner = new SuiviObsmerRunnerTest(); } @@ -60,12 +66,18 @@ } @Before - public void setUp() throws SuiviObsmerException { + public void setUp() throws SuiviObsmerException, IOException { runner.start(); + + InputStream input = getClass().getResourceAsStream("/import/misc.csv"); + reader = new CsvReader(input, Charset.forName("UTF-8")); + reader.readHeaders(); } @After public void tearDown() throws SuiviObsmerException { + reader.close(); + runner.stop(); } @@ -146,4 +158,88 @@ System.out.println("logTimeAndMemory"); } + /** + * Test of parseContactValidation method, of class ImportHelper. + */ + //@Test + public void testParseContactValidation() throws Exception { + System.out.println("parseContactValidation"); + } + + /** + * Test of readSampleRowCode method, of class ImportHelper. + */ + @Test + public void testReadSampleRowCode() throws Exception { + System.out.println("readSampleRowCode"); + + reader.readRecord(); + String code = ImportHelper.readSampleRowCode(reader); + assertEquals(code, "2009_0001"); + + reader.readRecord(); + code = ImportHelper.readSampleRowCode(reader); + assertEquals(code, "2009_0011"); + + reader.readRecord(); + code = ImportHelper.readSampleRowCode(reader); + assertEquals(code, "2009_0111"); + + reader.readRecord(); + code = ImportHelper.readSampleRowCode(reader); + assertEquals(code, "2009_1111"); + } + + /** + * Test of getContactDateFormat method, of class ImportHelper. + */ + //@Test + public void testGetContactDateFormat() { + System.out.println("getContactDateFormat"); + } + + /** + * Test of read method, of class ImportHelper. + */ + @Test + public void testRead() throws Exception { + log.info("read"); + + reader.readRecord(); + String code = ImportHelper.read(reader, SAMPLING.PLAN_CODE); + assertEquals(code, "2009_1"); + } + + /** + * Test of readInt method, of class ImportHelper. + */ + //@Test + public void testReadInt() throws Exception { + System.out.println("readInt"); + } + + /** + * Test of readInteger method, of class ImportHelper. + */ + //@Test + public void testReadInteger() throws Exception { + System.out.println("readInteger"); + } + + /** + * Test of readPeriod method, of class ImportHelper. + */ + //@Test + public void testReadPeriod() throws Exception { + System.out.println("readPeriod"); + } + + /** + * Test of readDate method, of class ImportHelper. + */ + //@Test + public void testReadDate() throws Exception { + System.out.println("readDate"); + } + } Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerGlobalTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -21,7 +21,6 @@ package fr.ifremer.suiviobsmer; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; import fr.ifremer.suiviobsmer.entity.Company; import fr.ifremer.suiviobsmer.entity.WaoUser; import fr.ifremer.suiviobsmer.impl.ServiceUserImpl; Copied: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerRunnerTest.java (from rev 285, trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business/SuiviObsmerRunnerTest.java) =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerRunnerTest.java (rev 0) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerRunnerTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -0,0 +1,159 @@ +/* + * *##% + * SuiviObsmer :: Business + * Copyright (C) 2009 - 2010 Ifremer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * ##%* + */ + +package fr.ifremer.suiviobsmer; + +import fr.ifremer.suiviobsmer.entity.Company; +import fr.ifremer.suiviobsmer.entity.CompanyImpl; +import fr.ifremer.suiviobsmer.entity.WaoUser; +import fr.ifremer.suiviobsmer.entity.WaoUserImpl; +import fr.ifremer.suiviobsmer.impl.ServiceBoatImpl; +import fr.ifremer.suiviobsmer.impl.ServiceContactImpl; +import fr.ifremer.suiviobsmer.impl.ServiceReferentialImpl; +import fr.ifremer.suiviobsmer.impl.ServiceSamplingImpl; +import fr.ifremer.suiviobsmer.impl.ServiceUserImpl; +import fr.ifremer.suiviobsmer.services.ServiceBoat; +import fr.ifremer.suiviobsmer.services.ServiceContact; +import fr.ifremer.suiviobsmer.services.ServiceReferential; +import fr.ifremer.suiviobsmer.services.ServiceSampling; +import fr.ifremer.suiviobsmer.services.ServiceUser; +import java.io.IOException; +import java.io.InputStream; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.Properties; +import org.junit.Ignore; +import org.nuiton.topia.TopiaException; +import org.nuiton.util.ApplicationConfig; +import org.nuiton.util.Resource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * ContextUtilObsmerTest + * + * Created: 23 nov. 2009 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ + at Ignore +public class SuiviObsmerRunnerTest implements SuiviObsmerRunner { + + private static final Logger log = LoggerFactory.getLogger(SuiviObsmerRunnerTest.class); + + private ApplicationConfig _configuration; + + @Override + public void start() throws SuiviObsmerException { + if (log.isDebugEnabled()) { + log.debug("TEST START : loadConfiguration"); + } + try { + Properties options = loadFileProperties("TopiaContextSuiviObsmer.properties"); + options.setProperty("topia.persistence.classes", + SuiviObsmerModelDAOHelper.getImplementationClassesAsString()); + + _configuration = new ApplicationConfig(); + _configuration.setOptions(options); + + SuiviObsmerContext.setRunner(this); + } catch (Exception eee) { + SuiviObsmerContext.serviceException(null, "Error during loadConfiguration from " + + "'TopiaContextSuiviObsmer.properties' file", eee); + } + } + + @Override + public void stop() throws SuiviObsmerException { + if (log.isDebugEnabled()) { + log.debug("TEST STOP : clearContext"); + } + try { + SuiviObsmerContext.getTopiaRootContext().clear(true); + } catch (TopiaException eee) { + SuiviObsmerContext.serviceException(null, "Error during clear database", eee); + } + } + + private static 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; + } + + @Override + public Date currentDate() { + Calendar calendar = new GregorianCalendar(2009, 9, 23); // 23/10/2009 + return calendar.getTime(); + } + + @Override + public ApplicationConfig configuration() { + return _configuration; + } + + public void prepareData() throws SuiviObsmerException { + ServiceBoat serviceBoat = new ServiceBoatImpl(); + ServiceReferential serviceReferential = new ServiceReferentialImpl(); + ServiceUser serviceUser = new ServiceUserImpl(); + ServiceSampling serviceSampling = new ServiceSamplingImpl(); + ServiceContact serviceContact = new ServiceContactImpl(); + + Company company = new CompanyImpl(); + company.setName("TARTANPION"); + company.setActive(true); + serviceUser.createUpdateCompany(company); + + WaoUser observer = new WaoUserImpl(); + observer.setCompany(company); + observer.setFirstName("Jean"); + observer.setLastName("Michmuche"); + observer.setLogin("jmichmuche"); + observer.setActive(true); + serviceUser.createUpdateUser(observer, true); + + InputStream input = getClass().getResourceAsStream("/import/navires.csv"); + serviceBoat.importBoatCsv(input); + + input = getClass().getResourceAsStream("/import/zonesPeche.csv"); + serviceReferential.importFishingZoneCsv(input); + + input = getClass().getResourceAsStream("/import/echantillonnage.csv"); + serviceSampling.importSamplingPlanCsv(input); + + input = getClass().getResourceAsStream("/import/contacts.csv"); + // user import : no activation + serviceContact.importContactCsv(observer, input); + } + +} Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerUtilsTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerUtilsTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/SuiviObsmerUtilsTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -21,7 +21,6 @@ package fr.ifremer.suiviobsmer; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; import fr.ifremer.suiviobsmer.entity.Company; import fr.ifremer.suiviobsmer.entity.CompanyImpl; import org.junit.After; Deleted: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business/SuiviObsmerRunnerTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business/SuiviObsmerRunnerTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/business/SuiviObsmerRunnerTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -1,114 +0,0 @@ -/* - * *##% - * SuiviObsmer :: Business - * Copyright (C) 2009 - 2010 Ifremer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * ##%* - */ - -package fr.ifremer.suiviobsmer.business; - -import fr.ifremer.suiviobsmer.SuiviObsmerException; -import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper; -import fr.ifremer.suiviobsmer.SuiviObsmerRunner; -import fr.ifremer.suiviobsmer.SuiviObsmerContext; -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; -import org.junit.Ignore; -import org.nuiton.topia.TopiaException; -import org.nuiton.util.ApplicationConfig; -import org.nuiton.util.Resource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * ContextUtilObsmerTest - * - * Created: 23 nov. 2009 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ - at Ignore -public class SuiviObsmerRunnerTest implements SuiviObsmerRunner { - - private static final Logger log = LoggerFactory.getLogger(SuiviObsmerRunnerTest.class); - - private ApplicationConfig _configuration; - - @Override - public void start() throws SuiviObsmerException { - if (log.isDebugEnabled()) { - log.debug("TEST START : loadConfiguration"); - } - try { - Properties options = loadFileProperties("TopiaContextSuiviObsmer.properties"); - options.setProperty("topia.persistence.classes", - SuiviObsmerModelDAOHelper.getImplementationClassesAsString()); - - _configuration = new ApplicationConfig(); - _configuration.setOptions(options); - - SuiviObsmerContext.setRunner(this); - } catch (Exception eee) { - SuiviObsmerContext.serviceException(null, "Error during loadConfiguration from " + - "'TopiaContextSuiviObsmer.properties' file", eee); - } - } - - @Override - public void stop() throws SuiviObsmerException { - if (log.isDebugEnabled()) { - log.debug("TEST STOP : clearContext"); - } - try { - SuiviObsmerContext.getTopiaRootContext().clear(true); - } catch (TopiaException eee) { - SuiviObsmerContext.serviceException(null, "Error during clear database", eee); - } - } - - private static 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; - } - - @Override - public Date currentDate() { - Calendar calendar = new GregorianCalendar(2009, 9, 23); // 23/10/2009 - return calendar.getTime(); - } - - @Override - public ApplicationConfig configuration() { - return _configuration; - } - -} Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatImplTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -25,7 +25,7 @@ import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper; import fr.ifremer.suiviobsmer.SuiviObsmerRunner; import fr.ifremer.suiviobsmer.bean.ContactState; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; +import fr.ifremer.suiviobsmer.SuiviObsmerRunnerTest; import fr.ifremer.suiviobsmer.impl.ServiceBoatImpl; import fr.ifremer.suiviobsmer.impl.ServiceContactImpl; import fr.ifremer.suiviobsmer.impl.ServiceSamplingImpl; @@ -123,7 +123,7 @@ serviceSampling.importSamplingPlanCsv(input); SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_01"); + SampleRow row = rowDAO.findByCode("2010_0001"); row.getCompany(); row.getProfession(); transaction.closeContext(); Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatInfosImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatInfosImplTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/BoatInfosImplTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -25,7 +25,7 @@ import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper; import fr.ifremer.suiviobsmer.SuiviObsmerRunner; import fr.ifremer.suiviobsmer.bean.ContactState; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; +import fr.ifremer.suiviobsmer.SuiviObsmerRunnerTest; import fr.ifremer.suiviobsmer.impl.ServiceBoatImpl; import fr.ifremer.suiviobsmer.impl.ServiceContactImpl; import fr.ifremer.suiviobsmer.services.ServiceBoat; Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/entity/SampleRowImplTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -25,7 +25,7 @@ import fr.ifremer.suiviobsmer.SuiviObsmerModelDAOHelper; import fr.ifremer.suiviobsmer.SuiviObsmerRunner; import fr.ifremer.suiviobsmer.SuiviObsmerContext; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; +import fr.ifremer.suiviobsmer.SuiviObsmerRunnerTest; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImportTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImportTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ActivityCalendarImportTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -24,7 +24,7 @@ import fr.ifremer.suiviobsmer.SuiviObsmerContext; import fr.ifremer.suiviobsmer.SuiviObsmerException; import fr.ifremer.suiviobsmer.SuiviObsmerRunner; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; +import fr.ifremer.suiviobsmer.SuiviObsmerRunnerTest; import fr.ifremer.suiviobsmer.services.ServiceBoat; import java.io.BufferedReader; import java.io.File; Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceBoatImplTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -26,7 +26,7 @@ import fr.ifremer.suiviobsmer.SuiviObsmerRunner; import fr.ifremer.suiviobsmer.SuiviObsmerContext; import fr.ifremer.suiviobsmer.bean.BoatFilterImpl; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; +import fr.ifremer.suiviobsmer.SuiviObsmerRunnerTest; import fr.ifremer.suiviobsmer.bean.BoatFilter; import fr.ifremer.suiviobsmer.bean.CompanyBoatInfos; import fr.ifremer.suiviobsmer.bean.ContactState; @@ -223,9 +223,9 @@ // Get two SampleRows : 2009_3 & 2010_4 SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row1 = rowDAO.findByCode("2009_03"); + SampleRow row1 = rowDAO.findByCode("2009_0003"); row1.getProfession(); - SampleRow row2 = rowDAO.findByCode("2010_04"); + SampleRow row2 = rowDAO.findByCode("2010_0004"); row2.getProfession(); transaction.commitTransaction(); @@ -269,7 +269,7 @@ TopiaContext transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_01"); + SampleRow row = rowDAO.findByCode("2010_0001"); row.getCompany(); row.getProfession(); transaction.closeContext(); @@ -292,7 +292,7 @@ // ajout d'une nouvelle ligne "2010_4" non mise en elligible auparavent companyBoatInfos.setNewElligibleBoat(rows.get(1)); // ligne deja elligible mise en inactive - companyBoatInfos.removeElligibleBoat("2009_03"); + companyBoatInfos.removeElligibleBoat("2009_0003"); service.createUpdateCompanyBoatInfos(companyBoatInfos); @@ -301,18 +301,18 @@ Map<String, ElligibleBoat> results = companyBoatInfos.getElligibleBoats(); assertEquals(2, results.size()); - ElligibleBoat elligible = companyBoatInfos.getElligibleBoat("2009_03"); + ElligibleBoat elligible = companyBoatInfos.getElligibleBoat("2009_0003"); assertNotNull(elligible.getCompanyActive()); assertFalse(elligible.getCompanyActive()); - elligible = companyBoatInfos.getElligibleBoat("2010_04"); + elligible = companyBoatInfos.getElligibleBoat("2010_0004"); assertTrue(elligible.getCompanyActive()); /** TEST2 **/ // Suppression ligne lié elligible pour la société - companyBoatInfos.removeElligibleBoat("2010_04"); + companyBoatInfos.removeElligibleBoat("2010_0004"); // Reactivation ligne mise en inactive juste avant - companyBoatInfos.activeElligibleBoat("2009_03"); + companyBoatInfos.activeElligibleBoat("2009_0003"); service.createUpdateCompanyBoatInfos(companyBoatInfos); @@ -321,7 +321,7 @@ results = companyBoatInfos.getElligibleBoats(); assertEquals(1, results.size()); - elligible = companyBoatInfos.getElligibleBoat("2009_03"); + elligible = companyBoatInfos.getElligibleBoat("2009_0003"); assertNull(elligible.getCompanyActive()); assertTrue(elligible.getGlobalActive()); Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceReferentialImplTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -23,7 +23,9 @@ import fr.ifremer.suiviobsmer.SuiviObsmerException; import fr.ifremer.suiviobsmer.SuiviObsmerRunner; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; +import fr.ifremer.suiviobsmer.SuiviObsmerRunnerTest; +import fr.ifremer.suiviobsmer.bean.SamplingFilter; +import fr.ifremer.suiviobsmer.bean.SamplingFilterImpl; import fr.ifremer.suiviobsmer.entity.FishingZone; import java.io.InputStream; import java.util.List; @@ -81,7 +83,7 @@ InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); service.importFishingZoneCsv(input); - List<String> facades = service.getFacades(null); + List<String> facades = service.getFacades(new SamplingFilterImpl()); assertEquals(3, facades.size()); assertTrue(facades.contains("Atlantique")); assertTrue(facades.contains("Mer du Nord")); @@ -95,7 +97,9 @@ InputStream input = getClass().getResourceAsStream("/import/zonesPeche.csv"); service.importFishingZoneCsv(input); - List<String> sectors = service.getSectors(null, null); + SamplingFilter filter = new SamplingFilterImpl(); + + List<String> sectors = service.getSectors(filter); assertEquals(5, sectors.size()); assertTrue(sectors.contains("Manche")); assertTrue(sectors.contains("Mer du Nord")); @@ -103,7 +107,9 @@ assertTrue(sectors.contains("Golfe de Gascogne")); assertTrue(sectors.contains("Méditerranée")); - sectors = service.getSectors(null, "Atlantique"); + filter.setFacadeName("Atlantique"); + + sectors = service.getSectors(filter); assertEquals(2, sectors.size()); assertTrue(sectors.contains("Manche Ouest")); assertTrue(sectors.contains("Golfe de Gascogne")); Modified: trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java =================================================================== --- trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/java/fr/ifremer/suiviobsmer/impl/ServiceSamplingImplTest.java 2010-01-28 19:51:18 UTC (rev 292) @@ -28,7 +28,7 @@ import fr.ifremer.suiviobsmer.bean.ImportResults; import fr.ifremer.suiviobsmer.bean.SamplingFilter; import fr.ifremer.suiviobsmer.bean.SamplingFilterImpl; -import fr.ifremer.suiviobsmer.business.SuiviObsmerRunnerTest; +import fr.ifremer.suiviobsmer.SuiviObsmerRunnerTest; import fr.ifremer.suiviobsmer.entity.Boat; import fr.ifremer.suiviobsmer.entity.Company; import fr.ifremer.suiviobsmer.entity.CompanyDAO; @@ -181,7 +181,7 @@ /** * Test of getSampleRowsOrderedByFishingZone method, of class ServiceSamplingImpl. */ -// @Test + @Test public void testGetSampleRowsOrderedByFishingZone() throws Exception { log.info("getSampleRowsOrderedByFishingZone"); @@ -205,19 +205,19 @@ SampleRowDAO dao = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); SampleRow row1 = dao.create(); - row1.setCode("2010_01"); + row1.setCode("2010_0001"); row1.addFishingZone(zones.get(2)); row1.setProgramName("DPMA-2009"); row1.setPeriod(period1); SampleRow row2 = dao.create(); - row2.setCode("2010_02"); + row2.setCode("2010_0002"); row2.addFishingZone(zones.get(0)); row2.setProgramName("DPMA-2009"); row2.setPeriod(period1); SampleRow row3 = dao.create(); - row3.setCode("2010_03"); + row3.setCode("2010_0003"); row3.addFishingZone(zones.get(1)); row3.addFishingZone(zones.get(2)); row3.addFishingZone(zones.get(0)); @@ -225,7 +225,7 @@ row3.setPeriod(period2); SampleRow row4 = dao.create(); - row4.setCode("2010_04"); + row4.setCode("2010_0004"); row4.addFishingZone(zones.get(0)); row4.setProgramName("DPMA-2009"); row4.setPeriod(period1); @@ -244,9 +244,9 @@ List<SampleRow> rows = service.getSampleRowsOrderedByFishingZone(period, null); assertEquals(4, rows.size()); SampleRow resultRow0 = rows.get(0); - assertEquals("2010_02", resultRow0.getCode()); + assertEquals("2010_0002", resultRow0.getCode()); SampleRow resultRow1 = rows.get(1); - assertEquals("2010_03", resultRow1.getCode()); + assertEquals("2010_0003", resultRow1.getCode()); List<FishingZone> zoneRow1 = resultRow1.getFishingZone(); assertEquals(3, zoneRow1.size()); @@ -258,9 +258,9 @@ assertEquals("V", resultZone2.getDistrictCode()); SampleRow resultRow2 = rows.get(2); - assertEquals("2010_04", resultRow2.getCode()); + assertEquals("2010_0004", resultRow2.getCode()); SampleRow resultRow3 = rows.get(3); - assertEquals("2010_01", resultRow3.getCode()); + assertEquals("2010_0001", resultRow3.getCode()); // SECOND TEST : // ORDER by FishingZone (facadeName, sectorName, districtCode) @@ -272,11 +272,11 @@ rows = service.getSampleRowsOrderedByFishingZone(period, null); assertEquals(3, rows.size()); resultRow0 = rows.get(0); - assertEquals("2010_02", resultRow0.getCode()); + assertEquals("2010_0002", resultRow0.getCode()); resultRow1 = rows.get(1); - assertEquals("2010_04", resultRow1.getCode()); + assertEquals("2010_0004", resultRow1.getCode()); resultRow2 = rows.get(2); - assertEquals("2010_01", resultRow2.getCode()); + assertEquals("2010_0001", resultRow2.getCode()); } @@ -397,7 +397,7 @@ } -// @Test + @Test public void testDeleteSampleRow() throws Exception { log.info("deleteSampleRow"); @@ -418,7 +418,7 @@ service.importSamplingPlanCsv(input); SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row = rowDAO.findByCode("2010_01"); + SampleRow row = rowDAO.findByCode("2010_0001"); row.getProfession(); row.getCompany(); transaction.closeContext(); @@ -434,7 +434,7 @@ service.deleteSampleRow(row); transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - row = rowDAO.findByCode("2010_01"); + row = rowDAO.findByCode("2010_0001"); assertNull(row); ElligibleBoatDAO elligibleDAO = SuiviObsmerModelDAOHelper.getElligibleBoatDAO(transaction); @@ -443,7 +443,7 @@ transaction.closeContext(); } -// @Test + @Test public void testImportSamplingPlanCsv() throws SuiviObsmerException, TopiaException { log.info("importSamplingPlanCsv"); @@ -479,7 +479,7 @@ SampleRowDAO rowDAO = SuiviObsmerModelDAOHelper.getSampleRowDAO(transaction); - SampleRow row1 = rowDAO.findByCode("2010_01"); + SampleRow row1 = rowDAO.findByCode("2010_0001"); assertNotNull(row1); assertEquals(1, row1.getNbObservants()); assertEquals(1.5, row1.getAverageTideTime(), 0.1); @@ -501,7 +501,7 @@ transaction.closeContext(); } -// @Test + @Test public void testGetPrograms() throws Exception { /** PREPARE DATA **/ TopiaContext transaction = SuiviObsmerContext.getTopiaRootContext().beginTransaction(); @@ -520,12 +520,12 @@ service.importSamplingPlanCsv(input); /** EXEC METHOD **/ - List<String> programs = service.getPrograms(); + List<String> programs = service.getPrograms(null); assertEquals(4, programs.size()); } -// @Test + @Test public void testGetNewSampleRowCode() throws Exception { log.info("getNewSampleRowCode"); @@ -552,16 +552,16 @@ Calendar begin = new GregorianCalendar(2009, 11, 1); String result = service.getNewSampleRowCode(begin.getTime()); - Assert.assertEquals("2009_07", result); + 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); +// 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); } } Modified: trunk/suiviobsmer-business/src/test/resources/import/contacts.csv =================================================================== --- trunk/suiviobsmer-business/src/test/resources/import/contacts.csv 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-business/src/test/resources/import/contacts.csv 2010-01-28 19:51:18 UTC (rev 292) @@ -0,0 +1,2 @@ +"CONT_CREATION","OBSERV_ID","PLAN_CODE","NAVS_COD","CONT_ETAT","CONT_DEBUT_MAREE","CONT_FIN_MAREE","CONT_NB_OBSERV","CONT_MAM_CAPT","CONT_MAM_OBS","CONT_COMMENT","CONT_ALLEGRO","CONT_SOCIETE_VALID","CONT_PROGRAM_VALID" +17/07/2009,"jmichmuche","2010_01",177474,"Embarquement réalisé ",22/07/2010,22/07/2010,1,,,,22/07/2010,"A","A" \ No newline at end of file Added: trunk/suiviobsmer-business/src/test/resources/import/misc.csv =================================================================== --- trunk/suiviobsmer-business/src/test/resources/import/misc.csv (rev 0) +++ trunk/suiviobsmer-business/src/test/resources/import/misc.csv 2010-01-28 19:51:18 UTC (rev 292) @@ -0,0 +1,5 @@ +PLAN_CODE +2009_1 +2009_11 +2009_111 +2009_1111 \ No newline at end of file Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/base/AbstractFilteredPage.java 2010-01-28 19:51:18 UTC (rev 292) @@ -127,6 +127,14 @@ @Property private String observerId; + @Persist + private SelectModel programSelectModel; + + @Persist + private boolean observerSelect; + + @Persist + private boolean programSelect; /** * Initialize all select for filters. By default, only facade, sector and * sampleRow selects will be initialized. @@ -135,7 +143,9 @@ * @param observerSelect if true, observer select will be initialized * @throws SuiviObsmerException */ - protected void initSelectFilters(boolean companySelect, boolean observerSelect) throws SuiviObsmerException { + protected void initSelectFilters(boolean companySelect, boolean observerSelect, boolean programSelect) throws SuiviObsmerException { + this.observerSelect = observerSelect; + this.programSelect = programSelect; if (getFilter().getSampleRow() != null) { if (log.isDebugEnabled()) { @@ -166,6 +176,11 @@ } } + if (programSelect) { + programSelectModel = null; + getProgramSelectModel(); + } + resetFacadeSelect(); resetSectorSelect(); resetSampleRowSelect(); @@ -199,7 +214,7 @@ log.info("BUSINESS REQUEST [getFacades]"); } List<OptionModel> options = new ArrayList<OptionModel>(); - for (String facadeName : serviceReferential.getFacades(getFilter().getCompany())) { + for (String facadeName : serviceReferential.getFacades(getFilter())) { options.add(new OptionModelImpl(facadeName,facadeName)); } facadeSelectModel = new SelectModelImpl(null, options); @@ -220,7 +235,7 @@ log.info("BUSINESS REQUEST [getSectors]"); } List<OptionModel> options = new ArrayList<OptionModel>(); - for (String sectorName : serviceReferential.getSectors(getFilter().getCompany(), getFilter().getFacadeName())) { + for (String sectorName : serviceReferential.getSectors(getFilter())) { options.add(new OptionModelImpl(sectorName,sectorName)); } sectorSelectModel = new SelectModelImpl(null, options); @@ -299,6 +314,27 @@ return observerSelectModel; } + /** + * Get select model for sampleRow program. Depends on company set in + * filter. + * + * @return the SelectModel for program names + * @throws SuiviObsmerException + */ + public SelectModel getProgramSelectModel() throws SuiviObsmerException { + if (programSelectModel == null) { + if (log.isInfoEnabled()) { + log.info("BUSINESS REQUEST [getPrograms]"); + } + List<OptionModel> options = new ArrayList<OptionModel>(); + for (String programName : serviceSampling.getPrograms(getFilter().getCompany())) { + options.add(new OptionModelImpl(programName, programName)); + } + programSelectModel = new SelectModelImpl(null, options); + } + return programSelectModel; + } + protected abstract BoatFilter getFilter() throws SuiviObsmerException; /** @@ -335,31 +371,54 @@ getFilter().setCompany(user.getCompany()); } - WaoUser observer = getObserverSelectModel().findObject(observerId); - getFilter().setObserver(observer); + if (observerSelect) { + WaoUser observer = getObserverSelectModel().findObject(observerId); + getFilter().setObserver(observer); + } } private boolean edited; /** * EVENT :: selected on refreshByCompany submit button. Reset selects for - * company selected : facades, sectors, sampleRows and observers. + * company selected : programs, facades, sectors, sampleRows and observers. * This method set the state to edited, you can use * {@link AbstractFilteredPage#isEdited() } method to test it. * * @throws SuiviObsmerException + * @see AbstractFilteredPage#onSelectedFromRefreshByProgram() + */ + public void onSelectedFromRefreshByCompany() throws SuiviObsmerException { + // Reset programs (the behavior is needed even if programSelect is false) + getFilter().setProgramName(null); + onSelectedFromRefreshByProgram(); + if (observerSelect) { + // Reset observers + getFilter().setObserver(null); + observerSelectModel = null; + getObserverSelectModel(); + } + if (programSelect) { + programSelectModel = null; + getProgramSelectModel(); + } + edited = true; + } + + /** + * EVENT :: selected on refreshByProgram submit button. Reset selects for + * program selected : facades, sectors and sampleRows. + * This method set the state to edited, you can use + * {@link AbstractFilteredPage#isEdited() } method to test it. + * + * @throws SuiviObsmerException * @see AbstractFilteredPage#onSelectedFromRefreshByFacade() */ - public void onSelectedFromRefreshByCompany() throws SuiviObsmerException { + public void onSelectedFromRefreshByProgram() throws SuiviObsmerException { // Reset facades getFilter().setFacadeName(null); onSelectedFromRefreshByFacade(); resetFacadeSelect(); - // Reset observers - getFilter().setObserver(null); - observerSelectModel = null; - getObserverSelectModel(); - edited = true; } /** Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Boats.java 2010-01-28 19:51:18 UTC (rev 292) @@ -144,7 +144,7 @@ } // Initialize filters using AbstractFilteredPage superclass - initSelectFilters(false, false); + initSelectFilters(false, false, false); companyBoatInfos = null; //boatSelectedImmatriculation = null; Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Contacts.java 2010-01-28 19:51:18 UTC (rev 292) @@ -121,16 +121,10 @@ if (log.isDebugEnabled()) { log.debug("RESET DATA"); } - initSelectFilters(true ,true); + initSelectFilters(true, true, false); contacts = null; getContacts(); // } -// String boatName = getFilter().getBoatName(); -// boolean companyFiltered = getFilter().getCompany() != null && user.getAdmin(); - // Show filters only if no boatName is set -// if ((getContactFilter().isFiltered() || companyFiltered) && StringUtils.isEmpty(boatName)) { -// filtersVisible = true; -// } contactsForm.clearErrors(); } @@ -145,11 +139,6 @@ @InjectComponent private Zone importExportZone; -// @Property -// @Persist(PersistenceConstants.FLASH) -//// @Persist -// private boolean filtersVisible; - private boolean reset; @Property Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/SampleRowForm.java 2010-01-28 19:51:18 UTC (rev 292) @@ -344,7 +344,7 @@ log.info("BUSINESS REQUEST [getPrograms]"); } List<OptionModel> options = new ArrayList<OptionModel>(); - for (String name : serviceSampling.getPrograms()) { + for (String name : serviceSampling.getPrograms(null)) { options.add(new OptionModelImpl(name, name)); } programSelectModel = new SelectModelImpl(null, options); Modified: trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java =================================================================== --- trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-ui/src/main/java/fr/ifremer/suiviobsmer/ui/pages/Synthesis.java 2010-01-28 19:51:18 UTC (rev 292) @@ -77,7 +77,7 @@ private WaoUser user; void setupRender() throws SuiviObsmerException { - initSelectFilters(true, false); + initSelectFilters(true, false, true); //getFilter().setUnfinishedRowsOnly(false); } @@ -100,14 +100,20 @@ dataSamplingFilter = new BoatFilterImpl(); if (!user.getAdmin()) { dataSamplingFilter.setCompany(user.getCompany()); - } + } + } + return dataSamplingFilter; + } + + public PeriodDates getPeriod() throws SuiviObsmerException { + if (getFilter().getPeriod() == null) { PeriodDates period = PeriodDates.createMonthsPeriodFromToday(-12); if (log.isDebugEnabled()) { log.debug("Period : " + period); } - dataSamplingFilter.setPeriod(period); + getFilter().setPeriod(period); } - return dataSamplingFilter; + return getFilter().getPeriod(); } @Override Modified: trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Synthesis.properties =================================================================== --- trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Synthesis.properties 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-ui/src/main/resources/fr/ifremer/suiviobsmer/ui/pages/Synthesis.properties 2010-01-28 19:51:18 UTC (rev 292) @@ -6,4 +6,5 @@ facadeName-label: Fa\u00E7ade sectorName-label: Zone sampleRow-label: Code ligne -company-label: Soci\u00E9t\u00E9 \ No newline at end of file +company-label: Soci\u00E9t\u00E9 +programName-label: Programme \ No newline at end of file Modified: trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml =================================================================== --- trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-01-28 17:22:32 UTC (rev 291) +++ trunk/suiviobsmer-ui/src/main/webapp/Synthesis.tml 2010-01-28 19:51:18 UTC (rev 292) @@ -54,15 +54,21 @@ <div class="filterRow"> <label>Période: </label> <t:label t:for="periodBegin" />: - <input t:type="datefield" class="width70" t:id="periodBegin" t:value="filter.period.fromDate" /> + <input t:type="datefield" class="width70" t:id="periodBegin" t:value="period.fromDate" /> <t:label t:for="periodEnd" />: - <input t:type="datefield" class="width70" t:id="periodEnd" t:value="filter.period.thruDate" /> + <input t:type="datefield" class="width70" t:id="periodEnd" t:value="period.thruDate" /> + </div> + <div> <t:if t:test="user.admin"> - <t:label t:for="company" />: - <input t:type="select" t:id="company" t:model="companySelectModel" value="companyId"/> + <t:label t:for="company" />: + <input t:type="select" t:id="company" t:model="companySelectModel" value="companyId"/> <input t:type="submit" class="ico22px refresh" t:id="refreshByCompany" value="Refresh" - title="Rafraîchir les filtres en fonction de la société sélectionnée"/> + title="Rafraîchir les filtres en fonction de la société sélectionnée"/> </t:if> + <t:label t:for="programName" />: + <select t:type="select" t:id="programName" t:model="programSelectModel" value="filter.programName" /> + <input t:type="submit" class="ico22px refresh" t:id="refreshByProgram" value="Refresh" + title="Rafraîchir les secteurs de pêche et les métiers en fonction du programme sélectionné"/> </div> <div class="filterRow" t:type="zone" t:id="sampleRowZone" t:update="show"> <t:label t:for="facadeName" />:
participants (1)
-
fdesbois@users.labs.libre-entreprise.org