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 b1e59f8958da03a348c4d04bc41279e95617c240 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Wed Jun 22 10:32:53 2016 +0200 Create IT for mooring importation --- .../service/importdata/ImportDataService.java | 23 ++++--- .../actions/MooringCommonsMooringImportAction.java | 12 ++-- ...l.java => MooringCommonsImportExportModel.java} | 14 ++-- .../echobase/services/EchoBaseServiceFixtures.java | 4 ++ .../echobase/services/ImportDataFixtures.java | 4 +- .../importdata/MooringAcousticImportServiceIT.java | 2 +- .../importdata/MooringCommonsImportServiceIT.java | 71 +++++++++++++++++++++ .../resources/import-data/mooring/mooring.csv.gz | Bin 0 -> 323 bytes 8 files changed, 105 insertions(+), 25 deletions(-) diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java index 3bd0d86..bea7b8a 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/ImportDataService.java @@ -185,7 +185,7 @@ public class ImportDataService extends EchoBaseServiceSupport { } - public ImportDataResult<MooringCommonsImportConfiguration> doImportMooring(MooringCommonsImportConfiguration configuration, EchoBaseUser user) throws ImportException { + public ImportDataResult<MooringCommonsImportConfiguration> doImportMooringCommons(MooringCommonsImportConfiguration configuration, EchoBaseUser user) throws ImportException { MooringCommonsImportDataContext importDataContext = newMooringCommonsImportContext(configuration, user); Set<MooringCommonsMooringImportAction> importActions = Collections.singleton(new MooringCommonsMooringImportAction(importDataContext)); return doImport(importDataContext, importActions); @@ -399,13 +399,6 @@ public class ImportDataService extends EchoBaseServiceSupport { } } - public static class MooringAcousticsImportDataAction implements ImportDataAction<MooringAcousticsImportConfiguration> { - @Override - public ImportDataResult<MooringAcousticsImportConfiguration> doImport(ImportDataService service, MooringAcousticsImportConfiguration configuration, EchoBaseUser user) throws ImportException { - return service.doImportMooringAcoustics(configuration, user); - } - } - public static class VoyageCommonsImportDataAction implements ImportDataAction<VoyageCommonsImportConfiguration> { @Override public ImportDataResult<VoyageCommonsImportConfiguration> doImport(ImportDataService service, VoyageCommonsImportConfiguration configuration, EchoBaseUser user) throws ImportException { @@ -434,4 +427,18 @@ public class ImportDataService extends EchoBaseServiceSupport { } } + public static class MooringAcousticsImportDataAction implements ImportDataAction<MooringAcousticsImportConfiguration> { + @Override + public ImportDataResult<MooringAcousticsImportConfiguration> doImport(ImportDataService service, MooringAcousticsImportConfiguration configuration, EchoBaseUser user) throws ImportException { + return service.doImportMooringAcoustics(configuration, user); + } + } + + public static class MooringCommonsImportDataAction implements ImportDataAction<MooringCommonsImportConfiguration> { + @Override + public ImportDataResult<MooringCommonsImportConfiguration> doImport(ImportDataService service, MooringCommonsImportConfiguration configuration, EchoBaseUser user) throws ImportException { + return service.doImportMooringCommons(configuration, user); + } + } + } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java index 3c1320c..263522a 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java @@ -27,7 +27,7 @@ import fr.ifremer.echobase.io.InputFile; import fr.ifremer.echobase.services.service.importdata.DuplicatedMooringException; import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsImportDataContext; -import fr.ifremer.echobase.services.service.importdata.csv.MooringCommonsMooringImportExportModel; +import fr.ifremer.echobase.services.service.importdata.csv.MooringCommonsImportExportModel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.csv.Import; @@ -50,13 +50,13 @@ public class MooringCommonsMooringImportAction extends MooringCommonsImportDataA } @Override - protected MooringCommonsMooringImportExportModel createCsvImportModel(MooringCommonsImportDataContext importDataContext) { - return MooringCommonsMooringImportExportModel.forImport(importDataContext); + protected MooringCommonsImportExportModel createCsvImportModel(MooringCommonsImportDataContext importDataContext) { + return MooringCommonsImportExportModel.forImport(importDataContext); } @Override - protected MooringCommonsMooringImportExportModel createCsvExportModel(MooringCommonsImportDataContext importDataContext) { - return MooringCommonsMooringImportExportModel.forExport(importDataContext); + protected MooringCommonsImportExportModel createCsvExportModel(MooringCommonsImportDataContext importDataContext) { + return MooringCommonsImportExportModel.forExport(importDataContext); } @Override @@ -85,8 +85,6 @@ public class MooringCommonsMooringImportAction extends MooringCommonsImportDataA Mooring createdMooring = persistenceService.createMooring(mooring); addId(result, EchoBaseUserEntityEnum.Mooring, createdMooring, rowNumber); - - addId(result, EchoBaseUserEntityEnum.Mooring, createdMooring, rowNumber); addProcessedRow(result, createdMooring); } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsImportExportModel.java similarity index 85% rename from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java rename to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsImportExportModel.java index ea148d3..92f7017 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsMooringImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/MooringCommonsImportExportModel.java @@ -30,16 +30,16 @@ import fr.ifremer.echobase.services.service.importdata.contexts.MooringCommonsIm * Model to import Mooring. * * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.4 + * @since 4.0 */ -public class MooringCommonsMooringImportExportModel extends EchoBaseImportExportModelSupport<Mooring> { +public class MooringCommonsImportExportModel extends EchoBaseImportExportModelSupport<Mooring> { - private MooringCommonsMooringImportExportModel(char separator) { + private MooringCommonsImportExportModel(char separator) { super(separator); } - public static MooringCommonsMooringImportExportModel forImport(MooringCommonsImportDataContext importDataContext) { - MooringCommonsMooringImportExportModel model = new MooringCommonsMooringImportExportModel(importDataContext.getCsvSeparator()); + public static MooringCommonsImportExportModel forImport(MooringCommonsImportDataContext importDataContext) { + MooringCommonsImportExportModel model = new MooringCommonsImportExportModel(importDataContext.getCsvSeparator()); model.newForeignKeyColumn(Mooring.PROPERTY_MISSION, Mooring.PROPERTY_MISSION, Mission.class, Mission.PROPERTY_NAME, importDataContext.getMissionByName()); model.newMandatoryColumn(Mooring.PROPERTY_CODE); @@ -62,8 +62,8 @@ public class MooringCommonsMooringImportExportModel extends EchoBaseImportExport return model; } - public static MooringCommonsMooringImportExportModel forExport(MooringCommonsImportDataContext importDataContext) { - MooringCommonsMooringImportExportModel model = new MooringCommonsMooringImportExportModel(importDataContext.getCsvSeparator()); + public static MooringCommonsImportExportModel forExport(MooringCommonsImportDataContext importDataContext) { + MooringCommonsImportExportModel model = new MooringCommonsImportExportModel(importDataContext.getCsvSeparator()); model.newColumnForExport(Mooring.PROPERTY_MISSION, Mooring.PROPERTY_MISSION, EchoBaseCsvUtil.MISSION_FORMATTER); model.newColumnForExport(Mooring.PROPERTY_CODE); diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java index 76236a3..1f77e05 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/EchoBaseServiceFixtures.java @@ -58,6 +58,10 @@ public class EchoBaseServiceFixtures { } public int NB_MOORING() { + return 7; + } + + public int NB_MOORING_TOTAL() { return 1; } diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDataFixtures.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDataFixtures.java index 1725d8c..1b6c1bf 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDataFixtures.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/ImportDataFixtures.java @@ -54,6 +54,7 @@ public enum ImportDataFixtures { serviceContext.assertNoEntities(Sample.class, SampleData.class); serviceContext.assertNoEntities(DataAcquisition.class, DataProcessing.class, Cell.class, Data.class, Result.class); serviceContext.assertNoEntities(LengthAgeKey.class, LengthWeightKey.class, Echotype.class); + serviceContext.assertNoEntities(Mooring.class); } @Override @@ -145,8 +146,7 @@ public enum ImportDataFixtures { @Override public void assertBeforeImportExisting(FakeEchoBaseServiceContext serviceContext, EchoBaseServiceFixtures fixtures) { - IMPORT_DATA_ECHOBASE_CATCHES.assertBeforeImportExisting(serviceContext, fixtures); - serviceContext.assertNbEntities(Mooring.class, fixtures.NB_MOORING()); + serviceContext.assertNbEntities(Mooring.class, fixtures.NB_MOORING_TOTAL()); } }; diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringAcousticImportServiceIT.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringAcousticImportServiceIT.java index 10fa085..f12bdf6 100644 --- a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringAcousticImportServiceIT.java +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringAcousticImportServiceIT.java @@ -33,7 +33,7 @@ import java.io.IOException; /** * @author Julien Ruchaud - ruchaud@codelutin.com - * @since 0.5 + * @since 4.0 */ public class MooringAcousticImportServiceIT extends AbstractImportDataServiceIT<MooringAcousticsImportConfiguration> { diff --git a/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsImportServiceIT.java b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsImportServiceIT.java new file mode 100644 index 0000000..a74ad8e --- /dev/null +++ b/echobase-services/src/test/java/fr/ifremer/echobase/services/service/importdata/MooringCommonsImportServiceIT.java @@ -0,0 +1,71 @@ +/* + * #%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% + */ +package fr.ifremer.echobase.services.service.importdata; + +import com.google.common.collect.Iterables; +import fr.ifremer.echobase.entities.data.Mooring; +import fr.ifremer.echobase.services.ImportDataFixtures; +import fr.ifremer.echobase.services.service.importdata.configurations.MooringCommonsImportConfiguration; + +import java.io.IOException; + +/** + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 + */ +public class MooringCommonsImportServiceIT extends AbstractImportDataServiceIT<MooringCommonsImportConfiguration> { + + public MooringCommonsImportServiceIT() { + super(1); + } + + @Override + public ImportDataFixtures getImportDataFixture() { + return ImportDataFixtures.IMPORT_DATA_ECHOBASE_NO_DATA; + } + + @Override + protected String[] getImportPath(String filename) { + return new String[]{"/import-data", "mooring", filename}; + } + + @Override + protected MooringCommonsImportConfiguration createConfiguration() throws IOException { + MooringCommonsImportConfiguration conf = new MooringCommonsImportConfiguration(getLocale()); + prepareInputFile(conf.getMooringFile(), getImportPath("mooring.csv.gz")); + return conf; + } + + @Override + protected ImportDataService.MooringCommonsImportDataAction newAction() throws IOException { + return new ImportDataService.MooringCommonsImportDataAction(); + } + + @Override + protected void assertAfertImport(ImportDataResult<MooringCommonsImportConfiguration> result) throws IOException { + int nbMooring = fixtures.NB_MOORING(); + + ImportDataFileResult importDataFileResult = Iterables.get(result.getImportResults(), 0); + assertCsvImportResultPerEntity(importDataFileResult, Mooring.class, nbMooring, 0, nbMooring); + assertCsvImportResult0(importDataFileResult, nbMooring); + } + +} diff --git a/echobase-services/src/test/resources/import-data/mooring/mooring.csv.gz b/echobase-services/src/test/resources/import-data/mooring/mooring.csv.gz new file mode 100644 index 0000000..183636c Binary files /dev/null and b/echobase-services/src/test/resources/import-data/mooring/mooring.csv.gz differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.