mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#2686 - [ebean-test] Allow docker configuration options to be at ebean.test.X as well as ebean.test.<platform>.X
This commit is contained in:
@@ -63,7 +63,7 @@ class Config {
|
||||
}
|
||||
|
||||
void setDefaultPort(int defaultPort) {
|
||||
String val = getPlatformKey("port", null);
|
||||
String val = getKey("port", null);
|
||||
if (val != null) {
|
||||
port = Integer.parseInt(val);
|
||||
} else {
|
||||
@@ -225,7 +225,7 @@ class Config {
|
||||
}
|
||||
|
||||
void setUrl(String urlPattern) {
|
||||
String val = getPlatformKey("url", urlPattern);
|
||||
String val = getKey("url", urlPattern);
|
||||
val = val.replace("${host}", host());
|
||||
val = val.replace("${port}", String.valueOf(port));
|
||||
val = val.replace("${databaseName}", databaseName);
|
||||
@@ -245,7 +245,7 @@ class Config {
|
||||
}
|
||||
|
||||
void setDriver(String driver) {
|
||||
this.driver = getPlatformKey("driver", driver);
|
||||
this.driver = getKey("driver", driver);
|
||||
}
|
||||
|
||||
void setPasswordDefault() {
|
||||
@@ -259,7 +259,7 @@ class Config {
|
||||
private String deriveDbSchema() {
|
||||
String dbSchema = properties.getProperty("ebean.dbSchema", config.getDbSchema());
|
||||
dbSchema = properties.getProperty("ebean.test.dbSchema", dbSchema);
|
||||
return getPlatformKey("schema", dbSchema);
|
||||
return getKey("schema", dbSchema);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -267,7 +267,7 @@ class Config {
|
||||
*/
|
||||
void setUsernameDefault() {
|
||||
this.schema = first(deriveDbSchema());
|
||||
String defaultValue = schema != null ? schema : getPlatformKey("databaseName", this.databaseName);
|
||||
String defaultValue = schema != null ? schema : getKey("databaseName", this.databaseName);
|
||||
this.username = getKey("username", defaultValue);
|
||||
}
|
||||
|
||||
@@ -308,11 +308,11 @@ class Config {
|
||||
}
|
||||
|
||||
void setUsername(String username) {
|
||||
this.username = getPlatformKey("username", username);
|
||||
this.username = getKey("username", username);
|
||||
}
|
||||
|
||||
void setDatabaseName(String databaseName) {
|
||||
this.databaseName = getPlatformKey("databaseName", databaseName);
|
||||
this.databaseName = getKey("databaseName", databaseName);
|
||||
}
|
||||
|
||||
boolean isUseDocker() {
|
||||
@@ -321,7 +321,7 @@ class Config {
|
||||
}
|
||||
|
||||
void setDockerVersion(String version) {
|
||||
String val = getPlatformKey("version", version);
|
||||
String val = getKey("version", version);
|
||||
dockerProperties.setProperty(dockerKey("version"), val);
|
||||
if (containerDropCreate) {
|
||||
dockerProperties.setProperty(dockerKey("startMode"), "dropCreate");
|
||||
@@ -334,16 +334,16 @@ class Config {
|
||||
}
|
||||
|
||||
void setDockerContainerName(String containerName) {
|
||||
dockerProperties.setProperty(dockerKey("containerName"), getPlatformKey("containerName", containerName));
|
||||
dockerProperties.setProperty(dockerKey("containerName"), getKey("containerName", containerName));
|
||||
}
|
||||
|
||||
void setDockerImage(String defaultImage) {
|
||||
dockerProperties.setProperty(dockerKey("image"), getPlatformKey("image", defaultImage));
|
||||
dockerProperties.setProperty(dockerKey("image"), getKey("image", defaultImage));
|
||||
}
|
||||
|
||||
void setExtensions(String defaultValue) {
|
||||
// ebean.test.postgres.extensions=hstore,pgcrypto
|
||||
String val = getPlatformKey("extensions", defaultValue);
|
||||
String val = getKey("extensions", defaultValue);
|
||||
if (val != null) {
|
||||
dockerProperties.setProperty(dockerKey("extensions"), trimExtensions(val));
|
||||
}
|
||||
@@ -363,7 +363,7 @@ class Config {
|
||||
return properties.getProperty("ebean.test." + platform + "." + key, defaultValue);
|
||||
}
|
||||
|
||||
private String getKey(String key, String defaultValue) {
|
||||
String getKey(String key, String defaultValue) {
|
||||
defaultValue = properties.getProperty("ebean.test." + key, defaultValue);
|
||||
return properties.getProperty("ebean.test." + platform + "." + key, defaultValue);
|
||||
}
|
||||
@@ -402,7 +402,7 @@ class Config {
|
||||
}
|
||||
}
|
||||
for (String key : DOCKER_PLATFORM_PARAMS) {
|
||||
String val = getPlatformKey(key, null);
|
||||
String val = getKey(key, null);
|
||||
val = properties.getProperty("docker." + platform + "." + key, val);
|
||||
if (val != null) {
|
||||
dockerProperties.setProperty(dockerKey(key), val);
|
||||
@@ -442,7 +442,7 @@ class Config {
|
||||
* Pretty much only for SqlServer as we have the 2 platforms we need to choose from.
|
||||
*/
|
||||
void setDatabasePlatformName() {
|
||||
String databasePlatformName = getPlatformKey("databasePlatformName", null);
|
||||
String databasePlatformName = getKey("databasePlatformName", null);
|
||||
if (databasePlatformName != null) {
|
||||
setProperty("ebean." + db + ".databasePlatformName", databasePlatformName);
|
||||
}
|
||||
|
||||
@@ -14,22 +14,21 @@ import java.util.Properties;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
|
||||
public class ConfigTest {
|
||||
class ConfigTest {
|
||||
|
||||
@BeforeAll
|
||||
public static void before() {
|
||||
static void before() {
|
||||
// so that RunOnceMarker is not set when running these tests
|
||||
DbOffline.setPlatform(Platform.H2);
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void after() {
|
||||
static void after() {
|
||||
DbOffline.reset();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void trimExtensions() {
|
||||
|
||||
void trimExtensions() {
|
||||
Config config = new Config("db", "db", "db", new DatabaseConfig());
|
||||
|
||||
assertThat(config.trimExtensions("a,b")).isEqualTo("a,b");
|
||||
@@ -38,8 +37,7 @@ public class ConfigTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void extraDbProperties_basic() {
|
||||
|
||||
void extraDbProperties_basic() {
|
||||
Properties p = new Properties();
|
||||
p.setProperty("ebean.test.extraDb", "other");
|
||||
|
||||
@@ -61,8 +59,7 @@ public class ConfigTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void extraDbProperties_basic_extraDb_dbName() {
|
||||
|
||||
void extraDbProperties_basic_extraDb_dbName() {
|
||||
Properties p = new Properties();
|
||||
p.setProperty("ebean.test.extraDb.dbName", "other");
|
||||
|
||||
@@ -84,8 +81,7 @@ public class ConfigTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void extraDbProperties_withOptions() {
|
||||
|
||||
void extraDbProperties_withOptions() {
|
||||
Properties p = new Properties();
|
||||
p.setProperty("ebean.test.extraDb", "other1");
|
||||
p.setProperty("ebean.test.extraDb.dbName", "other_db_name");
|
||||
@@ -112,10 +108,8 @@ public class ConfigTest {
|
||||
assertThat(p.getProperty("datasource.other_db_name.url")).isEqualTo("other_url");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void extraDbProperties_withExtraDbOptions() {
|
||||
|
||||
void extraDbProperties_withExtraDbOptions() {
|
||||
Properties sourceProperties = new Properties();
|
||||
sourceProperties.setProperty("ebean.test.dbName", "main");
|
||||
sourceProperties.setProperty("ebean.test.extraDb.dbName", "central");
|
||||
@@ -144,12 +138,10 @@ public class ConfigTest {
|
||||
|
||||
Properties centralProps = serverConfig.getProperties();
|
||||
assertThat(centralProps.getProperty("datasource.central.username")).isEqualTo("central");
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ignoreDockerShutdown() {
|
||||
|
||||
void ignoreDockerShutdown() {
|
||||
Properties sourceProperties = new Properties();
|
||||
DatabaseConfig serverConfig = new DatabaseConfig();
|
||||
serverConfig.loadFromProperties(sourceProperties);
|
||||
@@ -162,8 +154,7 @@ public class ConfigTest {
|
||||
|
||||
@Disabled
|
||||
@Test
|
||||
public void run_local_only_ignoreDockerShutdown() {
|
||||
|
||||
void run_local_only_ignoreDockerShutdown() {
|
||||
Properties sourceProperties = new Properties();
|
||||
DatabaseConfig serverConfig = new DatabaseConfig();
|
||||
serverConfig.loadFromProperties(sourceProperties);
|
||||
@@ -174,8 +165,7 @@ public class ConfigTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ignoreDockerShutdown_viaProperties() {
|
||||
|
||||
void ignoreDockerShutdown_viaProperties() {
|
||||
Properties sourceProperties = new Properties();
|
||||
sourceProperties.setProperty("ebean.test.localDevelopment", "./src/test/resources/logback-test.xml");
|
||||
|
||||
@@ -186,4 +176,53 @@ public class ConfigTest {
|
||||
assertThat(config.ignoreDockerShutdown()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void readImage_fromPlatform() {
|
||||
Properties p = new Properties();
|
||||
p.setProperty("ebean.test.postgres.image", "bar/bar");
|
||||
Config config = createConfig(p);
|
||||
|
||||
String val = config.getPlatformKey("image", "someDefault");
|
||||
assertThat(val).isEqualTo("bar/bar");
|
||||
|
||||
val = config.getKey("image", "someDefault");
|
||||
assertThat(val).isEqualTo("bar/bar");
|
||||
}
|
||||
|
||||
@Test
|
||||
void readImage_fromTopLevel() {
|
||||
Properties p = new Properties();
|
||||
p.setProperty("ebean.test.image", "bar/bar");
|
||||
p.setProperty("ebean.test.notPlatform.image", "bar/bar");
|
||||
Config config = createConfig(p);
|
||||
|
||||
String val = config.getPlatformKey("image", "someDefault");
|
||||
assertThat(val).isEqualTo("someDefault");
|
||||
|
||||
val = config.getKey("image", "someDefault");
|
||||
assertThat(val).isEqualTo("bar/bar");
|
||||
}
|
||||
|
||||
@Test
|
||||
void readImage_expect_platformSpecificWins() {
|
||||
Properties p = new Properties();
|
||||
p.setProperty("ebean.test.image", "foo/foo");
|
||||
p.setProperty("ebean.test.postgres.image", "bar/bar");
|
||||
|
||||
Config config = createConfig(p);
|
||||
|
||||
String val = config.getPlatformKey("image", "someDefault");
|
||||
assertThat(val).isEqualTo("bar/bar");
|
||||
|
||||
val = config.getKey("image", "someDefault");
|
||||
assertThat(val).isEqualTo("bar/bar");
|
||||
}
|
||||
|
||||
private Config createConfig(Properties p) {
|
||||
DatabaseConfig serverConfig = new DatabaseConfig();
|
||||
serverConfig.setName("scOther");
|
||||
serverConfig.loadFromProperties(p);
|
||||
return new Config("db_name", "postgres", "db_name", serverConfig);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user