Auto-configure Flyway and Liquibase when using DataJpaTest

Closes gh-5716
This commit is contained in:
Andy Wilkinson
2016-05-10 10:13:17 +01:00
parent 0a765e36f1
commit c1a2a77cbe
2 changed files with 28 additions and 1 deletions

View File

@@ -24,8 +24,10 @@ import java.lang.annotation.Target;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration; import org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration; import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration;
@@ -35,6 +37,7 @@ import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfigu
* this annotation directly. * this annotation directly.
* *
* @author Phillip Webb * @author Phillip Webb
* @author Andy Wilkinson
* @since 1.4.0 * @since 1.4.0
* @see DataJpaTest * @see DataJpaTest
*/ */
@@ -44,7 +47,8 @@ import org.springframework.boot.autoconfigure.transaction.TransactionAutoConfigu
@ImportAutoConfiguration({ HibernateJpaAutoConfiguration.class, @ImportAutoConfiguration({ HibernateJpaAutoConfiguration.class,
JpaRepositoriesAutoConfiguration.class, TransactionAutoConfiguration.class, JpaRepositoriesAutoConfiguration.class, TransactionAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class,
DataSourceAutoConfiguration.class }) DataSourceAutoConfiguration.class, FlywayAutoConfiguration.class,
LiquibaseAutoConfiguration.class })
public @interface AutoConfigureDataJpa { public @interface AutoConfigureDataJpa {
} }

View File

@@ -25,6 +25,10 @@ import org.junit.runner.RunWith;
import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.boot.autoconfigure.condition.ConditionEvaluationReport;
import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration;
import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@@ -34,6 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* Integration tests for {@link DataJpaTest}. * Integration tests for {@link DataJpaTest}.
* *
* @author Phillip Webb * @author Phillip Webb
* @author Andy Wilkinson
*/ */
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@DataJpaTest @DataJpaTest
@@ -92,4 +97,22 @@ public class DataJpaTestIntegrationTests {
this.applicationContext.getBean(ExampleComponent.class); this.applicationContext.getBean(ExampleComponent.class);
} }
@Test
public void flywayAutoConfigurationWasImported() {
ConditionEvaluationReport report = ConditionEvaluationReport
.get((ConfigurableListableBeanFactory) this.applicationContext
.getAutowireCapableBeanFactory());
assertThat(report.getConditionAndOutcomesBySource().keySet())
.contains(FlywayAutoConfiguration.class.getName());
}
@Test
public void liquibaseAutoConfigurationWasImported() {
ConditionEvaluationReport report = ConditionEvaluationReport
.get((ConfigurableListableBeanFactory) this.applicationContext
.getAutowireCapableBeanFactory());
assertThat(report.getConditionAndOutcomesBySource().keySet())
.contains(LiquibaseAutoConfiguration.class.getName());
}
} }