Commit Graph

706 Commits

Author SHA1 Message Date
Andy Wilkinson f4c996b432 Polish "Check for Class and ResolvableType object type attributes"
See gh-36224
2023-07-05 09:04:58 +01:00
Bernardo Bulgarelli 3a7185206e Check for Class and ResolvableType object type attributes
See gh-36224
2023-07-05 09:04:04 +01:00
Phillip Webb 7c942679ad Polish 'Switch ImportsContextCustomizer to use MergedAnnotations.search'
See gh-36211
2023-07-04 14:05:48 +01:00
Laurent Martelli 4562189125 Switch ImportsContextCustomizer to use MergedAnnotations.search #36211
Use `MergedAnnotations.search` in `ImportsContextCustomizer` rather than
needing dedicated search logic.

See gh-36211
2023-07-04 13:58:53 +01:00
Phillip Webb b2985676aa Merge branch '3.1.x'
Closes gh-36210
2023-07-04 12:19:47 +01:00
Phillip Webb 97ef8f38a4 Merge branch '3.0.x' into 3.1.x
Closes gh-36209
2023-07-04 12:19:20 +01:00
Phillip Webb ab7e4da703 Merge branch '2.7.x' into 3.0.x
Closes gh-36208
2023-07-04 12:18:52 +01:00
Phillip Webb 5d0640a356 Use MergedAnnotations for `@AliasFor` support
Update `ImportsContextCustomizer` to use `MergedAnnotations` so
that `@AliasFor` can be supported.

See gh-34917
2023-07-04 12:17:58 +01:00
Laurent Martelli 9baf23ccd5 Test that ImportsContextCustomizer can support @AliasFor
Add test to ensure that `ImportsContextCustomizer` can support
`@AliasFor` annotations.

See gh-34917
2023-07-04 12:17:58 +01:00
Andy Wilkinson b645eb32ac Remove deprecated code that was to be removed in 3.2
Closes gh-36034
2023-06-23 18:14:22 +01:00
Andy Wilkinson ca5bd37e81 Upgrade to Spring Framework 6.1.0-M1
Closes gh-35977
Closes gh-35980
2023-06-19 18:12:16 +01:00
Andy Wilkinson fd4b7d7f7a Merge branch '3.0.x'
Closes gh-35330
2023-05-05 18:22:20 +01:00
Andy Wilkinson ce96cc3026 Merge branch '2.7.x' into 3.0.x
Closes gh-35329
2023-05-05 18:22:05 +01:00
Andy Wilkinson 6dc84b1645 Ignore non-singleton factory beans when resetting mocks
Closes gh-35324
2023-05-05 18:21:04 +01:00
Marc Leroux b61834c92d Replace Mockito argument captors with assertArg
See gh-35015
2023-05-05 11:34:55 +02:00
Phillip Webb 2b261e6ebd Apply TestTypeExcludeFilter in regular applications
Add `ExcludeFilterApplicationContextInitializer` to register the
`TestTypeExcludeFilter` for regular applications.

Prior to this commit, the filter was only registered using the
`ExcludeFilterContextCustomizerFactory` which meant that test components
were filtered in tests but not when using `SpringApplication.from` with
a test classpath.

Fixes gh-35206
2023-04-29 21:10:02 -07:00
Andy Wilkinson a37a7228b8 Merge pull request #34833 from chinmoy12c
* gh-34833:
  Polish "Add content buffering support to MockServerRestTemplateCustomizer"
  Add content buffering support to MockServerRestTemplateCustomizer

Closes gh-34833
2023-04-17 18:05:29 +01:00
Andy Wilkinson 3f93a4ece6 Polish "Add content buffering support to MockServerRestTemplateCustomizer"
See gh-34833
2023-04-17 18:03:44 +01:00
Chinmoy Chakraborty b065e04be7 Add content buffering support to MockServerRestTemplateCustomizer
See gh-34833
2023-04-17 18:02:53 +01:00
Phillip Webb d442bfbeff Polish 2023-04-10 16:22:11 -07:00
Phillip Webb b6777524f7 Merge branch '2.7.x' into 3.0.x 2023-03-23 23:00:50 -07:00
Mortitz Halbritter bece347987 Polish 2023-03-23 22:59:26 -07:00
Phillip Webb 0b15962aca Merge branch '2.7.x' into 3.0.x 2023-02-22 18:36:16 -08:00
Phillip Webb a5902d7a00 Update copyright year of changed files 2023-02-22 18:35:17 -08:00
Phillip Webb c4de86c244 Merge branch '2.7.x' into 3.0.x 2023-02-21 23:17:57 -08:00
Phillip Webb df5898a146 Reformat code following spring-javaformat upgrade 2023-02-21 22:53:27 -08:00
Andy Wilkinson 118f736260 Merge branch '2.7.x' into 3.0.x
Closes gh-34044
2023-02-01 17:32:39 +00:00
Andy Wilkinson 9940fcfe77 Reset mocks produced by FactoryBeans
An unwanted side-effect of the changes made in c6bdd136 to fix
gh-7271 is that a mock produced by a factory bean is not reset. To
allow such a mock to be reset without regressing the fix we now call
getBean(…) as we did before c6bdd136, however the call is now
performed in a defensive manner falling back to getSingleton(…) when
it fails.

Closes gh-33830
2023-02-01 17:22:36 +00:00
Moritz Halbritter 0a080736d8 Merge branch '2.7.x' into 3.0.x
Closes gh-34017
2023-01-31 10:50:30 +01:00
Johnny Lim 5eeb429e44 Polish
See gh-33966
2023-01-31 10:48:30 +01:00
Johnny Lim bc7fc90550 Replace Base64Utils with JDK's Base64
See gh-33967
2023-01-31 10:20:06 +01:00
Krzysztof Krason 0e68cae57f Use instanceof patterns
See gh-33987
2023-01-26 20:36:25 -08:00
Phillip Webb 5120242996 Merge branch '2.7.x' into 3.0.x 2023-01-26 19:41:42 -08:00
Krzysztof Krason a8958471f6 Switch anonymous inner classes to lambdas
See gh-33987
2023-01-26 19:34:22 -08:00
Phillip Webb 71efc55bf9 Merge branch '2.7.x' 2023-01-18 16:31:53 -08:00
Phillip Webb 7c508fa324 Update copyright year of changed files 2023-01-18 15:37:58 -08:00
Moritz Halbritter 94f4a4396c Merge branch '2.7.x'
Closes gh-33880
2023-01-18 17:35:52 +01:00
Moritz Halbritter e8d809fe65 Replace 'via' with 'over' or 'through' in the documentation
Closes gh-33878
2023-01-18 16:56:42 +01:00
Phillip Webb fad88232b9 Update copyright year of changed files 2023-01-17 10:12:38 -08:00
Phillip Webb a889c539ab Merge branch '2.7.x' 2023-01-17 10:12:25 -08:00
Phillip Webb 71ff90a6a5 Polish 2023-01-17 10:11:47 -08:00
Phillip Webb a0fe8241a7 Update copyright year of changed files 2023-01-17 10:07:03 -08:00
Moritz Halbritter 679495a1ff Merge branch '2.7.x'
Closes gh-33792
2023-01-12 13:24:20 +01:00
Moritz Halbritter d652491e20 Fix stack overflow in SpringBootMockResolver
Closes gh-32632
2023-01-12 13:24:09 +01:00
Moritz Halbritter 887c00e9fc Polish OutputCapture 2023-01-11 11:37:00 +01:00
Phillip Webb a2ac38e203 Update copyright year of changed files 2023-01-09 15:46:07 -08:00
Krzysztof Krason cf6493f65c Simplify AssertJ assertions and also make them more readable
See gh-33653
2023-01-09 11:10:20 +01:00
Anugrah Singhal 3191c678c3 Remove Jetty/Netty/ApacheHttpClient checks for WebClient
See gh-33640
2023-01-09 10:43:44 +01:00
Phillip Webb f588793445 Update copyright year of changed files 2022-12-22 01:00:42 -08:00
Phillip Webb 0254619782 Merge branch '2.7.x' 2022-12-22 00:59:40 -08:00
Phillip Webb e4772cf3b7 Update copyright year of changed files 2022-12-22 00:59:32 -08:00
Moritz Halbritter 725337f976 Make fields final
Closes gh-33537
2022-12-16 14:28:44 +01:00
Moritz Halbritter 6edb6fa091 Polish "Add test for beforeEach of OutputExtension"
See gh-33419
2022-12-01 11:44:04 +01:00
nowjin 5f532a40f9 Add test for beforeEach of OutputExtension
See gh-33419
2022-12-01 11:41:28 +01:00
Moritz Halbritter c1bd9310ea Polish "Add test for beforeEach of OutputExtension"
See gh-33419
2022-12-01 11:37:18 +01:00
nowjin 94193c9df2 Add test for beforeEach of OutputExtension
See gh-33419
2022-12-01 11:35:53 +01:00
Johnny Lim 90589fd6d4 Polish
See gh-33384
2022-12-01 11:32:39 +01:00
lishangbu f5d0171fcc Avoid NPE when @SpringBootConfiguration not found in test
See gh-33371
2022-12-01 11:19:59 +01:00
Phillip Webb e1efdadfe3 Merge branch '2.7.x'
Closes gh-33416
2022-11-29 14:09:57 -08:00
Phillip Webb 711e2528fb Polish 'Improve test coverage for OutputCaptureRule'
See gh-33405
2022-11-29 14:09:26 -08:00
nowjin af7a03b4c9 Improve test coverage for OutputCaptureRule
See gh-33405
2022-11-29 14:09:05 -08:00
Andy Wilkinson 5dc589e7ae Merge branch '2.7.x'
Closes gh-33263
2022-11-18 15:56:30 +00:00
Andy Wilkinson 6bf35e3dd0 Merge branch '2.6.x' into 2.7.x
Closes gh-33262
2022-11-18 15:49:12 +00:00
Andy Wilkinson 0c8ae65bd4 Switch of the banner when SpringBootTest runs an app with a parent
Closes gh-33079
2022-11-18 15:43:41 +00:00
Phillip Webb fafbefa35c Ensure @ContextHierarchy is never used with UseMainMethod
Fixes gh-33078
2022-11-17 10:16:24 -08:00
Johnny Lim 6027508cf7 Polish
See gh-33108
2022-11-16 10:00:36 +01:00
Phillip Webb e212214227 Fix Kotlin main method detection for UseMainMethod
Update `SpringBootContextLoader` to detect main methods on `*Kt`
classes.

Fixes gh-33114
2022-11-15 19:27:53 -08:00
Scott Frederick b882de7c68 Throw ContextLoadException on test context load failure
When a test context fails to load, a `ContextLoadException` should
be thrown so that Framework can catch it and call any registered
`ApplicationContextFailureProcessor`s.

Closes gh-31793
2022-11-09 13:10:11 -06:00
Scott Frederick a0d765cab8 Restore invocation of DefaultTestExecutionListenersPostProcessors
This commit partially reverts c81ebf63d9,
so that `DefaultTestExecutionListenersPostProcessor`s are invoked
even though deprecated.

See gh-31793
2022-11-01 13:16:36 -05:00
Scott Frederick c81ebf63d9 Use ApplicationContextFailureProcessor to log report on failure
Closes gh-31793
2022-10-31 15:15:49 -05:00
Phillip Webb a59b6cb1f3 Polish 2022-10-25 21:56:53 -07:00
Phillip Webb 4be3218cb6 Merge branch '2.7.x' 2022-10-25 15:48:26 -07:00
Phillip Webb c8676a81de Merge branch '2.6.x' into 2.7.x 2022-10-25 15:48:04 -07:00
Phillip Webb d7ac20cd6c Update copyright year of changed files 2022-10-25 15:47:30 -07:00
Phillip Webb 9505673d6f Ensure application event listeners are always refreshed
Update `EventPublishingRunListener` to ensure that application event
listeners are always refreshed before multicasting initial events.

Prior to this commit, refreshing occurred after multicasting which
meant that listeners added by a different `SpringApplicationRunListener`
would not be picked up. This caused properties from tests that have
`UseMainMethod` set to `ALWAYS` or `WHEN_AVAILABLE` to be missing.

Fixes gh-32860
2022-10-25 15:41:57 -07:00
Andy Wilkinson e6c37d698f Reinstate support for read timeouts with RestTemplateBuilder
Refactor the way `ClientHttpRequestFactory` instances are created in
order to support setting read timeouts.

Prior to this commit, the reflection based approach would call
`setReadTimeout`. As of Spring Framework 6.0, the
`HttpComponentsClientHttpRequestFactory` class no longer supports this
approach. The timeout must be set on the `HttpClientConnectionManager`
used in the `HttpClient` which can be passed in to the constructor.

In order to support this approach, the `ClientHttpRequestFactory` can
now be created using a `Function` rather than a `Supplier`. The
function accepts a `ClientHttpRequestFactorySettings` which provides
the timeout settings to apply.

The `ClientHttpRequestFactories` utility class provides methods to
create `ClientHttpRequestFactory` instances that respect the settings.
Whenever possible, these are created without using reflection.

Fixes gh-32857

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2022-10-25 14:41:19 -07:00
Moritz Halbritter 383d6c897f Remove reflection for SimpleRequestExpectationManager creation
Closes gh-32867
2022-10-25 16:15:51 +02:00
Moritz Halbritter 9ee3fd0b0b Disable HttpGraphQlTesterContextCustomizer after AOT processing
After AOT processing, a HttpGraphQlTester bean will be defined directly
so the context customizer that initiates its registration is not
needed.

Closes gh-32872
2022-10-25 14:02:55 +02:00
Moritz Halbritter b014039a34 Disable WebTestClientContextCustomizer after AOT processing
After AOT processing, a WebTestClient bean will be defined directly
so the context customizer that initiates its registration is not
needed.

Closes gh-32859
2022-10-25 13:51:43 +02:00
Moritz Halbritter f2c004f604 Remove reflection in OutputCaptureExtension
Closes gh-32870
2022-10-25 11:42:52 +02:00
Moritz Halbritter 512a4c7544 Revert "Register runtime hints for OutputCapture"
This reverts commit 35abc3a6dc.
2022-10-25 11:40:44 +02:00
Moritz Halbritter 35abc3a6dc Register runtime hints for OutputCapture
Closes gh-32870
2022-10-25 11:29:12 +02:00
Andy Wilkinson b78e7b5ac7 Disable TestRestTemplateContextCustomizer after AOT processing
After AOT processing, a TestRestTemplate bean will be defined
directly so the context customizer that initiates its registration is
not needed. We'd already disabled the registrar but this is
insufficient in Graal 22.3 which fails fast when the customizer tries
to reference the registrar.

Fixes gh-32848
2022-10-24 10:18:08 +01:00
Andy Wilkinson 7bae02be2d Adapt to breaking changes to AotProcessor settings
See gh-32696
2022-10-18 17:42:00 +01:00
Andy Wilkinson d351086a06 Adapt to breaking changes to AOT processing entry points
See gh-32550
2022-10-10 22:02:25 +01:00
Andy Wilkinson 68e4aa232b Prevent duplicate registration of TestRestTemplate after AOT processing
Closes gh-32542
2022-10-06 12:56:38 +01:00
Johnny Lim 64132afba4 Add Javadoc since for UseMainMethod
See gh-32568
2022-10-06 11:27:05 +01:00
Phillip Webb e0b67889a8 Use Stream.toList instead of Stream.collect when possible
Update code to make use of `Stream.toList()` whenever possible.

Closes gh-28177
2022-10-04 00:29:22 -07:00
Phillip Webb 118836d204 Merge branch '2.7.x'
Closes gh-32576
2022-10-03 17:56:21 -07:00
Phillip Webb 0f4d98b1f4 Merge branch '2.6.x' into 2.7.x
Closes gh-32575
2022-10-03 17:56:10 -07:00
Phillip Webb e917bd0ed0 Only build OutputCapture strings when necessary
Update `OutputCapture` so that expensive build operations are only
performed when necessary. This update is especially important for Kotlin
users calling `"Expected String" in output` since this results in a call
to Kotlin's `CharSequence.contains` which calls the `length()` and
`charAt()` methods many times.

Closes gh-32033
2022-10-03 16:55:44 -07:00
Andy Wilkinson 51df7813a5 Remove code deprecated in 2.x and add since and forRemoval attributes
Closes gh-32548
Closes gh-32549
2022-09-30 14:39:05 +01:00
Phillip Webb 7a5b61fd19 Replace AotApplicationContextInitializer with Framework version 2022-09-29 16:37:26 -07:00
Brian Clozel cc169e7623 Adapt TestRestTemplate to httpclient5 changes
This commit adapts the `TestRestTemplate` implementation to the
httpclient5 API since httpclient 4.x is now unsupported in Spring
Framework.

See gh-32461
2022-09-29 18:55:42 +02:00
Stephane Nicoll 3702c71fc1 Adapt to Spring AOT changes 2022-09-29 18:55:41 +02:00
Stephane Nicoll f6f545dbf1 Merge branch '2.7.x'
Closes gh-32510
2022-09-27 08:28:40 +02:00
Stephane Nicoll 33680e5acc Merge branch '2.6.x' into 2.7.x
Closes gh-32509
2022-09-27 08:28:15 +02:00
dreis2211 cee353fba6 Avoid using JUnit 4 assertions
See gh-32504
2022-09-27 08:11:47 +02:00
Stephane Nicoll 0f325f98b5 Disable ContextCustomizer implementations at runtime if necessary
This commit disables ContextCustomizer implementations that tune a
test configuration context at runtime. Previously, these ran again and
required additional hints to work properly.

Rather than contributing those hints, the customizer is skipped as its
impact is irrelevant in an AOT-optimized context: the context is fully
prepared and the updates on the MergedContextConfiguration are not taken
into account.

Closes gh-32422
2022-09-20 04:34:58 +02:00
Stephane Nicoll 190d4cbc2f Relax ImportsContextCustomizer to only require a class name
Closes gh-32421
2022-09-19 10:45:33 +02:00