This is an automated email from the git hooks/post-receive script. New commit to branch feature/8180 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 386ecfb4d883b1caa35cbd3b224d266f0e39f7a7 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Mon Jun 27 10:27:58 2016 +0200 Add test on remove mooring acoustic import --- .../services/service/UserDbPersistenceService.java | 4 +- .../strategy/AbstractRemoveDataStrategy.java | 11 ++-- .../strategy/AcousticRemoveDataStrategy.java | 2 +- .../strategy/CommonAllRemoveDataStrategy.java | 2 +- .../strategy/CommonTransectRemoveDataStrategy.java | 2 +- .../strategy/CommonTransitRemoveDataStrategy.java | 2 +- .../strategy/CommonVoyageRemoveDataStrategy.java | 2 +- .../strategy/LegacyVoyageRemoveDataStrategy.java | 2 +- .../MooringAcousticRemoveDataStrategy.java | 11 +++- .../removedata/AbstractRemoveDataServiceTest.java | 61 ++++++++++++++++++++-- .../MooringAcousticRemoveDataServiceTest.java | 48 +++++++++++++++++ 11 files changed, 127 insertions(+), 20 deletions(-) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java index 288a9c3..6476c9f 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/UserDbPersistenceService.java @@ -268,8 +268,8 @@ public class UserDbPersistenceService extends EchoBaseServiceSupport { return persistenceContext.getCellDao().countMooringCellResults(mooring); } - public List<String> getVoyageOrphanCellIds() throws TopiaException { - return persistenceContext.getCellDao().getVoyageOrphanCellIds(); + public List<String> getOrphanCellIds() throws TopiaException { + return persistenceContext.getCellDao().getOrphanCellIds(); } public List<String> getVoyageCellIds(Voyage voyage) throws TopiaException { diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java index 486b0d8..c6e56ab 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AbstractRemoveDataStrategy.java @@ -210,18 +210,17 @@ public abstract class AbstractRemoveDataStrategy<E extends TopiaEntity> extends if (optionalCell.isPresent()) { Cell cell = optionalCell.get(); Collection<Result> cellResult = cell.getResult(); -// for (Result result : cellResult) { -// cell.removeResult(result); -// } - persistenceService.deleteResults(cellResult); + if (cellResult != null) { + persistenceService.deleteResults(cellResult); + } cell.clearResult(); } incrementOp("Remove cell " + cellId + " results"); } } - protected void removeVoyageOrphanCells() throws TopiaException { - List<String> cellIds = persistenceService.getVoyageOrphanCellIds(); + protected void removeOrphanCells() throws TopiaException { + List<String> cellIds = persistenceService.getOrphanCellIds(); for (String cellId : cellIds) { Cell cell = persistenceService.getCell(cellId); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java index 0bd91dd..ad7ff0a 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/AcousticRemoveDataStrategy.java @@ -81,7 +81,7 @@ public class AcousticRemoveDataStrategy extends AbstractRemoveDataStrategy<Voyag @Override protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells - removeVoyageOrphanCells(); + removeOrphanCells(); } @Override diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java index 2c0c260..831b352 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonAllRemoveDataStrategy.java @@ -49,7 +49,7 @@ public class CommonAllRemoveDataStrategy extends AbstractRemoveDataStrategy<Voya @Override protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells - removeVoyageOrphanCells(); + removeOrphanCells(); } @Override diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java index b928931..be5548e 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransectRemoveDataStrategy.java @@ -79,7 +79,7 @@ public class CommonTransectRemoveDataStrategy extends AbstractRemoveDataStrategy @Override protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells - removeVoyageOrphanCells(); + removeOrphanCells(); } @Override diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java index 5ecefe3..4d5b1c0 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonTransitRemoveDataStrategy.java @@ -78,7 +78,7 @@ public class CommonTransitRemoveDataStrategy extends AbstractRemoveDataStrategy< @Override protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells - removeVoyageOrphanCells(); + removeOrphanCells(); } @Override diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java index 45d0501..cf00718 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/CommonVoyageRemoveDataStrategy.java @@ -50,7 +50,7 @@ public class CommonVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy<V @Override protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells - removeVoyageOrphanCells(); + removeOrphanCells(); } @Override diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java index 615bd78..ec8ac99 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/LegacyVoyageRemoveDataStrategy.java @@ -49,7 +49,7 @@ public class LegacyVoyageRemoveDataStrategy extends AbstractRemoveDataStrategy<V @Override protected void removePostData(DataAccousticProvider<Voyage> provider) throws TopiaException { // remove orphans cells - removeVoyageOrphanCells(); + removeOrphanCells(); } @Override diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringAcousticRemoveDataStrategy.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringAcousticRemoveDataStrategy.java index b794bf2..89d07d5 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringAcousticRemoveDataStrategy.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/removedata/strategy/MooringAcousticRemoveDataStrategy.java @@ -30,6 +30,7 @@ import fr.ifremer.echobase.entities.data.DataAcquisition; import fr.ifremer.echobase.entities.data.DataProcessing; import fr.ifremer.echobase.entities.data.Mooring; import fr.ifremer.echobase.entities.data.Transect; +import fr.ifremer.echobase.entities.data.Voyage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaException; @@ -73,6 +74,12 @@ public class MooringAcousticRemoveDataStrategy extends AbstractRemoveDataStrateg } @Override + protected void removePostData(DataAccousticProvider<Mooring> provider) throws TopiaException { + // remove orphans cells + removeOrphanCells(); + } + + @Override protected void removeImportData(DataAccousticProvider<Mooring> provider, String id) throws TopiaException { if (id.startsWith(DataAcquisition.class.getName())) { @@ -81,8 +88,8 @@ public class MooringAcousticRemoveDataStrategy extends AbstractRemoveDataStrateg DataAcquisition dataAcquisition = persistenceService.getDataAcquisition(id); // remove it from cell - Transect transect = persistenceService.getTransectContainsDataAcquisition(dataAcquisition); - transect.removeDataAcquisition(dataAcquisition); + Mooring mooring = provider.getEntity(); + mooring.removeDataAcquisition(dataAcquisition); // remove dataAcquisition persistenceService.deleteDataAcquisition(dataAcquisition); diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java index f8c9087..bdae5bc 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/AbstractRemoveDataServiceTest.java @@ -84,11 +84,11 @@ import fr.ifremer.echobase.services.FakeEchoBaseServiceContext; import fr.ifremer.echobase.services.ImportDataFixtures; import fr.ifremer.echobase.services.service.UserDbPersistenceService; import fr.ifremer.echobase.services.service.importdata.configurations.ImportDataConfigurationSupport; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringAcousticsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageAcousticsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageCatchesImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageCommonsImportConfiguration; -import fr.ifremer.echobase.services.service.importdata.configurations.VoyageImportDataConfigurationSupport; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageOperationsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.configurations.VoyageResultsImportConfiguration; import fr.ifremer.echobase.services.service.removedata.RemoveDataConfiguration; @@ -142,6 +142,8 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS protected String importResultMapOther1Id; protected String importMooringId; + + protected String importMooringAcousticId; protected static final String voyage1Id = "fr.ifremer.echobase.entities.data.Voyage#1#1"; @@ -171,8 +173,6 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS protected static final String cellElementary1Id = "fr.ifremer.echobase.entities.data.Cell#1#elementary1"; - protected static final String cellElementary1_2Id = "fr.ifremer.echobase.entities.data.Cell#1#elementary2"; - protected static final String cellEsdu1_2Id = "fr.ifremer.echobase.entities.data.Cell#1#esdu2"; protected static final String resultEsdu1Id = "fr.ifremer.echobase.entities.data.Result#1#esdu1"; @@ -193,6 +193,12 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS protected static final String mooringId = "fr.ifremer.echobase.entities.data.Mooring#1#1"; + protected static final String dataAcquisition2Id = "fr.ifremer.echobase.entities.data.DataAcquisition#2"; + + protected static final String cellEsdu2Id = "fr.ifremer.echobase.entities.data.Cell#1#esdu2"; + + protected static final String cellElementary2Id = "fr.ifremer.echobase.entities.data.Cell#1#elementary2"; + protected String importCommonVoyage2Id; protected String importCommonTransect2Id; @@ -310,6 +316,7 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS // Create imports for mooring createMooringImport(); + createMooringAcousticImport(); } protected void removeImport(String importId, String... shoudDeleteIds) throws TopiaException { @@ -330,6 +337,7 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS importCommonTransit2Id, importCommonTransect2Id, importMooringId, + importMooringAcousticId, voyage1Id, transit1Id, transect1Id, transect1_2Id, operation1Id, totalSample1Id, subSample1Id, biometrySample1Id, @@ -339,7 +347,8 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS cellMapOther1Id, resultMapOther1Id, echotype1Id, lengthAgeKey1Id, lengthWeightKey1Id, voyage2Id, transit2Id, transect2Id, transect2_2Id, - mooringId + mooringId, + dataAcquisition2Id, cellEsdu2Id, cellElementary2Id ); List<String> deletedId = Lists.newArrayList(); @@ -877,6 +886,50 @@ public abstract class AbstractRemoveDataServiceTest extends EchoBaseTestServiceS null, mooring); } + + private void createMooringAcousticImport() { + + Mooring mooring = getEntity(mooringId); + + // create data acquisition + DataAcquisition dataAcquisition = dataAcquisitionDAO.create(TopiaEntity.PROPERTY_TOPIA_ID, dataAcquisition2Id, + DataAcquisition.PROPERTY_ACOUSTIC_INSTRUMENT, getFirstEntity(AcousticInstrument.class)); + mooring.addDataAcquisition(dataAcquisition); + + // create dataProcessing + DataProcessing dataProcessing = dataProcessingDAO.create(DataProcessing.PROPERTY_ID, "id2", + DataProcessing.PROPERTY_PROCESSING_TEMPLATE, "processingTemplate"); + dataAcquisition.addDataProcessing(dataProcessing); + + // create esdu cell + Cell esduCell = cellDAO.create(TopiaEntity.PROPERTY_TOPIA_ID, cellEsdu2Id, + Cell.PROPERTY_CELL_TYPE, getFirstEntity(CellType.class), + Cell.PROPERTY_NAME, "cellEsdu2"); + dataProcessing.addCell(esduCell); + + // create cell data + Data esduData = dataDAO.create(Data.PROPERTY_DATA_METADATA, getFirstEntity(DataMetadata.class), + Data.PROPERTY_DATA_VALUE, "esdu2Data"); + esduCell.addData(esduData); + + // create elementary cell + Cell elementaryCell = cellDAO.create(TopiaEntity.PROPERTY_TOPIA_ID, cellElementary2Id, + Cell.PROPERTY_CELL_TYPE, getFirstEntity(CellType.class), + Cell.PROPERTY_NAME, "cellElementary2"); + esduCell.addChilds(elementaryCell); + + // create cell data + Data elementaryData = dataDAO.create(Data.PROPERTY_DATA_METADATA, getFirstEntity(DataMetadata.class), + Data.PROPERTY_DATA_VALUE, "elementary1Data"); + elementaryCell.addData(elementaryData); + + importMooringAcousticId = createImport( + new MooringAcousticsImportConfiguration(getLocale()), + ImportType.MOORING_ACOUSTIC, + "Acoustic2", + mooringId, + dataAcquisition); + } private <C extends ImportDataConfigurationSupport> String createImport(C importConf, ImportType importType, diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringAcousticRemoveDataServiceTest.java b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringAcousticRemoveDataServiceTest.java new file mode 100644 index 0000000..34fe85c --- /dev/null +++ b/echobase-services/src/test/java/fr/ifremer/echobase/ui/actions/removedata/MooringAcousticRemoveDataServiceTest.java @@ -0,0 +1,48 @@ +package fr.ifremer.echobase.ui.actions.removedata; + +/* + * #%L + * EchoBase :: Services + * %% + * Copyright (C) 2011 - 2012 Ifremer, Codelutin + * %% + * 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% + */ + +import fr.ifremer.echobase.services.service.removedata.RemoveDataService; +import fr.ifremer.echobase.services.service.removedata.strategy.MooringAcousticRemoveDataStrategy; +import org.junit.Test; + +/** + * Test{@link RemoveDataService} with {@link MooringAcousticRemoveDataStrategy}. + * + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class MooringAcousticRemoveDataServiceTest extends AbstractRemoveDataServiceTest { + + @Test + public void removeImport() throws Exception { + + removeImport(// import to remove + importMooringAcousticId, + // data that should be removed + dataAcquisition2Id, cellEsdu2Id, cellElementary2Id, + // importLog that should be removed + importMooringAcousticId + ); + + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.