Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
de0bcaa5
Commit
de0bcaa5
authored
May 10, 2016
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update WebMvcTest to auto-configure supported template engines
Closes gh-5801
parent
c1a2a77c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
144 additions
and
14 deletions
+144
-14
checkstyle.xml
spring-boot-parent/src/checkstyle/checkstyle.xml
+1
-1
AutoConfigureWebMvc.java
...t/test/autoconfigure/web/servlet/AutoConfigureWebMvc.java
+8
-1
AutoConfigurationImportedCondition.java
...est/autoconfigure/AutoConfigurationImportedCondition.java
+61
-0
DataJpaTestIntegrationTests.java
...st/autoconfigure/orm/jpa/DataJpaTestIntegrationTests.java
+5
-12
WebMvcTestAutoConfigurationIntegrationTests.java
.../servlet/WebMvcTestAutoConfigurationIntegrationTests.java
+69
-0
No files found.
spring-boot-parent/src/checkstyle/checkstyle.xml
View file @
de0bcaa5
...
...
@@ -71,7 +71,7 @@
<module
name=
"AvoidStarImport"
/>
<module
name=
"AvoidStaticImport"
>
<property
name=
"excludes"
value=
"org.assertj.core.api.Assertions.*, org.junit.Assert.*, org.junit.Assume.*, org.junit.internal.matchers.ThrowableMessageMatcher.*, org.hamcrest.CoreMatchers.*, org.hamcrest.Matchers.*, org.springframework.boot.configurationprocessor.ConfigurationMetadataMatchers.*, org.springframework.boot.configurationprocessor.TestCompiler.*, org.mockito.Mockito.*, org.mockito.BDDMockito.*, org.mockito.Matchers.*, org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.*, org.springframework.restdocs.hypermedia.HypermediaDocumentation.*, org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*, org.springframework.test.web.servlet.result.MockMvcResultMatchers.*, org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*, org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*, org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo"
/>
value=
"org.assertj.core.api.Assertions.*, org.junit.Assert.*, org.junit.Assume.*, org.junit.internal.matchers.ThrowableMessageMatcher.*, org.hamcrest.CoreMatchers.*, org.hamcrest.Matchers.*, org.springframework.boot.configurationprocessor.ConfigurationMetadataMatchers.*, org.springframework.boot.configurationprocessor.TestCompiler.*, org.
springframework.boot.test.autoconfigure.AutoConfigurationImportedCondition.*, org.
mockito.Mockito.*, org.mockito.BDDMockito.*, org.mockito.Matchers.*, org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.*, org.springframework.restdocs.hypermedia.HypermediaDocumentation.*, org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*, org.springframework.test.web.servlet.result.MockMvcResultMatchers.*, org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*, org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*, org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo"
/>
</module>
<module
name=
"IllegalImport"
/>
<module
name=
"RedundantImport"
/>
...
...
spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/AutoConfigureWebMvc.java
View file @
de0bcaa5
...
...
@@ -23,8 +23,12 @@ import java.lang.annotation.RetentionPolicy;
import
java.lang.annotation.Target
;
import
org.springframework.boot.autoconfigure.ImportAutoConfiguration
;
import
org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration
;
import
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration
;
import
org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration
;
import
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration
;
import
org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration
;
import
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration
;
import
org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration
;
import
org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration
;
...
...
@@ -34,6 +38,7 @@ import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
* using this annotation directly.
*
* @author Phillip Webb
* @author Andy Wilkinson
* @since 1.4.0
* @see WebMvcTest
*/
...
...
@@ -41,7 +46,9 @@ import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Documented
@ImportAutoConfiguration
({
WebMvcAutoConfiguration
.
class
,
GsonAutoConfiguration
.
class
,
JacksonAutoConfiguration
.
class
,
HttpMessageConvertersAutoConfiguration
.
class
})
JacksonAutoConfiguration
.
class
,
HttpMessageConvertersAutoConfiguration
.
class
,
FreeMarkerAutoConfiguration
.
class
,
GroovyTemplateAutoConfiguration
.
class
,
MustacheAutoConfiguration
.
class
,
ThymeleafAutoConfiguration
.
class
})
public
@interface
AutoConfigureWebMvc
{
}
spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/AutoConfigurationImportedCondition.java
0 → 100644
View file @
de0bcaa5
/*
* Copyright 2012-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
boot
.
test
.
autoconfigure
;
import
org.assertj.core.api.Condition
;
import
org.assertj.core.description.TextDescription
;
import
org.springframework.beans.factory.config.ConfigurableListableBeanFactory
;
import
org.springframework.boot.autoconfigure.condition.ConditionEvaluationReport
;
import
org.springframework.context.ApplicationContext
;
/**
* AssertJ {@link Condition} that checks that an auto-configuration has been imported.
*
* @author Andy Wilkinson
*/
public
final
class
AutoConfigurationImportedCondition
extends
Condition
<
ApplicationContext
>
{
private
final
Class
<?>
autoConfigurationClass
;
private
AutoConfigurationImportedCondition
(
Class
<?>
autoConfigurationClass
)
{
super
(
new
TextDescription
(
"%s imported"
,
autoConfigurationClass
.
getName
()));
this
.
autoConfigurationClass
=
autoConfigurationClass
;
}
@Override
public
boolean
matches
(
ApplicationContext
context
)
{
ConditionEvaluationReport
report
=
ConditionEvaluationReport
.
get
((
ConfigurableListableBeanFactory
)
context
.
getAutowireCapableBeanFactory
());
return
report
.
getConditionAndOutcomesBySource
().
keySet
()
.
contains
(
this
.
autoConfigurationClass
.
getName
());
}
/**
* Returns a {@link Condition} that verifies that the given
* {@code autoConfigurationClass} has been imported.
* @param autoConfigurationClass the auto-configuration class
* @return the condition
*/
public
static
AutoConfigurationImportedCondition
importedAutoConfiguration
(
Class
<?>
autoConfigurationClass
)
{
return
new
AutoConfigurationImportedCondition
(
autoConfigurationClass
);
}
}
spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/orm/jpa/DataJpaTestIntegrationTests.java
View file @
de0bcaa5
...
...
@@ -25,14 +25,13 @@ import org.junit.runner.RunWith;
import
org.springframework.beans.factory.NoSuchBeanDefinitionException
;
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.test.context.junit4.SpringRunner
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
springframework
.
boot
.
test
.
autoconfigure
.
AutoConfigurationImportedCondition
.
importedAutoConfiguration
;
/**
* Integration tests for {@link DataJpaTest}.
...
...
@@ -99,20 +98,14 @@ public class DataJpaTestIntegrationTests {
@Test
public
void
flywayAutoConfigurationWasImported
()
{
ConditionEvaluationReport
report
=
ConditionEvaluationReport
.
get
((
ConfigurableListableBeanFactory
)
this
.
applicationContext
.
getAutowireCapableBeanFactory
());
assertThat
(
report
.
getConditionAndOutcomesBySource
().
keySet
())
.
contains
(
FlywayAutoConfiguration
.
class
.
getName
());
assertThat
(
this
.
applicationContext
)
.
has
(
importedAutoConfiguration
(
FlywayAutoConfiguration
.
class
));
}
@Test
public
void
liquibaseAutoConfigurationWasImported
()
{
ConditionEvaluationReport
report
=
ConditionEvaluationReport
.
get
((
ConfigurableListableBeanFactory
)
this
.
applicationContext
.
getAutowireCapableBeanFactory
());
assertThat
(
report
.
getConditionAndOutcomesBySource
().
keySet
())
.
contains
(
LiquibaseAutoConfiguration
.
class
.
getName
());
assertThat
(
this
.
applicationContext
)
.
has
(
importedAutoConfiguration
(
LiquibaseAutoConfiguration
.
class
));
}
}
spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTestAutoConfigurationIntegrationTests.java
0 → 100644
View file @
de0bcaa5
/*
* Copyright 2012-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org
.
springframework
.
boot
.
test
.
autoconfigure
.
web
.
servlet
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration
;
import
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration
;
import
org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration
;
import
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
springframework
.
boot
.
test
.
autoconfigure
.
AutoConfigurationImportedCondition
.
importedAutoConfiguration
;
/**
* Tests for the auto-configuration imported by {@link WebMvcTest}.
*
* @author Andy Wilkinson
*/
@RunWith
(
SpringRunner
.
class
)
@WebMvcTest
public
class
WebMvcTestAutoConfigurationIntegrationTests
{
@Autowired
private
ApplicationContext
applicationContext
;
@Test
public
void
freemarkerAutoConfigurationWasImported
()
{
assertThat
(
this
.
applicationContext
)
.
has
(
importedAutoConfiguration
(
FreeMarkerAutoConfiguration
.
class
));
}
@Test
public
void
groovyTemplatesAutoConfigurationWasImported
()
{
assertThat
(
this
.
applicationContext
)
.
has
(
importedAutoConfiguration
(
GroovyTemplateAutoConfiguration
.
class
));
}
@Test
public
void
mustacheAutoConfigurationWasImported
()
{
assertThat
(
this
.
applicationContext
)
.
has
(
importedAutoConfiguration
(
MustacheAutoConfiguration
.
class
));
}
@Test
public
void
thymeleafAutoConfigurationWasImported
()
{
assertThat
(
this
.
applicationContext
)
.
has
(
importedAutoConfiguration
(
ThymeleafAutoConfiguration
.
class
));
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment