|
|
|
|
@ -36,33 +36,32 @@ import static org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType.
@@ -36,33 +36,32 @@ import static org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType.
|
|
|
|
|
*/ |
|
|
|
|
class EmbeddedDatabaseBuilderTests { |
|
|
|
|
|
|
|
|
|
private final EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader( |
|
|
|
|
getClass())); |
|
|
|
|
private final EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass())); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void addDefaultScripts() { |
|
|
|
|
doTwice(() -> { |
|
|
|
|
EmbeddedDatabase db = new EmbeddedDatabaseBuilder()//
|
|
|
|
|
.addDefaultScripts()//
|
|
|
|
|
.build(); |
|
|
|
|
EmbeddedDatabase db = new EmbeddedDatabaseBuilder() |
|
|
|
|
.addDefaultScripts() |
|
|
|
|
.build(); |
|
|
|
|
assertDatabaseCreatedAndShutdown(db); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void addScriptWithBogusFileName() { |
|
|
|
|
assertThatExceptionOfType(CannotReadScriptException.class).isThrownBy( |
|
|
|
|
new EmbeddedDatabaseBuilder().addScript("bogus.sql")::build); |
|
|
|
|
assertThatExceptionOfType(CannotReadScriptException.class) |
|
|
|
|
.isThrownBy(new EmbeddedDatabaseBuilder().addScript("bogus.sql")::build); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void addScript() { |
|
|
|
|
doTwice(() -> { |
|
|
|
|
EmbeddedDatabase db = builder//
|
|
|
|
|
.addScript("db-schema.sql")//
|
|
|
|
|
.addScript("db-test-data.sql")//
|
|
|
|
|
.build(); |
|
|
|
|
EmbeddedDatabase db = builder |
|
|
|
|
.addScript("db-schema.sql") |
|
|
|
|
.addScript("db-test-data.sql") |
|
|
|
|
.build(); |
|
|
|
|
assertDatabaseCreatedAndShutdown(db); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
@ -70,9 +69,9 @@ class EmbeddedDatabaseBuilderTests {
@@ -70,9 +69,9 @@ class EmbeddedDatabaseBuilderTests {
|
|
|
|
|
@Test |
|
|
|
|
void addScripts() { |
|
|
|
|
doTwice(() -> { |
|
|
|
|
EmbeddedDatabase db = builder//
|
|
|
|
|
.addScripts("db-schema.sql", "db-test-data.sql")//
|
|
|
|
|
.build(); |
|
|
|
|
EmbeddedDatabase db = builder |
|
|
|
|
.addScripts("db-schema.sql", "db-test-data.sql") |
|
|
|
|
.build(); |
|
|
|
|
assertDatabaseCreatedAndShutdown(db); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
@ -80,9 +79,9 @@ class EmbeddedDatabaseBuilderTests {
@@ -80,9 +79,9 @@ class EmbeddedDatabaseBuilderTests {
|
|
|
|
|
@Test |
|
|
|
|
void addScriptsWithDefaultCommentPrefix() { |
|
|
|
|
doTwice(() -> { |
|
|
|
|
EmbeddedDatabase db = builder//
|
|
|
|
|
.addScripts("db-schema-comments.sql", "db-test-data.sql")//
|
|
|
|
|
.build(); |
|
|
|
|
EmbeddedDatabase db = builder |
|
|
|
|
.addScripts("db-schema-comments.sql", "db-test-data.sql") |
|
|
|
|
.build(); |
|
|
|
|
assertDatabaseCreatedAndShutdown(db); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
@ -90,10 +89,10 @@ class EmbeddedDatabaseBuilderTests {
@@ -90,10 +89,10 @@ class EmbeddedDatabaseBuilderTests {
|
|
|
|
|
@Test |
|
|
|
|
void addScriptsWithCustomCommentPrefix() { |
|
|
|
|
doTwice(() -> { |
|
|
|
|
EmbeddedDatabase db = builder//
|
|
|
|
|
.addScripts("db-schema-custom-comments.sql", "db-test-data.sql")//
|
|
|
|
|
.setCommentPrefix("~")//
|
|
|
|
|
.build(); |
|
|
|
|
EmbeddedDatabase db = builder |
|
|
|
|
.addScripts("db-schema-custom-comments.sql", "db-test-data.sql") |
|
|
|
|
.setCommentPrefix("~") |
|
|
|
|
.build(); |
|
|
|
|
assertDatabaseCreatedAndShutdown(db); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
@ -101,11 +100,11 @@ class EmbeddedDatabaseBuilderTests {
@@ -101,11 +100,11 @@ class EmbeddedDatabaseBuilderTests {
|
|
|
|
|
@Test |
|
|
|
|
void addScriptsWithCustomBlockComments() { |
|
|
|
|
doTwice(() -> { |
|
|
|
|
EmbeddedDatabase db = builder//
|
|
|
|
|
.addScripts("db-schema-block-comments.sql", "db-test-data.sql")//
|
|
|
|
|
.setBlockCommentStartDelimiter("{*")//
|
|
|
|
|
.setBlockCommentEndDelimiter("*}")//
|
|
|
|
|
.build(); |
|
|
|
|
EmbeddedDatabase db = builder |
|
|
|
|
.addScripts("db-schema-block-comments.sql", "db-test-data.sql") |
|
|
|
|
.setBlockCommentStartDelimiter("{*") |
|
|
|
|
.setBlockCommentEndDelimiter("*}") |
|
|
|
|
.build(); |
|
|
|
|
assertDatabaseCreatedAndShutdown(db); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
@ -113,10 +112,10 @@ class EmbeddedDatabaseBuilderTests {
@@ -113,10 +112,10 @@ class EmbeddedDatabaseBuilderTests {
|
|
|
|
|
@Test |
|
|
|
|
void setTypeToH2() { |
|
|
|
|
doTwice(() -> { |
|
|
|
|
EmbeddedDatabase db = builder//
|
|
|
|
|
.setType(H2)//
|
|
|
|
|
.addScripts("db-schema.sql", "db-test-data.sql")//
|
|
|
|
|
.build(); |
|
|
|
|
EmbeddedDatabase db = builder |
|
|
|
|
.setType(H2) |
|
|
|
|
.addScripts("db-schema.sql", "db-test-data.sql") |
|
|
|
|
.build(); |
|
|
|
|
assertDatabaseCreatedAndShutdown(db); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
@ -132,7 +131,7 @@ class EmbeddedDatabaseBuilderTests {
@@ -132,7 +131,7 @@ class EmbeddedDatabaseBuilderTests {
|
|
|
|
|
super.configureConnectionProperties(properties, databaseName); |
|
|
|
|
} |
|
|
|
|
})) |
|
|
|
|
.addScripts("db-schema.sql", "db-test-data.sql")//
|
|
|
|
|
.addScripts("db-schema.sql", "db-test-data.sql") |
|
|
|
|
.build(); |
|
|
|
|
assertDatabaseCreatedAndShutdown(db); |
|
|
|
|
}); |
|
|
|
|
@ -141,18 +140,17 @@ class EmbeddedDatabaseBuilderTests {
@@ -141,18 +140,17 @@ class EmbeddedDatabaseBuilderTests {
|
|
|
|
|
@Test |
|
|
|
|
void setTypeToDerbyAndIgnoreFailedDrops() { |
|
|
|
|
doTwice(() -> { |
|
|
|
|
EmbeddedDatabase db = builder//
|
|
|
|
|
.setType(DERBY)//
|
|
|
|
|
.ignoreFailedDrops(true)//
|
|
|
|
|
.addScripts("db-schema-derby-with-drop.sql", "db-test-data.sql").build(); |
|
|
|
|
EmbeddedDatabase db = builder |
|
|
|
|
.setType(DERBY) |
|
|
|
|
.ignoreFailedDrops(true) |
|
|
|
|
.addScripts("db-schema-derby-with-drop.sql", "db-test-data.sql").build(); |
|
|
|
|
assertDatabaseCreatedAndShutdown(db); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void createSameSchemaTwiceWithoutUniqueDbNames() { |
|
|
|
|
EmbeddedDatabase db1 = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass())) |
|
|
|
|
.addScripts("db-schema-without-dropping.sql").build(); |
|
|
|
|
EmbeddedDatabase db1 = builder.addScripts("db-schema-without-dropping.sql").build(); |
|
|
|
|
try { |
|
|
|
|
assertThatExceptionOfType(ScriptStatementFailedException.class).isThrownBy(() -> |
|
|
|
|
new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass())).addScripts("db-schema-without-dropping.sql").build()); |
|
|
|
|
@ -164,20 +162,20 @@ class EmbeddedDatabaseBuilderTests {
@@ -164,20 +162,20 @@ class EmbeddedDatabaseBuilderTests {
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void createSameSchemaTwiceWithGeneratedUniqueDbNames() { |
|
|
|
|
EmbeddedDatabase db1 = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass()))//
|
|
|
|
|
.addScripts("db-schema-without-dropping.sql", "db-test-data.sql")//
|
|
|
|
|
.generateUniqueName(true)//
|
|
|
|
|
.build(); |
|
|
|
|
EmbeddedDatabase db1 = builder |
|
|
|
|
.addScripts("db-schema-without-dropping.sql", "db-test-data.sql") |
|
|
|
|
.generateUniqueName(true) |
|
|
|
|
.build(); |
|
|
|
|
|
|
|
|
|
JdbcTemplate template1 = new JdbcTemplate(db1); |
|
|
|
|
assertNumRowsInTestTable(template1, 1); |
|
|
|
|
template1.update("insert into T_TEST (NAME) values ('Sam')"); |
|
|
|
|
assertNumRowsInTestTable(template1, 2); |
|
|
|
|
|
|
|
|
|
EmbeddedDatabase db2 = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass()))//
|
|
|
|
|
.addScripts("db-schema-without-dropping.sql", "db-test-data.sql")//
|
|
|
|
|
.generateUniqueName(true)//
|
|
|
|
|
.build(); |
|
|
|
|
EmbeddedDatabase db2 = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass())) |
|
|
|
|
.addScripts("db-schema-without-dropping.sql", "db-test-data.sql") |
|
|
|
|
.generateUniqueName(true) |
|
|
|
|
.build(); |
|
|
|
|
assertDatabaseCreated(db2); |
|
|
|
|
|
|
|
|
|
db1.shutdown(); |
|
|
|
|
|