This is an automated email from the git hooks/post-receive script. New commit to branch support/3.13.x in repository tutti. See http://git.codelutin.com/tutti.git commit 86dcc9082fe53173510181a9156ab03c1914f399 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Mar 11 09:02:42 2015 +0100 simplify test data resource --- .../tutti/persistence/test/DatabaseResource.java | 109 ++++++++++++++------- .../config/TuttiPersistenceConfigTest.java | 2 +- .../ifremer/tutti/service/ServiceDbResource.java | 20 +++- 3 files changed, 92 insertions(+), 39 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 4b447b5..f1959cd 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 @@ -129,6 +129,11 @@ public class DatabaseResource implements TestRule { this.writeDb = writeDb; } + public boolean withDb() { + return dbName!=null; + } + + public TuttiConfiguration getConfig() { return config; } @@ -172,15 +177,14 @@ public class DatabaseResource implements TestRule { Class<?> testClass; public void prepareConfig(ApplicationConfig applicationConfig, - File resourceDirectory, - boolean noConf) { + File resourceDirectory) { TuttiConfiguration.getDefaultApplicationConfig(applicationConfig); applicationConfig.setDefaultOption(TuttiConfigurationOption.DATA_DIRECTORY.getKey(), new File(resourceDirectory, "data").getAbsolutePath()); - if (!writeDb && noConf) { + if (!writeDb) { // set tutti.persistence.db.directory File dbDirectory = FileUtil.getFileFromPaths(new File("src"), "test", "data", dbName); @@ -218,7 +222,9 @@ public class DatabaseResource implements TestRule { testClass = description.getTestClass(); - boolean defaultDbName = StringUtils.isEmpty(dbName); + boolean withDb = withDb(); + + boolean defaultDbName = withDb && StringUtils.isEmpty(dbName); if (defaultDbName) { dbName = "db"; @@ -235,35 +241,81 @@ public class DatabaseResource implements TestRule { ConverterUtil.deregister(); ConverterUtil.initConverters(); - // check that config file is in classpath (avoid to find out why it does not works...) - String configFilename = writeDb ? - "tutti-test-write" : - "tutti-test-read"; - if (!defaultDbName) { - configFilename += "-" + dbName; + ApplicationConfig applicationConfig= createApplicationConfig(defaultDbName); + + prepareConfig(applicationConfig, resourceDirectory); + + applicationConfig.parse(); + + config = new TuttiConfiguration(applicationConfig); + TuttiConfiguration.setInstance(config); + + if (withDb) { + prepareDb(); + } + + config.initConfig(); + + if (withDb) { + if (log.isInfoEnabled()) { + log.info("Use db: " + config.getJdbcUrl()); + } + } else { + if (log.isInfoEnabled()) { + log.info("No db configured."); + } + } + + if (beanFactoryReferenceLocation != null) { + TuttiPersistenceServiceLocator.initTutti( + beanFactoryReferenceLocation, + beanRefFactoryReferenceId); } - configFilename += ".properties"; - InputStream resourceAsStream = getClass().getResourceAsStream("/" + configFilename); + } - ApplicationConfig applicationConfig; + protected ApplicationConfig createApplicationConfig(boolean defaultDbName) { - boolean noConfig = resourceAsStream == null; + ApplicationConfig applicationConfig=null; + if (withDb()) { - if (noConfig) { - if (log.isWarnEnabled()) { - log.warn("No configuration file found in classpath at " + configFilename); + String configFilename = writeDb ? + "tutti-test-write" : + "tutti-test-read"; + if (!defaultDbName) { + configFilename += "-" + dbName; + } + + configFilename += ".properties"; + InputStream resourceAsStream = getClass().getResourceAsStream("/" + configFilename); + + if (resourceAsStream!=null) { + + if (log.isInfoEnabled()) { + log.info("Use configuration file found in classpath at " + configFilename); + } + + IOUtils.closeQuietly(resourceAsStream); + + applicationConfig = new ApplicationConfig(configFilename); + + } + + } + + if (applicationConfig==null) { + + if (log.isInfoEnabled()) { + log.info("Use default configuration, with no configuration from class-path"); } applicationConfig = new ApplicationConfig(); - } else { - applicationConfig = new ApplicationConfig(configFilename); } - prepareConfig(applicationConfig, resourceDirectory, noConfig); + return applicationConfig; - applicationConfig.parse(); + } + + protected void prepareDb() throws IOException { - config = new TuttiConfiguration(applicationConfig); - TuttiConfiguration.setInstance(config); File db; if (writeDb) { @@ -315,17 +367,6 @@ public class DatabaseResource implements TestRule { Preconditions.checkState("true".equals(readonly), "readonly property must be at true value in read mode test in db confg: " + dbConfig); } - config.initConfig(); - - if (log.isInfoEnabled()) { - log.info("Use db: " + config.getJdbcUrl()); - } - - if (beanFactoryReferenceLocation != null) { - TuttiPersistenceServiceLocator.initTutti( - beanFactoryReferenceLocation, - beanRefFactoryReferenceId); - } } protected final Set<File> toDetroy = Sets.newHashSet(); 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 fdcdc5e..770ee04 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 @@ -186,7 +186,7 @@ public class TuttiPersistenceConfigTest { ApplicationConfig applicationConfig = new ApplicationConfig(configFile.getAbsolutePath()); DatabaseResource databaseResource = DatabaseResource.noDb(); - databaseResource.prepareConfig(applicationConfig, datadirectory, true); + databaseResource.prepareConfig(applicationConfig, datadirectory); applicationConfig.parse(); 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 8f5f3ce..ca0b1a3 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 @@ -137,8 +137,7 @@ public class ServiceDbResource extends DatabaseResource { @Override public void prepareConfig(ApplicationConfig applicationConfig, - File resourceDirectory, - boolean noConf) { + File resourceDirectory) { TuttiConfiguration.getDefaultApplicationConfig(applicationConfig); @@ -146,7 +145,7 @@ public class ServiceDbResource extends DatabaseResource { TuttiConfigurationOption.BASEDIR.getKey(), resourceDirectory.getAbsolutePath()); - if (!isWriteDb() && noConf) { + if (withDb() && !isWriteDb()) { // set tutti.persistence.db.directory File dbDirectory = FileUtil.getFileFromPaths(new File("src"), "test", "data", getDbName()); @@ -181,7 +180,7 @@ public class ServiceDbResource extends DatabaseResource { public static ServiceDbResource noDb() { return new ServiceDbResource( - "", "beanRefFactoryWitNoDb.xml", "TuttiBeanRefFactoryWithNoDb"); + null, "beanRefFactoryWitNoDb.xml", "TuttiBeanRefFactoryWithNoDb"); } protected ServiceDbResource(String dbName) { @@ -302,6 +301,19 @@ public class ServiceDbResource extends DatabaseResource { return dataContext; } + public DataContext loadContext(String programId) { + + DataContext dataContext = new DataContext(); + PersistenceService persistenceService = getServiceContext().getService(PersistenceService.class); + + Program program = persistenceService.getProgram(programId); + Assert.assertNotNull(program); + + dataContext.program = program; + + return dataContext; + } + public void openDataContext() { TuttiServiceContext serviceContext = getServiceContext(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.