diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSource.java b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSource.java similarity index 100% rename from dbmigration/source/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSource.java rename to dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSource.java diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSourceFactory.java b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSourceFactory.java similarity index 100% rename from dbmigration/source/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSourceFactory.java rename to dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationDataSourceFactory.java diff --git a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java similarity index 76% rename from dbmigration/source/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java rename to dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java index 4e7eafe3929bb10a384c5dfc30f42d3bbcd3bf2f..57ae7d686acb4aca8ff7b128ccbc485f78f0a8c5 100644 --- a/dbmigration/source/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java +++ b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationTestAbstract.java @@ -42,6 +42,8 @@ import ch.systemsx.cisd.dbmigration.postgresql.DumpPreparator; public abstract class SqlMigrationTestAbstract { + private static final int CHECK_NUMBER_OF_MIGRATIONS = 4; + private File sqlScriptOutputDirectory; protected abstract String getSqlScriptInputDirectory(); @@ -57,61 +59,53 @@ public abstract class SqlMigrationTestAbstract @BeforeTest(alwaysRun = true) public void beforeTest() throws Exception { - File dir = new File(getSqlScriptOutputDirectory()); - if (!dir.exists()) + sqlScriptOutputDirectory = new File(getSqlScriptOutputDirectory()); + if (!sqlScriptOutputDirectory.exists()) { - dir.mkdir(); + sqlScriptOutputDirectory.mkdir(); } } @AfterTest(alwaysRun = true) public void afterTest() throws Exception { - File dir = new File(getSqlScriptOutputDirectory()); - if (dir.exists()) + if (sqlScriptOutputDirectory != null && sqlScriptOutputDirectory.exists()) { - FileUtils.deleteDirectory(dir); + FileUtils.deleteDirectory(sqlScriptOutputDirectory); } } - public void test_migration(String firstVersion, String newestVersion) throws Exception + public void test_migration(String newestVersionString) throws Exception { - int firstVersionInt = Integer.valueOf(firstVersion); - int newestVersionInt = Integer.valueOf(newestVersion); + SqlMigrationVersion newestVersion = new SqlMigrationVersion(newestVersionString); + SqlMigrationVersion firstVersion = + new SqlMigrationVersion(newestVersion.getVersionInt() - CHECK_NUMBER_OF_MIGRATIONS); DatabaseConfigurationContext migrationContext = null; DatabaseConfigurationContext scratchContext = null; try { - + // create first version of the migration database migrationContext = createMigrationDatabaseContext(true); - scratchContext = createScratchDatabaseContext(); - - // create first version of migration database DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(migrationContext, - firstVersion); + firstVersion.getVersionString()); + // migrate the migration database to the newest version migrationContext.setCreateFromScratch(false); + DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(migrationContext, + newestVersion.getVersionString()); + dumpDatabaseSchema(migrationContext, getMigratedDatabaseSchemaFile()); - for (int version = firstVersionInt + 1; version <= newestVersionInt; version++) - { - String versionStr = String.format("%03d", version); - - // migrate to the next version - DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(migrationContext, - versionStr); - dumpDatabaseSchema(migrationContext, getMigratedDatabaseSchemaFile()); - - // create next version from scratch - DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(scratchContext, - versionStr); - dumpDatabaseSchema(scratchContext, getScratchDatabaseSchemaFile()); + // create the scratch database with the newest version + scratchContext = createScratchDatabaseContext(); + DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(scratchContext, + newestVersion.getVersionString()); + dumpDatabaseSchema(scratchContext, getScratchDatabaseSchemaFile()); - // check whether migrated and scratch version are equal - assertDatabaseSchemasEqual(getMigratedDatabaseSchemaFile(), - getScratchDatabaseSchemaFile()); - } + // check migration and scratch databases are equal + assertDatabaseSchemasEqual(getMigratedDatabaseSchemaFile(), + getScratchDatabaseSchemaFile()); } finally { diff --git a/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationVersion.java b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationVersion.java new file mode 100644 index 0000000000000000000000000000000000000000..10f5b79a88c4d3fd46e55cf8dd78fcf76c5b6814 --- /dev/null +++ b/dbmigration/sourceTest/java/ch/systemsx/cisd/dbmigration/migration/SqlMigrationVersion.java @@ -0,0 +1,72 @@ +/* + * Copyright 2011 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.dbmigration.migration; + +/** + * @author pkupczyk + */ +public class SqlMigrationVersion +{ + + private int versionInt; + + public SqlMigrationVersion(String versionStr) + { + setVersionString(versionStr); + } + + public SqlMigrationVersion(int versionInt) + { + setVersionInt(versionInt); + } + + public String getVersionString() + { + return String.format("%03d", versionInt); + } + + public int getVersionInt() + { + return versionInt; + } + + private void setVersionString(String versionStr) + { + if (versionStr == null) + { + throw new IllegalArgumentException("Version was null"); + } + try + { + setVersionInt(Integer.valueOf(versionStr)); + } catch (NumberFormatException e) + { + throw new IllegalArgumentException("Version had incorrect format", e); + } + + } + + private void setVersionInt(int versionInt) + { + if (versionInt < 1) + { + throw new IllegalArgumentException("Version was < 1"); + } + this.versionInt = versionInt; + } + +} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SqlDataMigrationTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SqlDataMigrationTest.java new file mode 100644 index 0000000000000000000000000000000000000000..e21be7107d51aa95385d5e965e89af692a374689 --- /dev/null +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SqlDataMigrationTest.java @@ -0,0 +1,106 @@ +/* + * Copyright 2007 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.server.dataaccess.db; + +import java.io.File; +import java.io.FileFilter; +import java.io.PrintWriter; + +import org.testng.annotations.Test; + +import ch.systemsx.cisd.common.db.ISqlScriptExecutor; +import ch.systemsx.cisd.common.db.SqlUnitTestRunner; +import ch.systemsx.cisd.dbmigration.DBMigrationEngine; +import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; +import ch.systemsx.cisd.dbmigration.IDAOFactory; +import ch.systemsx.cisd.dbmigration.migration.SqlMigrationDataSourceFactory; +import ch.systemsx.cisd.dbmigration.postgresql.PostgreSQLDAOFactory; + +/** + * Test cases for database migration. + * + * @author Franz-Josef Elmer + */ +public final class SqlDataMigrationTest +{ + private static final String ORIGINAL_SQL_SOURCE = "source/sql"; + + private static final String BASE_DATA_FOLDER_TEMPLATE = "sourceTest/sql/%s/"; + + private String getDataFolder(final DatabaseConfigurationContext context) + { + return String.format(BASE_DATA_FOLDER_TEMPLATE, context.getDatabaseEngineCode()) + + DatabaseVersionHolder.getDatabaseVersion() + "/"; + } + + private String getTestDataFolder(final DatabaseConfigurationContext context) + { + return String.format(BASE_DATA_FOLDER_TEMPLATE, context.getDatabaseEngineCode()) + + "test_database_for_migration/"; + } + + private IDAOFactory createDAOFactory(final DatabaseConfigurationContext configurationContext) + { + return new PostgreSQLDAOFactory(configurationContext); + } + + @Test(groups = + { "slow" }) + /* runs unit tests written in SQL. The tests should check if the migration went fine. */ + public final void testMigration() throws Exception + { + final DatabaseConfigurationContext configurationContext = + DatabaseCreationUtil.createDatabaseConfigurationContext("test_migration"); + final File migrationFolder = + new File(getDataFolder(configurationContext) + SqlUnitTestRunner.MIGRATION_FOLDER); + final File[] folders = migrationFolder.listFiles(new FileFilter() + { + public boolean accept(File pathname) + { + return pathname.isDirectory() && pathname.getName().startsWith(".") == false; + } + }); + if (folders != null && folders.length != 0) + { + for (final File folder : folders) + { + final String databaseVersion = folder.getName(); + System.out.println("Test migration from database version " + databaseVersion + + " to " + DatabaseVersionHolder.getDatabaseVersion()); + try + { + configurationContext.setCreateFromScratch(true); + configurationContext.initDataSourceFactory(new SqlMigrationDataSourceFactory()); + configurationContext.setScriptFolder(getTestDataFolder(configurationContext)); + DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider( + configurationContext, databaseVersion); + configurationContext.closeConnections(); + configurationContext.setCreateFromScratch(false); + configurationContext.setScriptFolder(ORIGINAL_SQL_SOURCE); + DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider( + configurationContext, DatabaseVersionHolder.getDatabaseVersion()); + final ISqlScriptExecutor executor = + createDAOFactory(configurationContext).getSqlScriptExecutor(); + new SqlUnitTestRunner(executor, new PrintWriter(System.out, true)).run(folder); + } finally + { + configurationContext.closeConnections(); + } + } + } + } +} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SqlMigrationTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SqlMigrationTest.java new file mode 100644 index 0000000000000000000000000000000000000000..27dea2fd94d2f8f899d7636a39967f1f54f34806 --- /dev/null +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SqlMigrationTest.java @@ -0,0 +1,50 @@ +/* + * Copyright 2011 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.server.dataaccess.db; + +import java.io.File; + +import org.testng.annotations.Test; + +import ch.systemsx.cisd.dbmigration.migration.SqlMigrationTestAbstract; + +/** + * @author pkupczyk + */ +public class SqlMigrationTest extends SqlMigrationTestAbstract +{ + + @Test(groups = + { "slow" }) + public void test_migration() throws Exception + { + test_migration(DatabaseVersionHolder.getDatabaseVersion()); + } + + @Override + protected String getSqlScriptInputDirectory() + { + return "source" + File.separator + "sql"; + } + + @Override + protected String getSqlScriptOutputDirectory() + { + return "targets" + File.separator + "unit-test-wd"; + } + +} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SqlUnitMigrationTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SqlUnitMigrationTest.java deleted file mode 100644 index a836709c26a707a2d78732ea0419a8380dcc600e..0000000000000000000000000000000000000000 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/SqlUnitMigrationTest.java +++ /dev/null @@ -1,362 +0,0 @@ -/* - * Copyright 2007 ETH Zuerich, CISD - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ch.systemsx.cisd.openbis.generic.server.dataaccess.db; - -import static org.testng.AssertJUnit.assertNotNull; - -import java.io.File; -import java.io.FileFilter; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; - -import javax.sql.DataSource; - -import org.hibernate.SessionFactory; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.context.support.AbstractApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.testng.AssertJUnit; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import cz.startnet.utils.pgdiff.PgDiff; -import cz.startnet.utils.pgdiff.PgDiffArguments; - -import ch.systemsx.cisd.common.db.ISqlScriptExecutor; -import ch.systemsx.cisd.common.db.SqlUnitTestRunner; -import ch.systemsx.cisd.common.logging.LogInitializer; -import ch.systemsx.cisd.dbmigration.DBMigrationEngine; -import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; -import ch.systemsx.cisd.dbmigration.IDAOFactory; -import ch.systemsx.cisd.dbmigration.IDataSourceFactory; -import ch.systemsx.cisd.dbmigration.postgresql.DumpPreparator; -import ch.systemsx.cisd.dbmigration.postgresql.PostgreSQLDAOFactory; - -/** - * Test cases for database migration. - * - * @author Franz-Josef Elmer - */ -public final class SqlUnitMigrationTest -{ - private static final String ORIGINAL_SQL_SOURCE = "source/sql"; - - private static final String BASE_DATA_FOLDER_TEMPLATE = "sourceTest/sql/%s/"; - - private static final File unitTestRootDirectory = new File("targets" + File.separator - + "unit-test-wd"); - - private String getDataFolder(final DatabaseConfigurationContext context) - { - return String.format(BASE_DATA_FOLDER_TEMPLATE, context.getDatabaseEngineCode()) - + DatabaseVersionHolder.getDatabaseVersion() + "/"; - } - - private String getTestDataFolder(final DatabaseConfigurationContext context) - { - return String.format(BASE_DATA_FOLDER_TEMPLATE, context.getDatabaseEngineCode()) - + "test_database_for_migration/"; - } - - private static final class MyDataSource implements DataSource, DisposableBean - { - private final String driver; - - private final String url; - - private final String owner; - - private final String password; - - private Connection connection; - - MyDataSource(final String driver, final String url, final String owner, - final String password) - { - this.driver = driver; - this.url = url; - this.owner = owner; - this.password = password; - } - - public Connection getConnection() throws SQLException - { - if (connection != null && connection.isClosed() || connection == null) - { - try - { - Class.forName(driver); - } catch (final ClassNotFoundException ex) - { - throw new SQLException("Couldn't load driver " + driver); - } - final Connection c = DriverManager.getConnection(url, owner, password); - connection = c; - } - return connection; - } - - public Connection getConnection(final String username, final String pw) throws SQLException - { - if (owner.equals(username) && password.equals(pw)) - { - return getConnection(); - } - throw new SQLException("Forbidden"); - } - - public int getLoginTimeout() throws SQLException - { - return 0; - } - - public void setLoginTimeout(final int timeout) throws SQLException - { - throw new UnsupportedOperationException("setLoginTimeout"); - } - - public PrintWriter getLogWriter() - { - throw new UnsupportedOperationException("getLogWriter"); - } - - public void setLogWriter(final PrintWriter pw) throws SQLException - { - throw new UnsupportedOperationException("setLogWriter"); - } - - public void destroy() throws SQLException - { - if (connection != null) - { - connection.close(); - connection = null; - } - } - - @Override - public String toString() - { - return "MyDataSource[" + driver + ", " + url + ", " + owner + "]"; - } - - // NOTE: the following methods are needed because we compile with JDK 6 on Hudson - @SuppressWarnings("unused") - public boolean isWrapperFor(Class<?> arg0) throws SQLException - { - return false; - } - - @SuppressWarnings("unused") - public <T> T unwrap(Class<T> arg0) throws SQLException - { - return null; - } - } - - private static final IDataSourceFactory DATA_SOURCE_FACTORY = new IDataSourceFactory() - { - public DataSource createDataSource(String driver, String url, String owner, - String password) - { - return new MyDataSource(driver, url, owner, password); - } - - public void setMaxActive(int maxActive) - { - } - - public void setMaxIdle(int maxIdle) - { - } - - public void setMaxWait(long maxWait) - { - } - }; - - @BeforeClass(alwaysRun = true) - public void beforeClass() throws Exception - { - LogInitializer.init(); - } - - private final static AbstractApplicationContext createBeanFactoryFrom( - final String... contextFileNames) - { - System.setProperty("database.kind", "test_migration"); - System.setProperty("database.create-from-scratch", "false"); - System.setProperty("authorization-component-factory", "no-authorization"); - System.setProperty("script-folder", "source"); - System.setProperty("hibernate.search.index-mode", "NO_INDEX"); - final ClassPathXmlApplicationContext applicationContext = - new ClassPathXmlApplicationContext(contextFileNames, true); - return applicationContext; - } - - private IDAOFactory createDAOFactory(final DatabaseConfigurationContext configurationContext) - { - return new PostgreSQLDAOFactory(configurationContext); - } - - @Test(groups = - { "slow" }) - /* runs unit tests written in SQL. The tests should check if the migration went fine. */ - public final void testMigration() throws Exception - { - final DatabaseConfigurationContext configurationContext = - DatabaseCreationUtil.createDatabaseConfigurationContext("test_migration"); - final File migrationFolder = - new File(getDataFolder(configurationContext) + SqlUnitTestRunner.MIGRATION_FOLDER); - final File[] folders = migrationFolder.listFiles(new FileFilter() - { - public boolean accept(File pathname) - { - return pathname.isDirectory() && pathname.getName().startsWith(".") == false; - } - }); - if (folders != null && folders.length != 0) - { - for (final File folder : folders) - { - final String databaseVersion = folder.getName(); - System.out.println("Test migration from database version " + databaseVersion - + " to " + DatabaseVersionHolder.getDatabaseVersion()); - try - { - configurationContext.setCreateFromScratch(true); - configurationContext.initDataSourceFactory(DATA_SOURCE_FACTORY); - configurationContext.setScriptFolder(getTestDataFolder(configurationContext)); - DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider( - configurationContext, databaseVersion); - configurationContext.closeConnections(); - configurationContext.setCreateFromScratch(false); - configurationContext.setScriptFolder(ORIGINAL_SQL_SOURCE); - DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider( - configurationContext, DatabaseVersionHolder.getDatabaseVersion()); - final ISqlScriptExecutor executor = - createDAOFactory(configurationContext).getSqlScriptExecutor(); - new SqlUnitTestRunner(executor, new PrintWriter(System.out, true)).run(folder); - } finally - { - configurationContext.closeConnections(); - } - } - } - } - - @Test(groups = - { "slow" }) - /* - * This test checks if the schema of a current database version is equal to the one which was - * migrated from the version 18 to the current version with existing migration scripts. If it is - * not a case, then the test will fail and will show what is missing in the last migration - * script. Note that this test can be used to generate new migration scripts! When you introduce - * a new database version, just create an empty migration script and run this test. - */ - public final void testMigrationFrom034() throws Exception - { - final String databaseKind = "test_migration"; - final DatabaseConfigurationContext configurationContext = - createDatabaseContext(databaseKind); - AbstractApplicationContext applicationContext = null; - unitTestRootDirectory.mkdirs(); - File migratedSchemaFile = null; - try - { - final String initialVersion = "034"; - DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(configurationContext, - initialVersion); - applicationContext = createBeanFactoryFrom("applicationContext.xml"); - final SessionFactory sessionFactory = - (SessionFactory) applicationContext.getBean("hibernate-session-factory"); - assertNotNull(sessionFactory); - // dump the migrated database schema to the file - migratedSchemaFile = new File(unitTestRootDirectory, "migratedDatabaseSchema.sql"); - dumpSchema(configurationContext, migratedSchemaFile); - } finally - { - configurationContext.closeConnections(); - if (applicationContext != null) - { - applicationContext.close(); - } - } - // need to close connections before dumping schema - final File originalSchemaFile = dumpOriginalSchema(); - - final String schemasDelta = compareSchemas(migratedSchemaFile, originalSchemaFile); - final String errorMsg = - "The migrated schema is not identical to the original one. " - + "Consider attaching following script to the migration file."; - AssertJUnit.assertEquals(errorMsg, "", schemasDelta); - } - - // create an original database from scratch and dump its schema to the file - private static File dumpOriginalSchema() - { - final DatabaseConfigurationContext originalDatabaseContext = - createDatabaseContext("test_migration_original"); - try - { - originalDatabaseContext.setScriptFolder(ORIGINAL_SQL_SOURCE); - DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(originalDatabaseContext, - DatabaseVersionHolder.getDatabaseVersion()); - final File originalSchemaFile = - new File(unitTestRootDirectory, "currentDatabaseSchema.sql"); - dumpSchema(originalDatabaseContext, originalSchemaFile); - return originalSchemaFile; - } finally - { - originalDatabaseContext.closeConnections(); - } - } - - private static String compareSchemas(final File currentSchemaFile, final File expectedSchemaFile) - { - final StringWriter writer = new StringWriter(); - final PgDiffArguments arguments = new PgDiffArguments(); - arguments.setOldDumpFile(currentSchemaFile.getAbsolutePath()); - arguments.setNewDumpFile(expectedSchemaFile.getAbsolutePath()); - arguments.setIgnoreFunctionWhitespace(true); - arguments.setIgnoreStartWith(true); - PgDiff.createDiff(new PrintWriter(writer), arguments); - final String delta = writer.toString(); - return delta == null ? "" : delta; - } - - private static DatabaseConfigurationContext createDatabaseContext(final String databaseKind) - { - final DatabaseConfigurationContext configurationContext = - DatabaseCreationUtil.createDatabaseConfigurationContext(databaseKind); - configurationContext.setCreateFromScratch(true); - configurationContext.initDataSourceFactory(DATA_SOURCE_FACTORY); - return configurationContext; - } - - private static void dumpSchema(final DatabaseConfigurationContext configurationContext, - final File migratedSchemaFile) - { - final boolean ok = - DumpPreparator.createDatabaseSchemaDump(configurationContext.getDatabaseName(), - migratedSchemaFile); - AssertJUnit.assertTrue("dump of db failed: " + configurationContext.getDatabaseName(), ok); - } -} diff --git a/screening/.classpath b/screening/.classpath index feeaf400b2f5bbfb67e144836b1483cf3c8be2ec..6f019629832df744e6cf131343703c74ba0bfc0c 100644 --- a/screening/.classpath +++ b/screening/.classpath @@ -43,7 +43,6 @@ <classpathentry kind="lib" path="/libraries/bioformats/bioformats.jar" sourcepath="/libraries/bioformats/bioformats_src.zip"/> <classpathentry kind="lib" path="/libraries/cisd-image_readers/cisd-image_readers-bioformats.jar" sourcepath="/image_readers/source/java"/> <classpathentry kind="lib" path="/libraries/cisd-image_readers/cisd-image_readers.jar" sourcepath="/image_readers/source/java"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JVM 1.6"/> <classpathentry kind="lib" path="/libraries/commons-collections/commons-collections.jar" sourcepath="/libraries/commons-collections/src.jar"/> <classpathentry kind="lib" path="/libraries/junit/junit.jar" sourcepath="/libraries/junit/src.jar"/> <classpathentry kind="lib" path="/libraries/gwt-image-loader/gwt-image-loader.jar"/> @@ -52,5 +51,6 @@ <classpathentry kind="lib" path="/libraries/gwt2.4/validation-api-1.0.0.GA-sources.jar"/> <classpathentry kind="lib" path="/libraries/gwt2.4/validation-api-1.0.0.GA.jar"/> <classpathentry kind="lib" path="/libraries/apgdiff/apgdiff.jar" sourcepath="/libraries/apgdiff/src.zip"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.launching.macosx.MacOSXType/JDK 1.6"/> <classpathentry kind="output" path="targets/www/WEB-INF/classes"/> </classpath> diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/dataaccess/db/ScreeningSqlMigrationTest.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/dataaccess/db/ScreeningSqlMigrationTest.java index 733dd0a5f291dc1cb39d4cb293c57eb15785f95d..c769e1c3345a5464a810876897f109a33fe34330 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/dataaccess/db/ScreeningSqlMigrationTest.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/generic/server/dataaccess/db/ScreeningSqlMigrationTest.java @@ -24,7 +24,7 @@ import ch.systemsx.cisd.dbmigration.migration.SqlMigrationTestAbstract; import ch.systemsx.cisd.openbis.dss.etl.ImagingDatabaseVersionHolder; /** - * Test cases for database migration. + * Test cases for screening database migration. * * @author Piotr Kupczyk */ @@ -36,8 +36,7 @@ public class ScreeningSqlMigrationTest extends SqlMigrationTestAbstract public void test_migration() throws Exception { - test_migration("001", - new ImagingDatabaseVersionHolder().getDatabaseVersion()); + test_migration(new ImagingDatabaseVersionHolder().getDatabaseVersion()); } @Override