Commit Graph

621 Commits (fe8644cc59070572aedf82f00282be30a19b7a59)

Author SHA1 Message Date
Phillip Webb 32e8b30c36 Merge branch '2.7.x'
Closes gh-29408
3 years ago
Phillip Webb 9764b3eba0 Change getEnvironment() to return null by default
Update the `SpringBootContextLoader.getEnvironment()` method so that it
returns `null` rather than a new `StandardEnvironment`.

Closes gh-29405
3 years ago
Phillip Webb 05a1ef233a Merge branch '2.7.x'
Closes gh-29407
3 years ago
Phillip Webb c84d3c14fb Allow test property sources to override command line args
Refine `SpringBootContextLoader` logic so that inline test properties
are always added above command line arguments.

Closes gh-29404
3 years ago
Phillip Webb cb97aff1e7 Merge branch '2.7.x' 3 years ago
Phillip Webb 9278a502c7 Merge branch '2.6.x' into 2.7.x 3 years ago
Phillip Webb 14fe9347b5 Merge branch '2.5.x' into 2.6.x 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 4dac38cb63 Merge branch '2.7.x' 3 years ago
Stephane Nicoll 1bf13371c4 Merge branch '2.6.x' into 2.7.x
Closes gh-29378
3 years ago
Stephane Nicoll 8384019a41 Merge branch '2.5.x' into 2.6.x
Closes gh-29377
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 3d6840e715 Merge branch '2.7.x'
Closes gh-29376
3 years ago
Phillip Webb fee45e056a Merge branch '2.6.x' into 2.7.x
Closes gh-29375
3 years ago
Phillip Webb 91d2b1b988 Merge branch '2.5.x' into 2.6.x
Closes gh-29374
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 06398eabed Merge branch '2.7.x' 3 years ago
Phillip Webb b25e92f3e2 Merge branch '2.6.x' into 2.7.x 3 years ago
Phillip Webb 760dcffd8b Merge branch '2.7.x' 3 years ago
Brian Clozel 0d616b8924 Fix WebGraphQlTester auto-registration for SpringBootTest
Prior to this commit, the `GraphQlTesterContextCustomizer` would
register a `WebGraphQlTester` instance as a `GraphQlTester` bean., only
exposing the `GraphQlTester` type. This is not in line with the
documentation and also does not register the bean definition with the
most specific type.
With this issue, a `@SpringBootTest` integration test will not be
injected with a `WebGraphQlTester` if it asks one.

This commit ensures that the `WebGraphQlTester` is registered as such
and that all related classes are renamed as a result.

Fixes gh-29250
3 years ago
Stephane Nicoll 7a016a68f1 Upgrade to Selenium HtmlUnit 3.56.0
Closes gh-29238
3 years ago
Stephane Nicoll a2bed160f0 Upgrade to Selenium 4.1.1
Closes gh-29237
3 years ago
Stephane Nicoll 09486b8fc7 Merge branch '2.7.x' 3 years ago
Stephane Nicoll 2b140950e3 Merge branch '2.6.x' into 2.7.x
Closes gh-29176
3 years ago
izeye 7fbb5749d1 Polish
See gh-29157
3 years ago
Brian Clozel f61c87c3a7 Revert "Merge branch '2.7.x'"
This reverts commit f0677a119c, reversing
changes made to 938d58f32c.
3 years ago
Brian Clozel f0677a119c Merge branch '2.7.x' 3 years ago
Brian Clozel c0707e4f5b Auto-configure GraphQlTester
This commit adds the required infrastructure to auto-configure a
`GraphQlTester` or `WebGraphQlTester` in Spring Boot tests.
Specific annotations like `AutoConfigureGraphQlTester` and
`AutoConfigureWebGraphQlTester` will contribute pre-configured beans for
testing a GraphQL with the tester.

This also ships a `ContextCustomize` for contributing a `GraphQlTester`
in the case of a full `@SpringBootTest` integration test against a live
server.

See gh-29140
3 years ago
Phillip Webb f3bcbca841 Update copyright year of changed files 3 years ago
Andy Wilkinson fe7b13ec46 Upgrade to Spring Framework 6 and Jakarta EE 9
Closes gh-28619
Closes gh-28620
Closes gh-28621
Closes gh-28622
Closes gh-28623
Closes gh-28624
Closes gh-28625
Closes gh-28626
Closes gh-28627
Closes gh-28628
Closes gh-28629
Closes gh-28630
Closes gh-28631
Closes gh-28632
Closes gh-28633
Closes gh-28634
Closes gh-28635
Closes gh-28636
Closes gh-28638
Closes gh-28639
Closes gh-28640
Closes gh-28644
Closes gh-28645
Closes gh-28650
Closes gh-28711
Closes gh-28866
Closes gh-28867
Closes gh-28868
Closes gh-28872

See gh-28641
See gh-28642
See gh-28643
See gh-28646
See gh-28647
See gh-28648
See gh-28649
See gh-28721
See gh-28869
See gh-28871
3 years ago
Andy Wilkinson 8bf2ffd93c Drop support for Jersey until jersey-spring6 is available
Closes gh-28808
3 years ago
Andy Wilkinson 5944041f2a Switch to Yasson for JSON-B testing
Closes gh-28615
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
Phillip Webb beb68671bb Update copyright year of changed files 3 years ago
Madhura Bhave 49e408828c 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.

Fixes gh-28776
3 years ago
Madhura Bhave 6b79d2860f Merge branch '2.5.x' into main
Closes gh-28724
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 2a342ef416 Merge branch '2.5.x'
Closes gh-28662
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 d8629fc63d Merge branch '2.5.x' 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 0a6991e744 Merge branch '2.5.x'
Closes gh-28566
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 c05223d9c8 Merge branch '2.5.x'
Closes gh-28545
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
Stephane Nicoll bf88405121 Flag BeanDefinitionRegistryPostProcessor beans with role infrastructure
Closes gh-28540
3 years ago
Stephane Nicoll fbe614a61b Fix bean type visibility
See gh-28437
3 years ago
Stephane Nicoll 2be0161f9a Fix bean type visibility
See gh-28437
3 years ago
Andy Wilkinson 84b553a8ca Upgrade to Jackson Bom 2.13.0
Closes gh-28298
3 years ago
Leo Li 1770f065a5 Polish
See gh-28239
3 years ago
Andy Wilkinson 1a505964ee Merge branch '2.5.x'
Closes gh-28207
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 575d83737a Merge branch '2.5.x'
Closes gh-27799
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 fd2fbcb3c6 Merge branch '2.5.x'
Closes gh-27758
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 01e741d703 Prohibit circular references by default
Closes gh-27652
3 years ago
Andy Wilkinson 228e4e3bc8 Make it easier to add new config options to ApplicationContextRunners
Closes gh-27690
3 years ago
Andy Wilkinson e30bf0e3e5 Merge branch '2.5.x'
Closes gh-27528
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 355226c21e Merge branch '2.5.x'
Closes gh-27474
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 3e0baf1bfd Merge branch '2.5.x'
Closes gh-27353
3 years ago
Andy Wilkinson c8c784bd5c Allow @SpyBean to be used to spy on a Spring Data repository
Fixes gh-7033
3 years ago
Stephane Nicoll dc5acb0019 Remove deprecated code flagged for removal
Closes gh-27303
3 years ago
Stephane Nicoll 9e46061aa6 Allow to chain ContextConsumer implementations
Closes gh-26723
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
Phillip Webb 11a94ee6f0 Merge branch '2.3.x' into 2.4.x 4 years ago
Phillip Webb 82127fdaa3 Update copyright year of changed files 4 years ago
Andy Wilkinson 2f95c1e2c8 Merge branch '2.3.x' into 2.4.x
Closes gh-25513
4 years ago
Andy Wilkinson 22b73f3020 Polish "Improve documentaion of Mockito test execution listeners"
See gh-25375
4 years ago
dreis2211 1ccd8dae8a Allow the project to be built with Java 16
See gh-25171
4 years ago
Andy Wilkinson 297e3079d0 Fix handling of UriTemplateRequestEntity in TestRestTemplate
A change [1] in Spring Framework 5.3 means that getUrl() on a
RequestEntity will throw an UnsupportedOperationException if the
entity was created using a template.

This commit updates TestRestTemplate to check for instances of
UriTemplateRequestEntity and to resolve the URI using the
entity's UriTemplateHandler instead of calling getUrl() directly.

Fixes gh-25097

[1] a0f4d81db7
4 years ago
Andy Wilkinson 788a42d694 Merge branch '2.3.x' into 2.4.x
See gh-25076
4 years ago
Andy Wilkinson 67479b6380 Add junit-platform-launcher dependency by convention
Closes gh-25074
4 years ago
Phillip Webb d06407ec0a Update copyright year of changed files 4 years ago
Phillip Webb d95d7a0245 Update code for Spring Framework 5.3.4
See gh-24998
4 years ago
Madhura Bhave 920136d908 Merge branch '2.3.x' into 2.4.x
Closes gh-24678
4 years ago
Madhura Bhave 73a2a4b383 Consider context-path for WebTestClient baseUrl
Fixes gh-24168
4 years ago
dreis2211 fb207f73e7 Remove deprecated SpringBootContextLoader#getArgs()
See gh-24550
4 years ago
Phillip Webb d6890e39a7 Merge branch '2.3.x' into 2.4.x
Closes gh-24536
4 years ago
dreis2211 0ec603cdad Avoid duplicates in MergedContextConfiguration
Remove duplicate config attribute classes by using a `Set` rather
than a `List` in the `SpringBootTestContextBootstrapper`.

See gh-24532
4 years ago
Phillip Webb 72d36e0c07 Update copyright year of changed files 4 years ago
Phillip Webb 30c27274e2 Merge branch '2.3.x'
Closes gh-24339
4 years ago
Phillip Webb 5f351a6983 Merge branch '2.2.x' into 2.3.x
Closes gh-24338
4 years ago
Phillip Webb 837fc83527 Fix checkstyle header violations
See gh-24337
4 years ago
Stephane Nicoll f248cfe79c Polish "Check that WebClient is available"
See gh-24152
4 years ago
Tobias Gesellchen f6255cc691 Check that WebClient is available
This commit reinstanties the isWeBClientPresent() check so that
WebTestClientContextCustomizer is only added if a web client is
available.

See gh-24152
4 years ago
Andy Wilkinson d41e739f8c Merge branch '2.3.x'
Closes gh-24013
4 years ago
Andy Wilkinson dc86e8ce30 Merge branch '2.2.x' into 2.3.x
Closes gh-24012
4 years ago
Andy Wilkinson 6548ca4c11 Implement equals and hashCode in TestTypeExcludeFilter
Fixes gh-23978
4 years ago
Phillip Webb 929d8fcd3c Update copyright year of changed files 4 years ago
Andy Wilkinson 506f7acc8d Streamline use of TestContextAnnotationUtils
See gh-12470
4 years ago
Andy Wilkinson d9084eab67 Provide Mockito with a MockResolver that removes Spring-created proxies 4 years ago
Andy Wilkinson 6b437ece54 Inherit enclosing class's configuration in nested tests
Fixes gh-12470
4 years ago
Phillip Webb e790828e19 Allow TestPropertyValues.of to take a Map source
Extend the API of `TestPropertyValues` so that it can be constructed
from an existing `Map` or a `Stream` and mapping `Function`.

Closes gh-23685
4 years ago
Andy Wilkinson 2d8528d5bd Adapt to deprecation of StringUtils.isEmpty(Object)
See gh-23774
4 years ago
Andy Wilkinson 98914b65bc Merge branch '2.3.x'
Closes gh-23672
4 years ago
Andy Wilkinson a9a32f39b5 Merge branch '2.2.x' into 2.3.x
Closes gh-23671
4 years ago
Andy Wilkinson 667ccdae84 Simplify temp directory creation and improve diagnostics
Closes gh-23622
4 years ago
Andy Wilkinson 7b183ef99d Merge branch '2.3.x'
Closes gh-23478
4 years ago
Andy Wilkinson e626f7f47e Merge branch '2.2.x' into 2.3.x
Closes gh-23477
4 years ago
Andy Wilkinson bf9d23e55a Consider SpringBootTest's web environment in context cache key
Previously, the web environment configured on `@SpringBootTest` was not
part of the context cache key. As a result, two test classes that has
identical configuration other than one using a MOCK web environment and
the other using a DEFINED_PORT web environment would share a context
when they should not do so. Classes that use MOCK and RANDOM_PORT were
not affected as the use of RANDOM_PORT results in a property for the
port being added to the environment.

This commit adds a new ContextCustomizer, SpringBootTestWebEnvironment,
that is used to capture the `webEnvironment` from `@SpringBootTest`
and use it in its hashCode and equals implementations. This fixes the
problem as all context customizers are evaluated when determing the
equality of two context cache keys.

Fixes gh-23085
4 years ago
Phillip Webb 1ae1436211 Refactor BootstrapRegistry support
Refactor `BootstrapRegistry` support following initial prototype work
with the Spring Cloud team.

This update splits the `BootstrapRegistry` API into `BootstrapRegistry`,
`BootstrapContext` and  `ConfigurableBootstrapContext` interfaces and
moves it to the same package as `SpringApplication`.

A new `Bootstrapper` interface has been introduced that can be added
to the `SpringApplication` to customize the `BootstrapRegistry` before
it's used.

Closes gh-23326
4 years ago
Phillip Webb 6509310fdb Fix DefaultPropertiesPropertySource package tangle
Relocate `DefaultPropertiesPropertySource` to fix a package tangle.

Closes gh-23383
4 years ago
Stephane Nicoll 91cc283c39 Upgrade to JUnit Jupiter 5.7.0
Closes gh-23351
4 years ago
Phillip Webb d123c924a0 Add BootstrapRegisty support for config data
Expose the `BootstrapRegisty` to both `ConfigDataLocationResolver` and
`ConfigDataLoader` implementations. The registry is exposed via the
context interfaces and may be used to reuse instances that are expensive
to create. It may also be used to ultimately register beans with the
`ApplicationContext`.

Closes gh-22956
4 years ago
Andy Wilkinson 969dd35e45 Upgrade to Mockito 3.4.6
Closes gh-22838
4 years ago
Phillip Webb f8c8b65cbf Add ConfigDataEnvironmentPostProcessor.applyTo
Add static methods to `ConfigDataEnvironmentPostProcessor` so that
post-processing can be applied to `Environment` instances directly.

Closes gh-22601
4 years ago
Phillip Webb 8d06b0f368 Merge branch '2.3.x' 4 years ago
Phillip Webb 4924573074 Merge branch '2.2.x' into 2.3.x 4 years ago
Phillip Webb fdd6a89a61 Polish 4 years ago
Brian Clozel fb1234a22c Upgrade to Reactor 2020.0.0 SNAPSHOTs
See gh-22667
4 years ago
Andy Wilkinson d16838e4b7 Merge branch '2.3.x'
Closes gh-22584
4 years ago
Andy Wilkinson 39cb912819 Merge branch '2.2.x' into 2.3.x
Closes gh-22583
4 years ago
Andy Wilkinson 41954533b2 Fix Mock|SpyBean context caching
The fix for gh-20916 updated DefinitionsParser so that the
ResolvableType for each MockBean or SpyBean field included the
implementation class from which the field was found. Where the field
was declared with a variable generic signature that was made constant
by its implementation class, this allowed the correct concrete type to
be determined. It also had the unintended side-effect of preventing two
test classes with identical `@MockBean` and `@SpyBean` configuration
from sharing a context as the resolvable types for their mock and spy
bean fields would now be different.

This commit updates DefinitionsParser to only include the
implementation class in the ResolvableType if the field's generic type
is variable. For cases where it is not variable, this restores the
behaviour prior to the fix for gh-20916.

Fixes gh-22566
4 years ago
Phillip Webb 3352024b1c Provide ConfigFileApplicationListener replacement
Deprecate `ConfigFileApplicationListener` and provide a replacement
mechanism that supports arbitrary config data imports.

This commit updates the following areas:

- Extract `EnvironmentPostProcessor` invocation logic from the
  `ConfigFileApplicationListener` to new dedicated listener. Also
  providing support for `Log` injection.

- Extract `RandomPropertySource` adding logic from the
  `ConfigFileApplicationListener` to a dedicated class.

- Migrate to the recently introduced `DefaultPropertiesPropertySource`
  class when moving the defaultProperties `PropertySource`

- Replace processing logic with a phased approach to ensure that
  profile enablement happens in a distinct phase and that profiles
  can no longer be activated on an ad-hoc basis.

- Provide a more predictable and logical import order for processing
  `application.properties` and `application.yml` files.

- Add support for a `spring.config.import` property which can be used
  to import additional config data. Also provide a pluggable API
  allowing third-parties to resolve and load locations themselves.

- Add `spring.config.activate.on-profile` support which replaces the
  existing `spring.profiles` property.

- Add `spring.config.activate.on-cloud-platform` support which allows
  a config data document to be active only on a given cloud platform.

- Support a `spring.config.use-legacy-processing` property allowing the
  previous processing logic to be used.

Closes gh-22497

Co-authored-by: Madhura Bhave <mbhave@vmware.com>
4 years ago
Phillip Webb 14c1b0938a Polish 4 years ago
Phillip Webb da69286838 Merge branch '2.3.x' 4 years ago
Phillip Webb 217b2eff89 Merge branch '2.2.x' into 2.3.x 4 years ago
Phillip Webb b5e70157dc Update copyright year of changed files 4 years ago
Andy Wilkinson 0c8e52e877 Avoid using reflection to create SpringApplication's context
Closes gh-22322
4 years ago
XenoAmess 66dc24062f Fix typos in test code
See gh-22218
4 years ago