Commit Graph

477 Commits (cbea3c16474f9c0b16e15e1096a3222c64c0e667)

Author SHA1 Message Date
Andy Wilkinson 8f1b8622ba Ensure that webEnvironment=NONE creates non-web context
Previously, if spring.main.web-application-type was configured in
application.properties to servlet or reactive, setting
webEnvironment=NONE on @SpringBootTest would not work correctly and
a servlet or reactive web application context would be created
based on the value of spring.main.web-application-type.

This commit updates the test context bootstapper to set
spring.main.web-application-type to none when webEnvironment has been
set to none. This is done in the merged context configuration's
property source properties which are applied to the environment in a
high-precedence test property source that will override configuration
in application.properties.

Closes gh-29695
3 years ago
Andy Wilkinson c8de843d85 Honor final web application type when creating context in tests
Previously, SpringBootContextLoader would configure its
SpringApplication with an ApplicationContextFactory that ignores
the WebApplicationType with which its called and instead returns a
hard-coded type of context based on the type of the
MergedContextConfiguration. This hard-coding would result in the
wrong type of context being used if a subsequent change was made to
the application's WebApplicationType, for example due to binding of
the spring.main.web-application-type configuration property.

This commit updates SpringBootContextLoader to configure
SpringApplication with an ApplicationContextFactory that takes the
WebApplicationType with which it is called into consideration.

Fixes gh-29170
3 years ago
Andy Wilkinson e927cd71dd Clarify type matching performed by MockBean and SpyBean
Closes gh-28656
3 years ago
Andy Wilkinson 5baa71f1b3 Allow beans with circular dependencies to be spied
Closes gh-29639
3 years ago
Stephane Nicoll 7f17f819a6 Polish "Enforce use of BDDMockito"
See gh-29178
3 years ago
Yanming Zhou b49418aaaf Enforce use of BDDMockito
1. Replace Mockito.verify*() with BDDMockito.then()
2. Replace Mockito.doReturn() with BDDMockito.willReturn()
3. Adjust checkstyle rule

See gh-29178
3 years ago
Phillip Webb 3f7bf7d34f Modify SpringApplication Environment rather than setting it
Update `SpringBootContextLoader` so that when possible the
`SpringApplication` remains in control of creating the `Environment`
instance.

Prior to this commit, we would always create the `Environment` in the
`SpringBootContextLoader` and then call `setEnvironment` on the
`SpringApplication`. This meant that the `ApplicationEnvironment`
classes were not used and that `isCustomEnvironment` was set to `true`
so no conversion was applied.

With the updated code, an `ApplicationListener` is used to mutate the
`Environment` instance and add the required test property sources.

Fixes gh-29169
3 years ago
Stephane Nicoll 5f03ace40f Update copyright year of changed file
See gh-29112
3 years ago
izeye 74c522c745 Polish SpringBootContextLoaderTests
See gh-29112
3 years ago
Phillip Webb eb6b48fff0 Use side-effect free environment with tests rather than converting
Refine the logic introduced in 64270eca to use a side-effect free
Environment implementation rather than converting the Environment early.

Early conversion can cause condition evaluation issues if
`src/test/resources/application.properties` files are bound to the
`SpringApplication`. Specifically the `spring.main.web-application-type`
property can change the `Environment` type which must happen before
conditions are evaluated.

Fixes gh-29169
3 years ago
Phillip Webb f3bcbca841 Update copyright year of changed files 3 years ago
Madhura Bhave 27eb992252 Fix property source ordering in SpringBootTest
Update `SpringBootContextLoader` so that the active profiles
property source has a unique name. Prior to this commit, the
default name 'test' was used which could cause ordering issues
if other `@PropertySource` values were added to it later.

Closes gh-28804
3 years ago
Madhura Bhave 64270eca51 Convert environment used by SpringBootTestContextLoader
This commit aligns `SpringBootTest`s to also use `ApplicationEnvironment`
instead of `StandardEnvironment`. This prevents the side-effect of active
profiles from `@ActiveProfiles` from being added to the environment when
doGetActiveProfiles is called. In this case, calling `addActiveProfiles()`
in the environment post processor would result in `@ActiveProfiles` being
added to the environment first, resulting in the wrong order.

The additional call to `setActiveProfiles()` is also not necessary when using
ApplicationEnvironment because that call was put in place to prevent the side-effect
which `ApplicationEnvironment` does not have.

Fixes gh-28530
3 years ago
Andy Wilkinson 5e4a502b2d Merge branch '2.4.x' into 2.5.x
Closes gh-28661
3 years ago
Andy Wilkinson 2cec3971d7 Prohibit unwanted dependencies in all modules not just starters
Closes gh-28658
3 years ago
Phillip Webb ddd38a7ac3 Merge branch '2.4.x' into 2.5.x 3 years ago
Phillip Webb 75bf430eb1 Polish ImportsContextCustomizerTests
Update the test classes to include an `@Import` annotation. Without this
the tests would not fail even if the filter is missing.
3 years ago
Phillip Webb 6406ee5609 Merge branch '2.4.x' into 2.5.x
Closes gh-28565
3 years ago
Phillip Webb 8a14e1e2e9 Polish 'Ignore JUnit annotations when caching test contexts'
See gh-28563
3 years ago
Loïc Ledoyen 23876d8a32 Ignore JUnit annotations when caching test contexts
Update `ImportsContextCustomizer` to ignore JUnit annotations.

See gh-28563
3 years ago
Stephane Nicoll 4304eea319 Polish contribution
See gh-28531
3 years ago
dreis2211 7d594aa301 Avoid duplicate AOP proxy class definition with FilteredClassLoader
See gh-28531
3 years ago
Andy Wilkinson 1931104d13 Merge branch '2.4.x' into 2.5.x
Closes gh-28206
3 years ago
Andy Wilkinson 9c9fbf400e Upgrade to Spring Java Format 0.0.29
Closes gh-28205
3 years ago
Andy Wilkinson e409489859 Merge branch '2.4.x' into 2.5.x
Closes gh-27798
3 years ago
Andy Wilkinson f8ef90813f Allow @MockBean to be used with Framework's @Repeat
Fixes gh-27693
3 years ago
Andy Wilkinson 6d8ba3e8b1 Merge branch '2.4.x' into 2.5.x
Closes gh-27757
3 years ago
Andy Wilkinson ffbd28b60a Polish "Polish access modifiers for test classes"
See gh-27736
3 years ago
izeye 8a425dedfd Polish access modifiers for test classes
See gh-27736
3 years ago
Andy Wilkinson 43d623e696 Merge branch '2.4.x' into 2.5.x
Closes gh-27527
3 years ago
Andy Wilkinson 7eb5f35f2f Make WebTestClient creation back off when no HTTP client available
Fixes gh-27520
3 years ago
Andy Wilkinson eaca9c7a83 Merge branch '2.4.x' into 2.5.x
Closes gh-27473
3 years ago
Andy Wilkinson ee07d6c3ca Increase response timeout for server-bound WebTestClients
Closes gh-27472
3 years ago
Andy Wilkinson c8c784bd5c Allow @SpyBean to be used to spy on a Spring Data repository
Fixes gh-7033
3 years ago
Phillip Webb 4d62e47c5d Merge branch '2.3.x' into 2.4.x 3 years ago
Phillip Webb 9e1c78da99 Update copyright year of changed files 3 years ago
Andy Wilkinson e317079446 Merge branch '2.4.x'
Closes gh-26524
4 years ago
Andy Wilkinson 49d362fd7f Merge branch '2.3.x' into 2.4.x
Closes gh-26523
4 years ago
weixsun 7f445630e4 Remove unnecessary semicolon
See gh-26446
4 years ago
Andy Wilkinson 05a64ecb2c Merge branch '2.4.x'
Closes gh-26522
4 years ago
Andy Wilkinson 2a2c68f8f2 Merge branch '2.3.x' into 2.4.x
Closes gh-26521
4 years ago
Andy Wilkinson be807bab12 Polish "Improve documentation of TestRestTemplate's fault tolerance"
See gh-26227
4 years ago
Carlos Rafael de Oliveira Carneiro a6fa8addb9 Improve documentation of TestRestTemplate's fault tolerance
See gh-26227
4 years ago
Stephane Nicoll d3c817b7ba Polish "Remove unnecessary throws declaration in tests"
See gh-26441
4 years ago
weixsun 8a2be288a3 Remove unnecessary throws declaration in tests
See gh-26441
4 years ago
Stephane Nicoll 691bbcfdfd Update copyright year of changed files
See gh-26448
4 years ago
weixsun d115361980 Remove redundant suppression
See gh-26448
4 years ago
Phillip Webb a28a3ae090 Merge branch '2.3.x' into 2.4.x 4 years ago
Phillip Webb 363f5829d1 Merge branch '2.3.x' into 2.4.x
Closes gh-25825
4 years ago
Phillip Webb 26dd1b9a26 Update deprecations with for removal targets
Update all deprecation tags to include a removal target.

Closes gh-25808
4 years ago