Commit e2811ace authored by Andy Wilkinson's avatar Andy Wilkinson

Improve testing of optional schema and data scripts

See gh-25487
parent 5758a5aa
......@@ -29,6 +29,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
/**
* Tests for {@link ScriptDataSourceInitializer}.
......@@ -72,6 +73,40 @@ class ScriptDataSourceInitializerTests {
assertThat(initializer.initializeDatabase()).isTrue();
}
@Test
void whenNoScriptsExistAtASchemaLocationThenInitializationFails() {
DataSourceInitializationSettings settings = new DataSourceInitializationSettings();
settings.setSchemaLocations(Arrays.asList("does-not-exist.sql"));
ScriptDataSourceInitializer initializer = createInitializer(settings);
assertThatIllegalStateException().isThrownBy(initializer::initializeDatabase)
.withMessage("No schema scripts found at location 'does-not-exist.sql'");
}
@Test
void whenNoScriptsExistAtADataLocationThenInitializationFails() {
DataSourceInitializationSettings settings = new DataSourceInitializationSettings();
settings.setDataLocations(Arrays.asList("does-not-exist.sql"));
ScriptDataSourceInitializer initializer = createInitializer(settings);
assertThatIllegalStateException().isThrownBy(initializer::initializeDatabase)
.withMessage("No data scripts found at location 'does-not-exist.sql'");
}
@Test
void whenNoScriptsExistAtAnOptionalSchemaLocationThenInitializationSucceeds() {
DataSourceInitializationSettings settings = new DataSourceInitializationSettings();
settings.setSchemaLocations(Arrays.asList("optional:does-not-exist.sql"));
ScriptDataSourceInitializer initializer = createInitializer(settings);
assertThat(initializer.initializeDatabase()).isFalse();
}
@Test
void whenNoScriptsExistAtAnOptionalDataLocationThenInitializationSucceeds() {
DataSourceInitializationSettings settings = new DataSourceInitializationSettings();
settings.setDataLocations(Arrays.asList("optional:does-not-exist.sql"));
ScriptDataSourceInitializer initializer = createInitializer(settings);
assertThat(initializer.initializeDatabase()).isFalse();
}
private ScriptDataSourceInitializer createInitializer(DataSourceInitializationSettings settings) {
return new ScriptDataSourceInitializer(this.dataSource, settings);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment