Commit Graph

868 Commits

Author SHA1 Message Date
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
Andy Wilkinson b357239861 Upgrade to Jakarta Activation 2.1.0
Closes gh-33045
2022-11-08 11:01:17 +00: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
Brian Clozel 5fb2a50ad0 Adapt build dependencies to httpclient5
As htttpclient 4.x is not supported anymore by `RestTemplate`, this
commit changes such dependencies to httpclient5 instead. In some cases,
the httpclient 4.x was transitively brought by a non-Spring dependency.

See gh-32461
2022-09-29 18:55:41 +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
Phillip Webb 7f5785182d Switch @SpringBootTest to UseMainMethod.NEVER by default
See gh-22405
2022-09-15 12:37:26 -07:00
Phillip Webb 48f3cd75d4 Refine SpringBootTest.useMainMethod support
Refine `SpringBootContextLoader` so that calls to the main method do
not exit early and the hook is only used when necessary.

See gh-22405
2022-09-15 10:48:58 -07:00
Andy Wilkinson 0476b5da5d Upgrade to Selenium HtmlUnit 3.64.0 and Selenium 4.4.0
Closes gh-32372
Closes gh-32373
2022-09-15 12:31:56 +01:00
Phillip Webb 4d037c3003 Update SpringBootContextLoader to support AOT
Update `SpringBootContextLoader` so that it now implements the
`AotContextLoader` interface. The `ContextLoaderHook` will abandon
at `contextLoaded` if the test class is being AOT processed.

This commit also introduces a new `AotApplicationContextInitializer`
which allows us to plug-in an alternative AOT application context
listener when the `SpringApplication` is running in test mode.

Closes gh-31965
2022-09-14 22:37:47 -07:00
Phillip Webb 41e0bbf4bb Add SpringBootTest.useMainMethod support
Add a new `useMainMethod` attribute to `SpringBootTest` which can be
used to determine how the test should run. The three available options
are:

	- `ALWAYS`
	- `NEVER`
	- `WHEN_AVAILABLE`

The default is `WHEN_AVAILABLE` which will attempt to launch the test
using the `main` method if there is one.

The `SpringBootContextLoader` has been updated to use the new
`SpringApplicationHook` interface when the main method is being used.

Closes gh-22405
2022-09-14 22:37:37 -07:00
Phillip Webb fadbb4b763 Polish SpringBootContextLoader 2022-09-14 22:34:53 -07:00
Phillip Webb 46be4a3f30 Merge branch '2.7.x' 2022-09-08 19:38:18 -07:00
Phillip Webb e599a70425 Disable ResetMocksTestExecutionListener on native
Add a guard for `ResetMocksTestExecutionListener` so that it is
not applied when running in a native image.

See gh-32195
2022-08-30 20:40:34 -07:00
Andy Wilkinson ba93e6c0ed Restore support for Jersey
Closes gh-28637
2022-08-08 15:45:20 +01:00
Phillip Webb dd87cf47a4 Revert SpringBootContextLoader and ErrorPageFilterIntegrationTests changes"
Spring Framework has change the signature so we no longer need the updates.
2022-08-03 15:43:57 +01:00
Phillip Webb 2dae04b2f4 Adapt SpringBootContextLoader to upstream Spring Framework changes 2022-08-03 12:27:30 +01:00
Brian Clozel a8c558a671 Fix build after Spring Framework deprecation
See spring-projects/spring-framework#28905
2022-08-02 15:03:13 +02:00
Brian Clozel 38f1bc9793 Reinstate Spring for GraphQL auto-configuration
This commit adds the Spring for GraphQL auto-configuration back
into Spring Boot 3.0, now that a 1.1.0 release is scheduled with the
required baseline. This release also needs GraphQL Java 19.0 as a
baseline.

Closes gh-31809
2022-08-01 14:33:25 +02:00
Phillip Webb 7377d85096 Merge branch '2.7.x'
Closes gh-31866
2022-07-26 12:18:14 +01:00
Phillip Webb a4ef6a7c5c Merge branch '2.6.x' into 2.7.x
Closes gh-31865
2022-07-26 12:13:16 +01:00
Phillip Webb f8412847dc Update copyright year for "Fix typos in code and documentation"
See gh-31734
2022-07-26 12:08:30 +01:00
Marc Wrobel dbfc6bded4 Fix typos in code and documentation
See gh-31734
2022-07-26 12:08:07 +01:00
Andy Wilkinson ac59b5781f Align with breaking changes in spring-test
See gh-31241
2022-06-26 09:55:36 +01:00
dreis2211 5db04da275 Use pattern matching for instanceof where appropriate
See gh-31475
2022-06-20 17:55:36 +01:00
Stephane Nicoll b99295fff4 Revert "Polish contribution"
This reverts commit a000ed4beb.

See gh-31454
2022-06-19 10:01:44 +02:00
Stephane Nicoll a000ed4beb Polish contribution
See gh-31454
2022-06-19 10:00:47 +02:00
Johnny Lim c3f1b4f595 Add Javadoc since to AbstractApplicationContextRunner.prepare()
See gh-31454
2022-06-19 09:59:47 +02:00
Phillip Webb e8f9386594 Add Runnable variant of TestPropertyValues.applyToSystemProperties
Closes gh-31303
2022-06-08 19:24:45 -07:00
Phillip Webb 11184aae8d Allow ApplicationContextRunner to return non-refreshed context
Add `AbstractApplicationContextRunner.prepare` which can be used to
test an `ApplicationContext` that has been prepared but not refreshed.

Closes gh-31302
2022-06-08 19:02:12 -07:00
Andy Wilkinson 62f40f2c38 Apply initializers and bean registrations before registering classes
Previously, classes were registered first which meant that their
conditions were evaluated before any initializers and bean
registrations were applied. This prevented the bean registrations and
initializers from affecting the outcome of the condition evaluation.

This commit inverts the ordering so that classes are not registerd,
and therefore their conditions are not evaluated, until after the
bean registrations and initializers have been applied.

Closes gh-31280
2022-06-08 18:45:54 +01:00
Andy Wilkinson 4bb5ba2bd0 Merge branch '2.7.x' 2022-05-26 18:26:52 +01:00
Andy Wilkinson 935d1264e0 Merge branch '2.6.x' into 2.7.x 2022-05-26 18:13:08 +01:00
Andy Wilkinson 3d203d0215 Polish 2022-05-26 17:30:39 +01:00
Andy Wilkinson 5dfa5adb75 Merge branch '2.7.x'
Closes gh-31178
2022-05-26 15:54:58 +01:00
Andy Wilkinson 455ee0ce22 Merge branch '2.6.x' into 2.7.x
Closes gh-31177
2022-05-26 15:53:38 +01:00
Andy Wilkinson ee45fd2fc8 Remove redundant throws declarations from internal APIs
Closes gh-31176
2022-05-26 15:47:35 +01:00
Andy Wilkinson b3a4982f31 Merge branch '2.6.x' into 2.7.x
Closes gh-31174
2022-05-26 14:01:23 +01:00
Andy Wilkinson cbf42dea14 Update deprecation messages to change removal version from 2.8 to 3.0
Closes gh-30903
2022-05-26 13:59:03 +01:00
Brian Clozel 5352c441e1 Do not use application/graphql as default MIME type
As seen in spring-projects/spring-graphql#375, Spring Boot should also
use "application/json" as the default MIME type but remain compatible
with "application/graphql+json" still if clients POST content with this
type or explicitly accept it.

Closes gh-30860
2022-05-04 13:05:45 +02:00
Andy Wilkinson 9658661bd4 Merge branch '2.7.x' 2022-04-14 14:53:40 +01:00
Andy Wilkinson 7789a18d23 Merge branch '2.6.x' into 2.7.x
Closes gh-30667
2022-04-14 14:51:22 +01:00
Andy Wilkinson d4348279a7 Merge branch '2.5.x' into 2.6.x
Closes gh-30666
2022-04-14 14:51:09 +01:00
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
2022-04-14 14:44:30 +01:00
Andy Wilkinson 21ccd58f67 Merge branch '2.7.x' 2022-04-14 13:29:08 +01:00
Andy Wilkinson 4545d39603 Merge branch '2.6.x' into 2.7.x
Closes gh-30665
2022-04-14 13:28:39 +01:00
Andy Wilkinson 887fa4a13f Merge branch '2.5.x' into 2.6.x
Closes gh-30664
2022-04-14 12:40:29 +01:00
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
2022-04-14 12:26:07 +01:00
Andy Wilkinson b871a1e457 Merge branch '2.7.x' 2022-04-12 08:51:47 +01:00
Andy Wilkinson 48f8021d88 Migrate @Local*Port annotations to spring-boot-test
Closes gh-29589
2022-04-12 08:48:43 +01:00
Brian Clozel 1c71567c94 Support "application/graphql+json" media type in GraphQL HTTP mapping
As seen in spring-projects/spring-graphql#108, the GraphQL HTTP spec now
requires the "application/graphql+json" media type and accepts
"application/json" for backwards compatibility.

This commit updates the `RouterFunction` definition for the GraphQL HTTP
endpoints so that both types are accepted.

Closes gh-30407
2022-04-04 16:45:11 +02:00
Andy Wilkinson e3b2fb5deb Merge branch '2.7.x' 2022-03-23 11:18:28 +00:00
Andy Wilkinson bcb71dfd1b Merge branch '2.6.x' into 2.7.x
Closes gh-30383
2022-03-23 11:18:04 +00:00
Andy Wilkinson 1244c429a6 Merge branch '2.5.x' into 2.6.x
Closes gh-30382
2022-03-23 11:17:36 +00:00
Andy Wilkinson e927cd71dd Clarify type matching performed by MockBean and SpyBean
Closes gh-28656
2022-03-23 11:17:07 +00:00
Andy Wilkinson dd812a3f76 Upgrade to Groovy 4.0.1
Closes gh-30279
2022-03-18 12:38:41 +00:00
Brian Clozel 81754c8bc4 Upgrade to Spring GraphQL 1.0.0-SNAPSHOT
This commit switches to 1.0.0-SNAPSHOT for Spring GraphQL, before its
upcoming 1.0.0-M6 version.

This commit adapts to the changes introduced in
spring-projects/spring-graphql#317 : now that `GraphQlClient` has been
introduced, `GraphQlTester` has been aligned with the new
infrastructure. The `@GraphQlTest` and `@SpringBootTest` testing support
is now using different variants for each.

All samples have been updated to use the proper GraphQL terminology, see
and spring-projects/spring-graphql#310 .

See gh-29637
2022-03-08 17:54:54 +01:00
Andy Wilkinson 3f489a374c Merge branch '2.7.x' 2022-02-19 11:36:31 +00:00
Andy Wilkinson 5f2ae858b6 Merge branch '2.6.x' into 2.7.x
Closes gh-29910
2022-02-19 11:36:20 +00:00
Andy Wilkinson 95d67a985b Merge branch 'gh-29639' into 2.6.x
Closes gh-29909
2022-02-19 11:36:09 +00:00
Andy Wilkinson 5baa71f1b3 Allow beans with circular dependencies to be spied
Closes gh-29639
2022-02-19 11:35:58 +00:00
Andy Wilkinson 9a3f053034 Allow beans with circular dependencies to be spied
Closes gh-29639
2022-02-19 11:35:28 +00:00
Phillip Webb ff4b92a3ba Update copyright year of changed files 2022-02-16 20:44:54 -08:00
Phillip Webb a282f912e6 Organize imports
Organize imports according to updated checkstyle rules.
2022-02-02 19:16:13 -08:00
Stephane Nicoll b403877cc1 Merge branch '2.7.x' 2022-02-01 13:52:17 +01:00
Stephane Nicoll 067af65152 Fix formatting violations 2022-02-01 13:52:06 +01:00
Stephane Nicoll 41fb9cf562 Merge branch '2.7.x' 2022-02-01 11:15:49 +01:00
Stephane Nicoll f812b33cbd Merge branch '2.6.x' into 2.7.x
Closes gh-29613
2022-02-01 11:07:31 +01:00
Stephane Nicoll 136b5959c3 Merge branch '2.5.x' into 2.6.x
Closes gh-29612
2022-02-01 10:59:08 +01:00
Stephane Nicoll 7f17f819a6 Polish "Enforce use of BDDMockito"
See gh-29178
2022-02-01 10:03:18 +01:00
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
2022-02-01 09:37:15 +01:00
Andy Wilkinson de3b9a4910 Remove code deprecated for removal in 2.x
Closes gh-29482
2022-01-19 17:25:14 +00:00
Stephane Nicoll 4d03f89a55 Harmonize dependency upgrades with Spring Boot 2.7.0-M1
Closes gh-29476
2022-01-19 10:39:18 +01:00
Phillip Webb 32e8b30c36 Merge branch '2.7.x'
Closes gh-29408
2022-01-14 17:36:20 -08:00
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
2022-01-14 17:35:58 -08:00
Phillip Webb 05a1ef233a Merge branch '2.7.x'
Closes gh-29407
2022-01-14 16:33:20 -08:00
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
2022-01-14 16:30:28 -08:00
Phillip Webb cb97aff1e7 Merge branch '2.7.x' 2022-01-14 13:57:35 -08:00
Phillip Webb 9278a502c7 Merge branch '2.6.x' into 2.7.x 2022-01-14 13:57:25 -08:00
Phillip Webb 14fe9347b5 Merge branch '2.5.x' into 2.6.x 2022-01-14 13:56:47 -08:00
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
2022-01-14 13:47:22 -08:00
Stephane Nicoll 4dac38cb63 Merge branch '2.7.x' 2022-01-13 08:46:08 +01:00
Stephane Nicoll 1bf13371c4 Merge branch '2.6.x' into 2.7.x
Closes gh-29378
2022-01-13 08:45:59 +01:00
Stephane Nicoll 8384019a41 Merge branch '2.5.x' into 2.6.x
Closes gh-29377
2022-01-13 08:45:48 +01:00
Stephane Nicoll 5f03ace40f Update copyright year of changed file
See gh-29112
2022-01-13 08:43:03 +01:00
izeye 74c522c745 Polish SpringBootContextLoaderTests
See gh-29112
2022-01-13 08:42:36 +01:00
Phillip Webb 3d6840e715 Merge branch '2.7.x'
Closes gh-29376
2022-01-12 15:32:51 -08:00
Phillip Webb fee45e056a Merge branch '2.6.x' into 2.7.x
Closes gh-29375
2022-01-12 15:32:34 -08:00
Phillip Webb 91d2b1b988 Merge branch '2.5.x' into 2.6.x
Closes gh-29374
2022-01-12 15:32:00 -08:00
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
2022-01-12 14:21:52 -08:00
Phillip Webb 06398eabed Merge branch '2.7.x' 2022-01-04 12:26:24 -08:00
Phillip Webb b25e92f3e2 Merge branch '2.6.x' into 2.7.x 2022-01-04 12:24:34 -08:00
Phillip Webb 760dcffd8b Merge branch '2.7.x' 2022-01-04 12:22:54 -08:00
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
2022-01-03 17:36:57 +01:00
Stephane Nicoll 7a016a68f1 Upgrade to Selenium HtmlUnit 3.56.0
Closes gh-29238
2022-01-03 11:05:56 +01:00
Stephane Nicoll a2bed160f0 Upgrade to Selenium 4.1.1
Closes gh-29237
2022-01-03 11:04:53 +01:00
Stephane Nicoll 09486b8fc7 Merge branch '2.7.x' 2021-12-27 12:03:11 +01:00
Stephane Nicoll 2b140950e3 Merge branch '2.6.x' into 2.7.x
Closes gh-29176
2021-12-27 12:02:57 +01:00
izeye 7fbb5749d1 Polish
See gh-29157
2021-12-27 12:01:50 +01:00
Brian Clozel f61c87c3a7 Revert "Merge branch '2.7.x'"
This reverts commit f0677a119c, reversing
changes made to 938d58f32c.
2021-12-21 09:05:06 +01:00
Brian Clozel f0677a119c Merge branch '2.7.x' 2021-12-21 09:04:10 +01:00
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
2021-12-21 08:34:06 +01:00
Phillip Webb f3bcbca841 Update copyright year of changed files 2021-12-16 13:05:17 -08:00
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
2021-11-30 20:32:16 +00:00
Andy Wilkinson 8bf2ffd93c Drop support for Jersey until jersey-spring6 is available
Closes gh-28808
2021-11-30 15:39:39 +00:00
Andy Wilkinson 5944041f2a Switch to Yasson for JSON-B testing
Closes gh-28615
2021-11-30 15:39:08 +00:00
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
2021-11-24 10:29:35 -08:00
Phillip Webb beb68671bb Update copyright year of changed files 2021-11-24 10:23:32 -08:00
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
2021-11-24 10:17:02 -08:00
Madhura Bhave 6b79d2860f Merge branch '2.5.x' into main
Closes gh-28724
2021-11-17 16:41:23 -08:00
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
2021-11-17 16:40:53 -08:00
Andy Wilkinson 2a342ef416 Merge branch '2.5.x'
Closes gh-28662
2021-11-12 23:40:35 +00:00
Andy Wilkinson 5e4a502b2d Merge branch '2.4.x' into 2.5.x
Closes gh-28661
2021-11-12 20:31:25 +00:00
Andy Wilkinson 2cec3971d7 Prohibit unwanted dependencies in all modules not just starters
Closes gh-28658
2021-11-12 20:04:35 +00:00
Phillip Webb d8629fc63d Merge branch '2.5.x' 2021-11-08 13:14:52 -08:00
Phillip Webb ddd38a7ac3 Merge branch '2.4.x' into 2.5.x 2021-11-08 13:14:35 -08:00
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.
2021-11-08 13:13:04 -08:00
Phillip Webb 0a6991e744 Merge branch '2.5.x'
Closes gh-28566
2021-11-08 13:11:03 -08:00
Phillip Webb 6406ee5609 Merge branch '2.4.x' into 2.5.x
Closes gh-28565
2021-11-08 13:08:52 -08:00
Phillip Webb 8a14e1e2e9 Polish 'Ignore JUnit annotations when caching test contexts'
See gh-28563
2021-11-08 13:07:26 -08:00
Loïc Ledoyen 23876d8a32 Ignore JUnit annotations when caching test contexts
Update `ImportsContextCustomizer` to ignore JUnit annotations.

See gh-28563
2021-11-08 13:06:23 -08:00
Stephane Nicoll c05223d9c8 Merge branch '2.5.x'
Closes gh-28545
2021-11-06 12:06:14 +01:00
Stephane Nicoll 4304eea319 Polish contribution
See gh-28531
2021-11-06 12:03:22 +01:00
dreis2211 7d594aa301 Avoid duplicate AOP proxy class definition with FilteredClassLoader
See gh-28531
2021-11-06 11:58:28 +01:00
Stephane Nicoll bf88405121 Flag BeanDefinitionRegistryPostProcessor beans with role infrastructure
Closes gh-28540
2021-11-05 14:20:37 +01:00
Stephane Nicoll fbe614a61b Fix bean type visibility
See gh-28437
2021-11-02 14:41:32 +01:00
Stephane Nicoll 2be0161f9a Fix bean type visibility
See gh-28437
2021-11-02 12:35:19 +01:00
Andy Wilkinson 84b553a8ca Upgrade to Jackson Bom 2.13.0
Closes gh-28298
2021-10-13 10:32:17 +01:00
Leo Li 1770f065a5 Polish
See gh-28239
2021-10-13 09:07:33 +02:00
Andy Wilkinson 1a505964ee Merge branch '2.5.x'
Closes gh-28207
2021-10-06 10:03:24 +01:00
Andy Wilkinson 1931104d13 Merge branch '2.4.x' into 2.5.x
Closes gh-28206
2021-10-06 09:57:19 +01:00
Andy Wilkinson 9c9fbf400e Upgrade to Spring Java Format 0.0.29
Closes gh-28205
2021-10-06 09:52:45 +01:00
Andy Wilkinson 575d83737a Merge branch '2.5.x'
Closes gh-27799
2021-08-23 13:27:22 +01:00
Andy Wilkinson e409489859 Merge branch '2.4.x' into 2.5.x
Closes gh-27798
2021-08-23 13:26:37 +01:00
Andy Wilkinson f8ef90813f Allow @MockBean to be used with Framework's @Repeat
Fixes gh-27693
2021-08-23 12:38:15 +01:00
Andy Wilkinson fd2fbcb3c6 Merge branch '2.5.x'
Closes gh-27758
2021-08-18 18:28:34 +01:00
Andy Wilkinson 6d8ba3e8b1 Merge branch '2.4.x' into 2.5.x
Closes gh-27757
2021-08-18 17:56:32 +01:00
Andy Wilkinson ffbd28b60a Polish "Polish access modifiers for test classes"
See gh-27736
2021-08-18 17:52:42 +01:00
izeye 8a425dedfd Polish access modifiers for test classes
See gh-27736
2021-08-18 17:38:40 +01:00
Andy Wilkinson 01e741d703 Prohibit circular references by default
Closes gh-27652
2021-08-17 14:51:39 +01:00
Andy Wilkinson 228e4e3bc8 Make it easier to add new config options to ApplicationContextRunners
Closes gh-27690
2021-08-17 14:51:08 +01:00
Andy Wilkinson e30bf0e3e5 Merge branch '2.5.x'
Closes gh-27528
2021-07-29 18:47:40 +01:00
Andy Wilkinson 43d623e696 Merge branch '2.4.x' into 2.5.x
Closes gh-27527
2021-07-29 18:47:31 +01:00
Andy Wilkinson 7eb5f35f2f Make WebTestClient creation back off when no HTTP client available
Fixes gh-27520
2021-07-29 18:45:53 +01:00
Andy Wilkinson 355226c21e Merge branch '2.5.x'
Closes gh-27474
2021-07-23 13:09:37 +01:00
Andy Wilkinson eaca9c7a83 Merge branch '2.4.x' into 2.5.x
Closes gh-27473
2021-07-23 13:09:27 +01:00
Andy Wilkinson ee07d6c3ca Increase response timeout for server-bound WebTestClients
Closes gh-27472
2021-07-23 13:06:25 +01:00
Andy Wilkinson 3e0baf1bfd Merge branch '2.5.x'
Closes gh-27353
2021-07-15 19:45:32 +01:00
Andy Wilkinson c8c784bd5c Allow @SpyBean to be used to spy on a Spring Data repository
Fixes gh-7033
2021-07-15 19:44:52 +01:00
Stephane Nicoll dc5acb0019 Remove deprecated code flagged for removal
Closes gh-27303
2021-07-14 11:50:01 +02:00
Stephane Nicoll 9e46061aa6 Allow to chain ContextConsumer implementations
Closes gh-26723
2021-06-11 16:04:34 +02:00
Phillip Webb 4d62e47c5d Merge branch '2.3.x' into 2.4.x 2021-06-08 18:05:12 -07:00
Phillip Webb 9e1c78da99 Update copyright year of changed files 2021-06-08 18:03:46 -07:00
Andy Wilkinson e317079446 Merge branch '2.4.x'
Closes gh-26524
2021-05-17 11:27:57 +01:00
Andy Wilkinson 49d362fd7f Merge branch '2.3.x' into 2.4.x
Closes gh-26523
2021-05-17 11:27:46 +01:00
weixsun 7f445630e4 Remove unnecessary semicolon
See gh-26446
2021-05-17 11:26:57 +01:00
Andy Wilkinson 05a64ecb2c Merge branch '2.4.x'
Closes gh-26522
2021-05-17 11:24:29 +01:00
Andy Wilkinson 2a2c68f8f2 Merge branch '2.3.x' into 2.4.x
Closes gh-26521
2021-05-17 11:22:48 +01:00
Andy Wilkinson be807bab12 Polish "Improve documentation of TestRestTemplate's fault tolerance"
See gh-26227
2021-05-17 11:07:42 +01:00
Carlos Rafael de Oliveira Carneiro a6fa8addb9 Improve documentation of TestRestTemplate's fault tolerance
See gh-26227
2021-05-17 11:07:42 +01:00
Stephane Nicoll d3c817b7ba Polish "Remove unnecessary throws declaration in tests"
See gh-26441
2021-05-17 09:36:53 +02:00
weixsun 8a2be288a3 Remove unnecessary throws declaration in tests
See gh-26441
2021-05-17 09:31:51 +02:00
Stephane Nicoll 691bbcfdfd Update copyright year of changed files
See gh-26448
2021-05-16 15:29:48 +02:00
weixsun d115361980 Remove redundant suppression
See gh-26448
2021-05-16 15:10:48 +02:00
Phillip Webb a28a3ae090 Merge branch '2.3.x' into 2.4.x 2021-03-30 09:25:46 -07:00
Phillip Webb 363f5829d1 Merge branch '2.3.x' into 2.4.x
Closes gh-25825
2021-03-29 15:46:50 -07:00
Phillip Webb 26dd1b9a26 Update deprecations with for removal targets
Update all deprecation tags to include a removal target.

Closes gh-25808
2021-03-29 15:44:58 -07:00
Phillip Webb 11a94ee6f0 Merge branch '2.3.x' into 2.4.x 2021-03-23 12:52:07 -07:00
Phillip Webb 82127fdaa3 Update copyright year of changed files 2021-03-23 12:50:49 -07:00
Andy Wilkinson 2f95c1e2c8 Merge branch '2.3.x' into 2.4.x
Closes gh-25513
2021-03-05 14:16:07 +00:00
Andy Wilkinson 22b73f3020 Polish "Improve documentaion of Mockito test execution listeners"
See gh-25375
2021-03-05 14:14:36 +00:00
dreis2211 1ccd8dae8a Allow the project to be built with Java 16
See gh-25171
2021-03-04 18:54:56 +00:00
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
2021-02-04 10:59:00 +00:00
Andy Wilkinson 788a42d694 Merge branch '2.3.x' into 2.4.x
See gh-25076
2021-02-02 15:12:27 +00:00
Andy Wilkinson 67479b6380 Add junit-platform-launcher dependency by convention
Closes gh-25074
2021-02-02 13:03:21 +00:00
Phillip Webb d06407ec0a Update copyright year of changed files 2021-01-26 19:06:14 -08:00