Author: blavenier Date: 2013-01-30 12:29:37 +0100 (Wed, 30 Jan 2013) New Revision: 266 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/266 Log: - Fix somme unit test failure - skip some PSFM in getAllCaracteristic result (skip protected PSFM, used for stationNumber, trawlDistance, etc.) Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceTest.java Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-01-30 10:53:51 UTC (rev 265) +++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceImpl.java 2013-01-30 11:29:37 UTC (rev 266) @@ -170,14 +170,22 @@ if (fishingOperation.getFishingOperationNumber() == null) { fishingOperation.setFishingOperationNumber(fishingOperationRankOrder); } + + // Start date time + Timestamp startDateTime = (Timestamp)source[colIndex++]; + fishingOperation.setGearShootingStartDate(convertDatabase2UI(startDateTime)); // Station number String stationNumber = (String)source[colIndex++]; - fishingOperation.setStationNumber(stationNumber); + if (stationNumber != null) { + fishingOperation.setStationNumber(stationNumber); + } // Trawl number net Float trawlNetNumber = (Float)source[colIndex++]; - fishingOperation.setTrawlNetNumber(trawlNetNumber.intValue()); + if (trawlNetNumber != null) { + fishingOperation.setTrawlNetNumber(trawlNetNumber.intValue()); + } fishingOperations.add(fishingOperation); } @@ -243,21 +251,23 @@ String miscData = (String)source[colIndex++]; // Retrieve recorder persons - int recorderPersonsIndex = miscData.indexOf(MISC_DATA_RECORDER_PERSONS_TAG); - if (recorderPersonsIndex != -1) { - String recorderPersonsStr = miscData.substring(recorderPersonsIndex + MISC_DATA_RECORDER_PERSONS_TAG.length()).trim(); - miscData = miscData.substring(0, recorderPersonsIndex); - if (!recorderPersonsStr.isEmpty()) { - String[] recorderPersonsArray = recorderPersonsStr.split(","); - List<Person> persons = new ArrayList<Person>(); - for (int i = 0; i < recorderPersonsArray.length; i++) { - String personId = recorderPersonsArray[i]; - Person person = referentialService.getPerson(Integer.valueOf(personId)); - persons.add(person); + if (miscData != null && !miscData.isEmpty()) { + int recorderPersonsIndex = miscData.indexOf(MISC_DATA_RECORDER_PERSONS_TAG); + if (recorderPersonsIndex != -1) { + String recorderPersonsStr = miscData.substring(recorderPersonsIndex + MISC_DATA_RECORDER_PERSONS_TAG.length()).trim(); + miscData = miscData.substring(0, recorderPersonsIndex); + if (!recorderPersonsStr.isEmpty()) { + String[] recorderPersonsArray = recorderPersonsStr.split(","); + List<Person> persons = new ArrayList<Person>(); + for (int i = 0; i < recorderPersonsArray.length; i++) { + String personId = recorderPersonsArray[i]; + Person person = referentialService.getPerson(Integer.valueOf(personId)); + persons.add(person); + } + result.setSaisisseur(persons); } - result.setSaisisseur(persons); - } - } + } + } // Comment : if (miscData != null && !miscData.isEmpty()) { @@ -439,7 +449,9 @@ Integer qualitativeValueId = (Integer)source[colIndex++]; // Trawl net number - if (enumeration.PMFM_ID_MULTIRIG_AGGREGATION.equals(pmfmId)) { + if (enumeration.PMFM_ID_MULTIRIG_AGGREGATION.equals(pmfmId) + && alphanumericalValue != null + && alphanumericalValue.matches("\\d+")) { // TODO TC : passer la propriété trawlNetNumber en String result.setTrawlNetNumber(Integer.valueOf(alphanumericalValue)); } Modified: trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java =================================================================== --- trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-01-30 10:53:51 UTC (rev 265) +++ trunk/tutti-persistence-adagio/src/main/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceImpl.java 2013-01-30 11:29:37 UTC (rev 266) @@ -387,8 +387,12 @@ List<Caracteristic> result = Lists.newArrayList(); while (sources.hasNext()) { Object[] source = sources.next(); - Caracteristic target = loadCaracteristic(source); - result.add(target); + Integer pmfmId = (Integer)source[0]; + // Skip some protected PSFM + if (!isProtectedCaracteristic(pmfmId)) { + Caracteristic target = loadCaracteristic(source); + result.add(target); + } } return result; } @@ -578,5 +582,20 @@ newStatus.setName(status.getName()); entity.setStatus(newStatus); } + + /** + * Return true if the pmfm should NOT be used for caracteristics lists + * (i.e. because used somewhere when storing some properties into the database) + * @param pmfmId + * @return + */ + protected boolean isProtectedCaracteristic(Integer pmfmId) { + return pmfmId.equals(enumeration.PMFM_ID_MULTIRIG_AGGREGATION) + || pmfmId.equals(enumeration.PMFM_ID_MULTIRIG_NUMBER) + || pmfmId.equals(enumeration.PMFM_ID_STATION_NUMBER) + || pmfmId.equals(enumeration.PMFM_ID_RECTILINEAR_OPERATION) + || pmfmId.equals(enumeration.PMFM_ID_HAUL_VALID) + || pmfmId.equals(enumeration.PMFM_ID_TRAWL_DISTANCE); + } } Modified: trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java =================================================================== --- trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java 2013-01-30 10:53:51 UTC (rev 265) +++ trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/FishingOperationPersistenceServiceTest.java 2013-01-30 11:29:37 UTC (rev 266) @@ -45,6 +45,7 @@ import org.junit.ClassRule; import org.junit.Ignore; import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import com.google.common.collect.Lists; @@ -55,7 +56,6 @@ * @author tchemit <chemit@codelutin.com> * @since 0.3 */ -@Ignore public class FishingOperationPersistenceServiceTest { @ClassRule @@ -71,6 +71,8 @@ protected Cruise cruise = null; + @Autowired(required = true) + protected TuttiEnumerationFile enumeration; @Before public void setUp() throws Exception { @@ -82,9 +84,10 @@ } @Test - @Ignore public void getAllFishingOperation(/*String cruiseId*/) { - + List<FishingOperation> fishingOperations = service.getAllFishingOperation(dbResource.getFixtures().cruiseId()); + assertNotNull(fishingOperations); + assertTrue(fishingOperations.size() > 1); } @Test @@ -134,13 +137,16 @@ else if (caracteristic.getCaracteristicType() == CaracteristicType.TEXT) { value = "some text"; } - else if (caracteristic.getCaracteristicType() == CaracteristicType.QUALITATIVE) { - // Choose the first qualitative value - value = caracteristic.getQualitativeValue(0).getId(); + else if (caracteristic.getCaracteristicType() == CaracteristicType.QUALITATIVE + && caracteristic.getQualitativeValue(0) != null) { + // Choose the first qualitative value + value = caracteristic.getQualitativeValue(0).getId(); } - environmentCaracteristics.put(caracteristic, value); - if (environmentValuesOneEntry.size() == 0) { - environmentValuesOneEntry.put(caracteristic, value); + if (value != null) { + environmentCaracteristics.put(caracteristic, value); + if (environmentValuesOneEntry.size() == 0) { + environmentValuesOneEntry.put(caracteristic, value); + } } } @@ -156,13 +162,16 @@ else if (caracteristic.getCaracteristicType() == CaracteristicType.TEXT) { value = "some text"; } - else if (caracteristic.getCaracteristicType() == CaracteristicType.QUALITATIVE) { + else if (caracteristic.getCaracteristicType() == CaracteristicType.QUALITATIVE + && caracteristic.getQualitativeValue(0)!= null) { // Choose the first qualitative value value = caracteristic.getQualitativeValue(0).getId(); } - gearShootingCaracteristics.put(caracteristic, value); - if (gearShootingCaracteristicsOneEntry.size() == 0) { - gearShootingCaracteristicsOneEntry.put(caracteristic, value); + if (value != null) { + gearShootingCaracteristics.put(caracteristic, value); + if (gearShootingCaracteristicsOneEntry.size() == 0) { + gearShootingCaracteristicsOneEntry.put(caracteristic, value); + } } } @@ -400,4 +409,6 @@ public void saveFishingOperation(/*FishingOperation bean*/) { } + + } Modified: trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceTest.java =================================================================== --- trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceTest.java 2013-01-30 10:53:51 UTC (rev 265) +++ trunk/tutti-persistence-adagio/src/test/java/fr/ifremer/tutti/persistence/service/ReferentialPersistenceServiceTest.java 2013-01-30 11:29:37 UTC (rev 266) @@ -254,7 +254,7 @@ public void getAllCaracteristic() { List<Caracteristic> result = service.getAllCaracteristic(); Assert.assertNotNull(result); - Assert.assertEquals(488, result.size()); + Assert.assertEquals(482, result.size()); persistList(Caracteristic.class, ReferentialPersistenceServiceDevImpl.CaracteristicEnum.All.name(), result); assertSize(result, storage.getAllCaracteristic()); }