This is an automated email from the git hooks/post-receive script. New commit to branch feature/7463-3 in repository observe. See http://git.codelutin.com/observe.git commit d3f56f79e8a45e0775363cbd4126803d8eb083dd Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Tue Sep 8 16:18:32 2015 +0200 optimisation des tests topia (refs #7463) --- .../services/ApplicationContextResource.java | 29 ++++++++++++++++++++ .../ird/observe/services/DataSourceResource.java | 31 ++++++++++++++++------ .../services/service/AbstractServiceTopiaTest.java | 30 ++++++++++++++++----- 3 files changed, 75 insertions(+), 15 deletions(-) diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/ApplicationContextResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/ApplicationContextResource.java index fb086e0..4cc0ace 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/ApplicationContextResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/ApplicationContextResource.java @@ -35,6 +35,8 @@ public class ApplicationContextResource implements TestRule { private File dataBaseDirectory; + private File dataBaseCommonRefDirectory; + private Path temporaryDirectoryRoot; public ApplicationContextResource() { @@ -128,6 +130,14 @@ public class ApplicationContextResource implements TestRule { this.dataBaseDirectory = dataBaseDirectory; } + public File getDataBaseCommonRefDirectory() { + return dataBaseCommonRefDirectory; + } + + public void setDataBaseCommonRefDirectory(File dataBaseCommonRefDirectory) { + this.dataBaseCommonRefDirectory = dataBaseCommonRefDirectory; + } + public ObserveDataSourceConfigurationTopiaH2 createDataSourceConfigurationH2(Class<?> testClass, String dbName) { ObserveDataSourceConfigurationTopiaH2 configurationTopiaH2 = new ObserveDataSourceConfigurationTopiaH2(); @@ -147,6 +157,25 @@ public class ApplicationContextResource implements TestRule { } + public ObserveDataSourceConfigurationTopiaH2 createCommonsDataSourceConfigurationH2(String dbName) { + + ObserveDataSourceConfigurationTopiaH2 configurationTopiaH2 = new ObserveDataSourceConfigurationTopiaH2(); + + File localDbFile = new File(dataBaseCommonRefDirectory, dbName); + + if (log.isInfoEnabled()) { + log.info("db directory: " + localDbFile); + } + configurationTopiaH2.setLabel("Commons database#" + dbName); + configurationTopiaH2.setUsername(TestHelper.TEST_H2_LOGIN); + configurationTopiaH2.setPassword(TestHelper.TEST_H2_PASSWORD); + configurationTopiaH2.setDirectory(localDbFile); + configurationTopiaH2.setDbName("obstuna"); + configurationTopiaH2.setAutoMigrate(true); + return configurationTopiaH2; + + } + public void assertSchemaCreated(ObserveTopiaApplicationContext topiaApplicationContext) { try (ObserveTopiaPersistenceContext topiaPersistenceContext = topiaApplicationContext.newPersistenceContext()) { diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java b/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java index 3f83804..b9e39d7 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/DataSourceResource.java @@ -77,6 +77,19 @@ public class DataSourceResource implements TestRule { } + public void createCommonsDataSourceFromScript(String scriptPath) throws IOException, IncompatibleDataSourceCreateConfigurationException, DataSourceCreateWithNoReferentialImportException { + + byte[] databaseToImportContent = getDatabaseToImportContent(scriptPath); + + ObserveDataSourceConfigurationTopiaH2 dataSourceConfiguration = applicationContextResource.createCommonsDataSourceConfigurationH2("localdb"); + + DataSourceService dataSourceService = applicationContextResource.newService(dataSourceConfiguration, DataSourceService.class); + DataSourceCreateConfigurationDto createConfiguration = new DataSourceCreateConfigurationDto(); + createConfiguration.setImportDatabase(databaseToImportContent); + dataSourceService.create(dataSourceConfiguration, createConfiguration); + + } + public ObserveTopiaPersistenceContext newPersistenceContext() { ObserveTopiaPersistenceContext persistenceContext = getTopiaApplicationContext().newPersistenceContext(); @@ -146,21 +159,23 @@ public class DataSourceResource implements TestRule { applicationContextResource.setTemporaryDirectoryRoot(temporaryDirectoryRoot); - if (testNamesChangeDataBase.contains(methodName)) { - - File dataBaseDirectory = new File (testDirectory, scriptName); + File commonsDir = TestHelper.getCommonsDir(); - applicationContextResource.setDataBaseDirectory(dataBaseDirectory); + File dataBaseCommonsRefDirectory = new File (commonsDir, scriptName); - } else { + applicationContextResource.setDataBaseCommonRefDirectory(dataBaseCommonsRefDirectory); - File commonsDir = TestHelper.getCommonsDir(); + //if (testNamesChangeDataBase.contains(methodName)) { - File dataBaseDirectory = new File (commonsDir, scriptName); + File dataBaseDirectory = new File (testDirectory, scriptName); applicationContextResource.setDataBaseDirectory(dataBaseDirectory); - } +// } else { +// +// applicationContextResource.setDataBaseDirectory(dataBaseCommonsRefDirectory); +// +// } dataSourceConfiguration = applicationContextResource.createDataSourceConfigurationH2(testClass, "localdb"); diff --git a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java index 4b5bf6d..727ba7a 100644 --- a/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java +++ b/observe-services-topia/src/test/java/fr/ird/observe/services/service/AbstractServiceTopiaTest.java @@ -13,7 +13,9 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.FileUtil; +import java.io.File; import java.nio.file.Files; import java.util.Set; @@ -42,18 +44,32 @@ public abstract class AbstractServiceTopiaTest { @Before public void setUp() throws Exception { - if (! applicationContextResource.getDataBaseDirectory().isDirectory()) { + File dataBaseDirectory = applicationContextResource.getDataBaseDirectory(); - if (log.isInfoEnabled()) { - log.info("create Database on " + applicationContextResource.getDataBaseDirectory() + " from script " + getScriptName()); + if (! dataBaseDirectory.isDirectory()) { + + File dataBaseCommonRefDirectory = applicationContextResource.getDataBaseCommonRefDirectory(); + + if (!dataBaseCommonRefDirectory.isDirectory()) { + + if (log.isInfoEnabled()) { + log.info("create Database on " + dataBaseDirectory + " from script " + getScriptName()); + } + + Files.createDirectories(dataBaseDirectory.toPath()); + + // Create database from script + String scriptPath = applicationContextResource.getScriptPath(getScriptName(), H2DataSourceMigration.V_4_0_1); + + dataSourceResource.createCommonsDataSourceFromScript(scriptPath); } - Files.createDirectories(applicationContextResource.getDataBaseDirectory().toPath()); + if (! dataBaseCommonRefDirectory.equals(dataBaseDirectory)) { - // Create database from script - String scriptPath = applicationContextResource.getScriptPath(getScriptName(), H2DataSourceMigration.V_4_0_1); + FileUtil.copyAndRenameRecursively(dataBaseCommonRefDirectory, dataBaseDirectory, false, (String) null, (String) null, false); + + } - dataSourceResource.createDataSourceFromScript(scriptPath); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.