Commit 5c13b8bf authored by Stephane Nicoll's avatar Stephane Nicoll

Separate custom schema configuration for Liquibase test

Unfortunately, creating the schema in code did not offer the right
condition to reproduce the error scenario. This commit restore the
initial intent, but separating the configuration and cleaning the
created context properly.

See gh-9862
parent 7736cb1d
...@@ -16,12 +16,10 @@ ...@@ -16,12 +16,10 @@
package org.springframework.boot.actuate.endpoint; package org.springframework.boot.actuate.endpoint;
import javax.sql.DataSource;
import liquibase.integration.spring.SpringLiquibase; import liquibase.integration.spring.SpringLiquibase;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration; import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration; import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration;
import org.springframework.boot.test.util.EnvironmentTestUtils; import org.springframework.boot.test.util.EnvironmentTestUtils;
...@@ -29,7 +27,6 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext ...@@ -29,7 +27,6 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.jdbc.core.JdbcTemplate;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
...@@ -52,9 +49,12 @@ public class LiquibaseEndpointTests extends AbstractEndpointTests<LiquibaseEndpo ...@@ -52,9 +49,12 @@ public class LiquibaseEndpointTests extends AbstractEndpointTests<LiquibaseEndpo
@Test @Test
public void invokeWithCustomSchema() throws Exception { public void invokeWithCustomSchema() throws Exception {
this.context.close();
this.context = new AnnotationConfigApplicationContext(); this.context = new AnnotationConfigApplicationContext();
EnvironmentTestUtils.addEnvironment(this.context, EnvironmentTestUtils.addEnvironment(this.context,
"liquibase.default-schema=CUSTOMSCHEMA"); "liquibase.default-schema=CUSTOMSCHEMA",
"spring.datasource.generate-unique-name=true",
"spring.datasource.schema=classpath:/db/create-custom-schema.sql");
this.context.register(CustomSchemaConfig.class); this.context.register(CustomSchemaConfig.class);
this.context.refresh(); this.context.refresh();
assertThat(getEndpointBean().invoke()).hasSize(1); assertThat(getEndpointBean().invoke()).hasSize(1);
...@@ -78,13 +78,18 @@ public class LiquibaseEndpointTests extends AbstractEndpointTests<LiquibaseEndpo ...@@ -78,13 +78,18 @@ public class LiquibaseEndpointTests extends AbstractEndpointTests<LiquibaseEndpo
} }
@Configuration @Configuration
@Import(Config.class) @Import({ DataSourceAutoConfiguration.class, LiquibaseAutoConfiguration.class })
public static class CustomSchemaConfig { public static class CustomSchemaConfig {
@Autowired private final SpringLiquibase liquibase;
public void initializeSchema(DataSource dataSource) {
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); public CustomSchemaConfig(SpringLiquibase liquibase) {
jdbcTemplate.execute("CREATE SCHEMA CUSTOMSCHEMA"); this.liquibase = liquibase;
}
@Bean
public LiquibaseEndpoint endpoint() {
return new LiquibaseEndpoint(this.liquibase);
} }
} }
......
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