This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit aba5af662463d1711dc879e541d9610cf3188037 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 22 14:27:16 2014 +0200 fixes #5804: [EXPORT] erreur export générique à analyser --- .../tutti/persistence/test/DatabaseResource.java | 31 +++++++- .../config/TuttiPersistenceConfigTest.java | 2 +- .../resources/tutti-test-read-dbEmpty.properties | 27 ------- .../src/test/resources/tutti-test-read.properties | 27 ------- .../service/export/generic/CatchExportModel.java | 2 +- .../ifremer/tutti/service/ServiceDbResource.java | 27 ++++++- .../generic/TuttiExportServiceAno5804Test.java | 82 ++++++++++++++++++++++ .../resources/tutti-test-read-dbCGFS.properties | 26 ------- .../resources/tutti-test-read-dbExport.properties | 26 ------- .../resources/tutti-test-read-dbMedits.properties | 25 ------- 10 files changed, 138 insertions(+), 137 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java index 6d6c81f..4b447b5 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/test/DatabaseResource.java @@ -145,6 +145,14 @@ public class DatabaseResource implements TestRule { this.destroyResources = destroyResources; } + public String getDbName() { + return dbName; + } + + public boolean isWriteDb() { + return writeDb; + } + @Override public Statement apply(final Statement base, final Description description) { @@ -164,12 +172,27 @@ public class DatabaseResource implements TestRule { Class<?> testClass; public void prepareConfig(ApplicationConfig applicationConfig, - File resourceDirectory) { + File resourceDirectory, + boolean noConf) { TuttiConfiguration.getDefaultApplicationConfig(applicationConfig); applicationConfig.setDefaultOption(TuttiConfigurationOption.DATA_DIRECTORY.getKey(), new File(resourceDirectory, "data").getAbsolutePath()); + + if (!writeDb && noConf) { + + // set tutti.persistence.db.directory + File dbDirectory = FileUtil.getFileFromPaths(new File("src"), "test", "data", dbName); + + applicationConfig.setDefaultOption(TuttiConfigurationOption.DB_DIRECTORY.getKey(), + dbDirectory.getAbsolutePath()); + + // set tutti.persistence.jdbc.url + applicationConfig.setDefaultOption(TuttiConfigurationOption.JDBC_URL.getKey(), + String.format("jdbc:hsqldb:file:%s/allegro", dbDirectory.getAbsolutePath())); + + } } public File copyClassPathResource(String path, String destinationName) throws IOException { @@ -224,7 +247,9 @@ public class DatabaseResource implements TestRule { ApplicationConfig applicationConfig; - if (resourceAsStream == null) { + boolean noConfig = resourceAsStream == null; + + if (noConfig) { if (log.isWarnEnabled()) { log.warn("No configuration file found in classpath at " + configFilename); } @@ -233,7 +258,7 @@ public class DatabaseResource implements TestRule { applicationConfig = new ApplicationConfig(configFilename); } - prepareConfig(applicationConfig, resourceDirectory); + prepareConfig(applicationConfig, resourceDirectory, noConfig); applicationConfig.parse(); diff --git a/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigTest.java b/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigTest.java index 98e159c..6ded88f 100644 --- a/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigTest.java +++ b/tutti-persistence/src/test/java/fr/ifremer/tutti/persistence/config/TuttiPersistenceConfigTest.java @@ -178,7 +178,7 @@ public class TuttiPersistenceConfigTest { ApplicationConfig applicationConfig = new ApplicationConfig(configFile.getAbsolutePath()); DatabaseResource databaseResource = DatabaseResource.noDb(); - databaseResource.prepareConfig(applicationConfig, datadirectory); + databaseResource.prepareConfig(applicationConfig, datadirectory, true); applicationConfig.parse(); diff --git a/tutti-persistence/src/test/resources/tutti-test-read-dbEmpty.properties b/tutti-persistence/src/test/resources/tutti-test-read-dbEmpty.properties deleted file mode 100644 index 34566b3..0000000 --- a/tutti-persistence/src/test/resources/tutti-test-read-dbEmpty.properties +++ /dev/null @@ -1,27 +0,0 @@ -### -# #%L -# Tutti :: Persistence -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2012 - 2014 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 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>. -# #L% -### -tutti.persistence.db.directory=src/test/dbEmpty -tutti.persistence.jdbc.url=jdbc:hsqldb:file:src/test/dbEmpty/allegro -#tutti.persistence.jdbc.url=jdbc:hsqldb:hsql://localhost/allegro -#tutti.persistence.jdbc.createScript=src/test/dbEmpty/allegro.script diff --git a/tutti-persistence/src/test/resources/tutti-test-read.properties b/tutti-persistence/src/test/resources/tutti-test-read.properties deleted file mode 100644 index 9481c7b..0000000 --- a/tutti-persistence/src/test/resources/tutti-test-read.properties +++ /dev/null @@ -1,27 +0,0 @@ -### -# #%L -# Tutti :: Persistence -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2012 - 2014 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 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>. -# #L% -### -tutti.persistence.db.directory=src/test/db -tutti.persistence.jdbc.url=jdbc:hsqldb:file:src/test/db/allegro -#tutti.persistence.jdbc.url=jdbc:hsqldb:hsql://localhost/allegro -#tutti.persistence.jdbc.createScript=src/test/db/allegro.script diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java index 6ecde0a..f2b077f 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java @@ -205,7 +205,7 @@ public class CatchExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<Catc exportSampleCategory.getSampleWeight(), exportSampleCategory.getSampleComputedWeight()); - if (totalWeight != null && sampleWeight != null) { + if (totalWeight != null && sampleWeight != null && sampleWeight != 0f) { float currentRate = totalWeight / sampleWeight; diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java index 43f0179..03608ee 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/ServiceDbResource.java @@ -46,6 +46,7 @@ import org.junit.runner.Description; import org.nuiton.config.ApplicationConfig; import org.nuiton.i18n.I18n; import org.nuiton.jaxx.application.ApplicationIOUtil; +import org.nuiton.util.FileUtil; import java.io.File; import java.io.IOException; @@ -136,13 +137,28 @@ public class ServiceDbResource extends DatabaseResource { @Override public void prepareConfig(ApplicationConfig applicationConfig, - File resourceDirectory) { + File resourceDirectory, + boolean noConf) { TuttiConfiguration.getDefaultApplicationConfig(applicationConfig); applicationConfig.setDefaultOption( TuttiConfigurationOption.BASEDIR.getKey(), resourceDirectory.getAbsolutePath()); + + if (!isWriteDb() && noConf) { + + // set tutti.persistence.db.directory + File dbDirectory = FileUtil.getFileFromPaths(new File("src"), "test", "data", getDbName()); + + applicationConfig.setDefaultOption(TuttiConfigurationOption.DB_DIRECTORY.getKey(), + dbDirectory.getAbsolutePath()); + + // set tutti.persistence.jdbc.url + applicationConfig.setDefaultOption(TuttiConfigurationOption.JDBC_URL.getKey(), + String.format("jdbc:hsqldb:file:%s/allegro", dbDirectory.getAbsolutePath())); + + } } protected TuttiServiceContext serviceContext; @@ -188,6 +204,15 @@ public class ServiceDbResource extends DatabaseResource { return serviceContext; } + public void loadInternalProtocolFile() { + + File protocolFile = FileUtil.getFileFromPaths(new File("src"), "test", "data", getDbName(), "protocol.tuttiProtocol"); + + getConfig().getApplicationConfig().setOption(TuttiConfigurationOption.DB_PROTOCOL_DIRECTORY.getKey(), protocolFile.getParentFile().getAbsolutePath()); + serviceContext.getDataContext().setProtocolId("protocol"); + + } + public TuttiProtocol loadProtocol(File protocolFile) { Assert.assertTrue(protocolFile.exists()); diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportServiceAno5804Test.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportServiceAno5804Test.java new file mode 100644 index 0000000..f7f827a --- /dev/null +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportServiceAno5804Test.java @@ -0,0 +1,82 @@ +package fr.ifremer.tutti.service.export.generic; + +import com.google.common.io.Files; +import fr.ifremer.tutti.persistence.ProgressionModel; +import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.service.ServiceDbResource; +import fr.ifremer.tutti.service.TuttiServiceContext; +import org.junit.Assert; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Test; + +import java.io.File; + +/** + * Created on 9/22/14. + * + * @author Tony Chemit - chemit@codelutin.com + * @since XXX + */ +public class TuttiExportServiceAno5804Test { + + @ClassRule + public static final ServiceDbResource dbResource = ServiceDbResource.readDb("dbAno5804"); + + + protected TuttiExportService service; + + protected PersistenceService persistenceService; + + protected ServiceDbResource.DataContext dataContext; + + protected ProgressionModel progressionModel; + + protected File dataDirectory; + + public static final String PROGRAM_ID = "CAM-CGFS"; + + public static final String CRUISE_ID = "0"; + + public static final String OPERATION_1_ID = "1"; + + public static final String OPERATION_2_ID = "2"; + + public static final String OPERATION_3_ID = "0"; + + @Before + public void setUp() throws Exception { + + dataDirectory = dbResource.getConfig().getDataDirectory(); + + TuttiServiceContext serviceContext = dbResource.getServiceContext(); + + persistenceService = serviceContext.getService(PersistenceService.class); + + dbResource.loadInternalProtocolFile(); + + dbResource.setCountryInConfig("12"); + dbResource.openDataContext(); + + service = serviceContext.getService(TuttiExportService.class); + + dataContext = dbResource.loadContext(PROGRAM_ID, CRUISE_ID, 3, OPERATION_1_ID, OPERATION_2_ID, OPERATION_3_ID); + + progressionModel = new ProgressionModel(); + progressionModel.setTotal(9); + } + + @Test + public void exportCruise() throws Exception { + + File exportFile = new File(dataDirectory, "exportCruise.zip"); + + Files.createParentDirs(exportFile); + + Assert.assertFalse(exportFile.exists()); + + service.exportCruise(dataContext.cruise.getId(), exportFile, progressionModel); + Assert.assertTrue(exportFile.exists()); + } + +} diff --git a/tutti-service/src/test/resources/tutti-test-read-dbCGFS.properties b/tutti-service/src/test/resources/tutti-test-read-dbCGFS.properties deleted file mode 100644 index 80908fa..0000000 --- a/tutti-service/src/test/resources/tutti-test-read-dbCGFS.properties +++ /dev/null @@ -1,26 +0,0 @@ -### -# #%L -# Tutti :: Service -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2012 - 2014 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 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>. -# #L% -### -tutti.persistence.db.directory=src/test/dbCGFS -tutti.persistence.jdbc.url=jdbc:hsqldb:file:src/test/dbCGFS/allegro -#tutti.persistence.jdbc.url=jdbc:hsqldb:hsql://localhost/allegro diff --git a/tutti-service/src/test/resources/tutti-test-read-dbExport.properties b/tutti-service/src/test/resources/tutti-test-read-dbExport.properties deleted file mode 100644 index 537e3c4..0000000 --- a/tutti-service/src/test/resources/tutti-test-read-dbExport.properties +++ /dev/null @@ -1,26 +0,0 @@ -### -# #%L -# Tutti :: Service -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2012 - 2014 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 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>. -# #L% -### -tutti.persistence.db.directory=src/test/dbExport -tutti.persistence.jdbc.url=jdbc:hsqldb:file:src/test/dbExport/allegro -#tutti.persistence.jdbc.url=jdbc:hsqldb:hsql://localhost/allegro diff --git a/tutti-service/src/test/resources/tutti-test-read-dbMedits.properties b/tutti-service/src/test/resources/tutti-test-read-dbMedits.properties deleted file mode 100644 index de1e8d7..0000000 --- a/tutti-service/src/test/resources/tutti-test-read-dbMedits.properties +++ /dev/null @@ -1,25 +0,0 @@ -### -# #%L -# Tutti :: Service -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2012 - 2014 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 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>. -# #L% -### -tutti.persistence.db.directory=src/test/dbMedits -tutti.persistence.jdbc.url=jdbc:hsqldb:file:src/test/dbMedits/allegro -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.