|
|
|
|
@ -16,21 +16,21 @@
@@ -16,21 +16,21 @@
|
|
|
|
|
|
|
|
|
|
package org.springframework.boot.autoconfigure.data.jpa; |
|
|
|
|
|
|
|
|
|
import org.junit.After; |
|
|
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
|
|
import org.springframework.boot.autoconfigure.AutoConfigurations; |
|
|
|
|
import org.springframework.boot.autoconfigure.TestAutoConfigurationPackage; |
|
|
|
|
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; |
|
|
|
|
import org.springframework.boot.autoconfigure.data.jpa.city.City; |
|
|
|
|
import org.springframework.boot.autoconfigure.data.jpa.city.CityRepository; |
|
|
|
|
import org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration; |
|
|
|
|
import org.springframework.boot.autoconfigure.jdbc.EmbeddedDataSourceConfiguration; |
|
|
|
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; |
|
|
|
|
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; |
|
|
|
|
import org.springframework.boot.test.context.runner.WebApplicationContextRunner; |
|
|
|
|
import org.springframework.context.annotation.Configuration; |
|
|
|
|
import org.springframework.data.geo.Distance; |
|
|
|
|
import org.springframework.data.web.PageableHandlerMethodArgumentResolver; |
|
|
|
|
import org.springframework.data.web.SortHandlerMethodArgumentResolver; |
|
|
|
|
import org.springframework.format.support.FormattingConversionService; |
|
|
|
|
import org.springframework.mock.web.MockServletContext; |
|
|
|
|
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; |
|
|
|
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc; |
|
|
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
|
@ -40,33 +40,31 @@ import static org.assertj.core.api.Assertions.assertThat;
@@ -40,33 +40,31 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
|
* {@link JpaRepositoriesAutoConfiguration}. |
|
|
|
|
* |
|
|
|
|
* @author Dave Syer |
|
|
|
|
* @author Stephane Nicoll |
|
|
|
|
*/ |
|
|
|
|
public class JpaWebAutoConfigurationTests { |
|
|
|
|
|
|
|
|
|
private AnnotationConfigWebApplicationContext context; |
|
|
|
|
|
|
|
|
|
@After |
|
|
|
|
public void close() { |
|
|
|
|
this.context.close(); |
|
|
|
|
} |
|
|
|
|
private final WebApplicationContextRunner contextRunner = new WebApplicationContextRunner() |
|
|
|
|
.withConfiguration( |
|
|
|
|
AutoConfigurations.of(DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class, |
|
|
|
|
JpaRepositoriesAutoConfiguration.class, SpringDataWebAutoConfiguration.class)) |
|
|
|
|
.withPropertyValues("spring.datasource.generate-unique-name=true"); |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testDefaultRepositoryConfiguration() { |
|
|
|
|
this.context = new AnnotationConfigWebApplicationContext(); |
|
|
|
|
this.context.setServletContext(new MockServletContext()); |
|
|
|
|
this.context.register(TestConfiguration.class, EmbeddedDataSourceConfiguration.class, |
|
|
|
|
HibernateJpaAutoConfiguration.class, JpaRepositoriesAutoConfiguration.class, |
|
|
|
|
SpringDataWebAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
assertThat(this.context.getBean(CityRepository.class)).isNotNull(); |
|
|
|
|
assertThat(this.context.getBean(PageableHandlerMethodArgumentResolver.class)).isNotNull(); |
|
|
|
|
assertThat(this.context.getBean(FormattingConversionService.class).canConvert(Long.class, City.class)).isTrue(); |
|
|
|
|
public void springDataWebIsConfiguredWithJpaRepositories() { |
|
|
|
|
this.contextRunner.withUserConfiguration(TestConfiguration.class).run((context) -> { |
|
|
|
|
assertThat(context).hasSingleBean(CityRepository.class); |
|
|
|
|
assertThat(context).hasSingleBean(PageableHandlerMethodArgumentResolver.class); |
|
|
|
|
assertThat(context).hasSingleBean(SortHandlerMethodArgumentResolver.class); |
|
|
|
|
assertThat(context.getBean(FormattingConversionService.class).canConvert(String.class, Distance.class)) |
|
|
|
|
.isTrue(); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Configuration |
|
|
|
|
@TestAutoConfigurationPackage(City.class) |
|
|
|
|
@EnableWebMvc |
|
|
|
|
protected static class TestConfiguration { |
|
|
|
|
static class TestConfiguration { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|