[New] Added environment variable to override DB host for tests
This commit is contained in:
parent
0d6da250bd
commit
b4fb7438e7
|
@ -129,6 +129,10 @@ public abstract class DbConnectionBuilder {
|
|||
String host = tmp.substring(0, tmp.indexOf('/'));
|
||||
String dbName = tmp.substring(tmp.indexOf('/'));
|
||||
String hostOverride = System.getProperty(PROP_DB_HOST_OVERRIDE);
|
||||
|
||||
if (host.equals(hostOverride))
|
||||
return dbUrl;
|
||||
|
||||
logger.warn("[" + realm + "] Replacing db host " + host + " with override " + hostOverride);
|
||||
dbUrl = "jdbc:postgresql://" + hostOverride + dbName;
|
||||
logger.warn("[" + realm + "] DB URL is now " + dbUrl);
|
||||
|
|
|
@ -16,10 +16,12 @@
|
|||
package li.strolch.persistence.postgresql.dao.test;
|
||||
|
||||
import static java.util.Comparator.comparing;
|
||||
import static li.strolch.db.DbConstants.PROP_DB_HOST_OVERRIDE;
|
||||
import static li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler.SCRIPT_PREFIX_ARCHIVE;
|
||||
import static li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler.SCRIPT_PREFIX_STROLCH;
|
||||
import static li.strolch.persistence.postgresql.dao.test.CachedDaoTest.*;
|
||||
import static li.strolch.runtime.StrolchConstants.DEFAULT_REALM;
|
||||
import static li.strolch.runtime.configuration.DbConnectionBuilder.overridePostgresqlHost;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -64,28 +66,32 @@ public class DbSchemaCreationTest {
|
|||
logger.info("Trying to create DB schema for " + scriptPrefix);
|
||||
logger.info("");
|
||||
|
||||
String dbUrl = DB_URL;
|
||||
if (System.getProperties().containsKey(PROP_DB_HOST_OVERRIDE))
|
||||
dbUrl = overridePostgresqlHost(DbSchemaCreationTest.class.getSimpleName(), dbUrl);
|
||||
|
||||
DbSchemaVersionCheck dbCheck = new DbSchemaVersionCheck(scriptPrefix, PostgreSqlPersistenceHandler.class, true,
|
||||
true, true);
|
||||
|
||||
try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD)) {
|
||||
try (Connection con = DriverManager.getConnection(dbUrl, DB_USERNAME, DB_PASSWORD)) {
|
||||
|
||||
// CREATE 0.1.0
|
||||
dbCheck.createSchema(con, DEFAULT_REALM, Version.valueOf("0.1.0"));
|
||||
|
||||
File scriptsD = new File("src/main/resources");
|
||||
File[] scriptFiles = scriptsD
|
||||
.listFiles(f -> f.getName().startsWith(scriptPrefix) && f.getName().endsWith("_initial.sql"));
|
||||
File[] scriptFiles = scriptsD.listFiles(
|
||||
f -> f.getName().startsWith(scriptPrefix) && f.getName().endsWith("_initial.sql"));
|
||||
assertNotNull(scriptFiles);
|
||||
Arrays.sort(scriptFiles, comparing(File::getName));
|
||||
for (File scriptFile : scriptFiles) {
|
||||
|
||||
String name = scriptFile.getName();
|
||||
String versionS = name
|
||||
.substring((scriptPrefix + "_db_schema_").length(), name.length() - "_initial.sql".length());
|
||||
String versionS = name.substring((scriptPrefix + "_db_schema_").length(),
|
||||
name.length() - "_initial.sql".length());
|
||||
Version version = Version.valueOf(versionS);
|
||||
logger.info("Creating Version " + version);
|
||||
|
||||
dropSchema(DbSchemaCreationTest.class.getSimpleName(), scriptPrefix, DB_URL, DB_USERNAME, DB_PASSWORD);
|
||||
dropSchema(DbSchemaCreationTest.class.getSimpleName(), scriptPrefix, dbUrl, DB_USERNAME, DB_PASSWORD);
|
||||
|
||||
// CREATE
|
||||
dbCheck.createSchema(con, DEFAULT_REALM, version);
|
||||
|
@ -93,7 +99,7 @@ public class DbSchemaCreationTest {
|
|||
|
||||
} catch (SQLException e) {
|
||||
String msg = "Failed to open DB connection to URL {0} due to: {1}"; //$NON-NLS-1$
|
||||
msg = MessageFormat.format(msg, DB_URL, e.getMessage());
|
||||
msg = MessageFormat.format(msg, dbUrl, e.getMessage());
|
||||
throw new DbException(msg, e);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,10 +15,12 @@
|
|||
*/
|
||||
package li.strolch.persistence.postgresql.dao.test;
|
||||
|
||||
import static li.strolch.db.DbConstants.PROP_DB_HOST_OVERRIDE;
|
||||
import static li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler.SCRIPT_PREFIX_ARCHIVE;
|
||||
import static li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler.SCRIPT_PREFIX_STROLCH;
|
||||
import static li.strolch.persistence.postgresql.dao.test.CachedDaoTest.*;
|
||||
import static li.strolch.runtime.StrolchConstants.DEFAULT_REALM;
|
||||
import static li.strolch.runtime.configuration.DbConnectionBuilder.overridePostgresqlHost;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
|
@ -43,8 +45,10 @@ public class DbSchemaMigrationTest {
|
|||
|
||||
@BeforeClass
|
||||
public static void beforeClass() throws Exception {
|
||||
dropSchema(DbSchemaMigrationTest.class.getSimpleName(), SCRIPT_PREFIX_ARCHIVE, DB_URL, DB_USERNAME, DB_PASSWORD);
|
||||
dropSchema(DbSchemaMigrationTest.class.getSimpleName(), SCRIPT_PREFIX_STROLCH, DB_URL, DB_USERNAME, DB_PASSWORD);
|
||||
dropSchema(DbSchemaMigrationTest.class.getSimpleName(), SCRIPT_PREFIX_ARCHIVE, DB_URL, DB_USERNAME,
|
||||
DB_PASSWORD);
|
||||
dropSchema(DbSchemaMigrationTest.class.getSimpleName(), SCRIPT_PREFIX_STROLCH, DB_URL, DB_USERNAME,
|
||||
DB_PASSWORD);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -60,27 +64,31 @@ public class DbSchemaMigrationTest {
|
|||
logger.info("Trying to migrate DB schema from 0.1.0 upwards...");
|
||||
logger.info("");
|
||||
|
||||
String dbUrl = DB_URL;
|
||||
if (System.getProperties().containsKey(PROP_DB_HOST_OVERRIDE))
|
||||
dbUrl = overridePostgresqlHost(DbSchemaCreationTest.class.getSimpleName(), dbUrl);
|
||||
|
||||
// first clear DB
|
||||
dropSchema(DbSchemaMigrationTest.class.getSimpleName(), scriptPrefix, DB_URL, DB_USERNAME, DB_PASSWORD);
|
||||
dropSchema(DbSchemaMigrationTest.class.getSimpleName(), scriptPrefix, dbUrl, DB_USERNAME, DB_PASSWORD);
|
||||
|
||||
DbSchemaVersionCheck dbCheck = new DbSchemaVersionCheck(scriptPrefix, PostgreSqlPersistenceHandler.class, true,
|
||||
true, true);
|
||||
|
||||
try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD)) {
|
||||
try (Connection con = DriverManager.getConnection(dbUrl, DB_USERNAME, DB_PASSWORD)) {
|
||||
|
||||
// CREATE 0.1.0
|
||||
Version currentVersion = Version.valueOf("0.1.0");
|
||||
dbCheck.createSchema(con, DEFAULT_REALM, currentVersion);
|
||||
|
||||
Version expectedDbVersion = DbSchemaVersionCheck
|
||||
.getExpectedDbVersion(scriptPrefix, PostgreSqlPersistenceHandler.class);
|
||||
Version expectedDbVersion = DbSchemaVersionCheck.getExpectedDbVersion(scriptPrefix,
|
||||
PostgreSqlPersistenceHandler.class);
|
||||
|
||||
// MIGRATE
|
||||
dbCheck.migrateSchema(con, DEFAULT_REALM, currentVersion, expectedDbVersion);
|
||||
|
||||
} catch (SQLException e) {
|
||||
String msg = "Failed to open DB connection to URL {0} due to: {1}"; //$NON-NLS-1$
|
||||
msg = MessageFormat.format(msg, DB_URL, e.getMessage());
|
||||
msg = MessageFormat.format(msg, dbUrl, e.getMessage());
|
||||
throw new DbException(msg, e);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package li.strolch.command;
|
||||
|
||||
import static li.strolch.db.DbConstants.PROP_DB_HOST_OVERRIDE;
|
||||
import static li.strolch.runtime.configuration.DbConnectionBuilder.overridePostgresqlHost;
|
||||
import static li.strolch.service.test.AbstractRealmServiceTest.*;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.containsString;
|
||||
|
@ -49,7 +51,11 @@ public abstract class AbstractRealmCommandTest {
|
|||
@Before
|
||||
public void beforeClass() throws Exception {
|
||||
|
||||
dropSchema("jdbc:postgresql://localhost/cacheduserdb", "cacheduser", "test");
|
||||
String dbUrl = "jdbc:postgresql://localhost/cacheduserdb";
|
||||
if (System.getProperties().containsKey(PROP_DB_HOST_OVERRIDE))
|
||||
dbUrl = overridePostgresqlHost(AbstractRealmCommandTest.class.getSimpleName(), dbUrl);
|
||||
|
||||
dropSchema(dbUrl, "cacheduser", "test");
|
||||
|
||||
File rootPath = new File(RUNTIME_PATH);
|
||||
File configSrc = new File(CONFIG_SRC);
|
||||
|
@ -127,8 +133,7 @@ public abstract class AbstractRealmCommandTest {
|
|||
private Command command;
|
||||
|
||||
/**
|
||||
* @param container
|
||||
* @param tx
|
||||
*
|
||||
*/
|
||||
public FailCommandFacade(ComponentContainer container, StrolchTransaction tx, Command command) {
|
||||
super(tx);
|
||||
|
|
Loading…
Reference in New Issue