Commit Graph

742 Commits

Author SHA1 Message Date
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
Phillip Webb
d95d7a0245 Update code for Spring Framework 5.3.4
See gh-24998
2021-01-26 17:35:54 -08:00
Madhura Bhave
920136d908 Merge branch '2.3.x' into 2.4.x
Closes gh-24678
2021-01-06 16:44:32 -08:00
Madhura Bhave
73a2a4b383 Consider context-path for WebTestClient baseUrl
Fixes gh-24168
2021-01-06 16:42:09 -08:00
dreis2211
fb207f73e7 Remove deprecated SpringBootContextLoader#getArgs()
See gh-24550
2020-12-21 09:44:28 +01:00
Phillip Webb
d6890e39a7 Merge branch '2.3.x' into 2.4.x
Closes gh-24536
2020-12-16 13:10:35 -08:00
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
2020-12-16 12:50:54 -08:00
Phillip Webb
72d36e0c07 Update copyright year of changed files 2020-12-10 10:46:04 -08:00
Phillip Webb
30c27274e2 Merge branch '2.3.x'
Closes gh-24339
2020-12-04 18:31:55 -08:00
Phillip Webb
5f351a6983 Merge branch '2.2.x' into 2.3.x
Closes gh-24338
2020-12-04 18:21:57 -08:00
Phillip Webb
837fc83527 Fix checkstyle header violations
See gh-24337
2020-12-04 18:05:53 -08:00
Stephane Nicoll
f248cfe79c Polish "Check that WebClient is available"
See gh-24152
2020-11-25 14:52:47 +01:00
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
2020-11-25 14:38:42 +01:00
Andy Wilkinson
d41e739f8c Merge branch '2.3.x'
Closes gh-24013
2020-11-03 14:58:41 +00:00
Andy Wilkinson
dc86e8ce30 Merge branch '2.2.x' into 2.3.x
Closes gh-24012
2020-11-03 14:58:28 +00:00
Andy Wilkinson
6548ca4c11 Implement equals and hashCode in TestTypeExcludeFilter
Fixes gh-23978
2020-11-03 14:50:00 +00:00
Phillip Webb
929d8fcd3c Update copyright year of changed files 2020-10-29 09:08:13 -07:00
Andy Wilkinson
506f7acc8d Streamline use of TestContextAnnotationUtils
See gh-12470
2020-10-28 10:20:14 +00:00
Andy Wilkinson
d9084eab67 Provide Mockito with a MockResolver that removes Spring-created proxies 2020-10-28 09:43:09 +00:00
Andy Wilkinson
6b437ece54 Inherit enclosing class's configuration in nested tests
Fixes gh-12470
2020-10-28 08:56:42 +00:00
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
2020-10-23 12:00:25 -07:00
Andy Wilkinson
2d8528d5bd Adapt to deprecation of StringUtils.isEmpty(Object)
See gh-23774
2020-10-22 17:09:33 +01:00
Andy Wilkinson
98914b65bc Merge branch '2.3.x'
Closes gh-23672
2020-10-13 11:23:00 +01:00
Andy Wilkinson
a9a32f39b5 Merge branch '2.2.x' into 2.3.x
Closes gh-23671
2020-10-13 11:20:18 +01:00
Andy Wilkinson
667ccdae84 Simplify temp directory creation and improve diagnostics
Closes gh-23622
2020-10-13 11:18:06 +01:00
Andy Wilkinson
7b183ef99d Merge branch '2.3.x'
Closes gh-23478
2020-09-24 14:46:42 +01:00
Andy Wilkinson
e626f7f47e Merge branch '2.2.x' into 2.3.x
Closes gh-23477
2020-09-24 14:45:55 +01:00
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
2020-09-24 14:43:51 +01:00
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
2020-09-17 00:31:00 -07:00
Phillip Webb
6509310fdb Fix DefaultPropertiesPropertySource package tangle
Relocate `DefaultPropertiesPropertySource` to fix a package tangle.

Closes gh-23383
2020-09-17 00:31:00 -07:00
Stephane Nicoll
91cc283c39 Upgrade to JUnit Jupiter 5.7.0
Closes gh-23351
2020-09-16 13:28:31 +02:00
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
2020-08-20 21:49:03 -07:00
Andy Wilkinson
969dd35e45 Upgrade to Mockito 3.4.6
Closes gh-22838
2020-08-10 15:22:03 +01:00
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
2020-08-06 14:35:43 -07:00
Phillip Webb
8d06b0f368 Merge branch '2.3.x' 2020-08-06 10:15:36 -07:00
Phillip Webb
4924573074 Merge branch '2.2.x' into 2.3.x 2020-08-06 10:15:22 -07:00
Phillip Webb
fdd6a89a61 Polish 2020-08-06 10:14:01 -07:00
Brian Clozel
fb1234a22c Upgrade to Reactor 2020.0.0 SNAPSHOTs
See gh-22667
2020-08-04 13:26:47 +02:00
Andy Wilkinson
d16838e4b7 Merge branch '2.3.x'
Closes gh-22584
2020-07-27 13:08:40 +01:00
Andy Wilkinson
39cb912819 Merge branch '2.2.x' into 2.3.x
Closes gh-22583
2020-07-27 13:08:14 +01:00
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
2020-07-27 13:04:02 +01:00
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>
2020-07-22 21:02:32 -07:00
Phillip Webb
14c1b0938a Polish 2020-07-22 18:25:27 -07:00
Phillip Webb
da69286838 Merge branch '2.3.x' 2020-07-22 17:39:27 -07:00
Phillip Webb
217b2eff89 Merge branch '2.2.x' into 2.3.x 2020-07-22 17:03:23 -07:00
Phillip Webb
b5e70157dc Update copyright year of changed files 2020-07-22 17:01:36 -07:00
Andy Wilkinson
0c8e52e877 Avoid using reflection to create SpringApplication's context
Closes gh-22322
2020-07-16 15:03:08 +01:00
XenoAmess
66dc24062f Fix typos in test code
See gh-22218
2020-07-07 10:01:48 +01:00
Andy Wilkinson
27c458ca26 Merge branch '2.3.x'
Closes gh-22160
2020-06-30 10:53:49 +01:00
Andy Wilkinson
f86831da9c Use TCCL at time of access for resource loading
Fixes gh-22119
2020-06-30 10:51:13 +01:00
Andy Wilkinson
0d6ea79007 Start building against Spring Framework 5.3.0 snapshots
See gh-21929
2020-06-22 18:02:21 +01:00
Madhura Bhave
f47e06c4ef Merge branch '2.3.x'
Closes gh-22007
2020-06-17 17:27:10 -07:00
Madhura Bhave
f4ad30c448 Merge branch '2.2.x' into 2.3.x
Closes gh-22006
2020-06-17 17:26:40 -07:00
Madhura Bhave
615cf63a82 Make MockBean resolve right type for abstract test class
Fixes gh-20916
2020-06-17 17:25:03 -07:00
Andy Wilkinson
9e08490522 Merge branch 'gh-21271'
Closes gh-21271
2020-06-16 12:52:17 +01:00
Andy Wilkinson
753bea64c6 Enable varargs compilation warnings
See gh-21271
2020-06-16 12:50:53 +01:00
Andy Wilkinson
056d5f3120 Enable deprecation compilation warnings
See gh-21271
2020-06-16 12:50:47 +01:00
Andy Wilkinson
0de466e06e Require dependency on s-b-dependencies to use its constraints
Previously, Spring Boot's modules published Gradle Module Metadata
(GMM) the declared a platform dependency on spring-boot-dependencies.
This provided versions for each module's own dependencies but also had
they unwanted side-effect of pulling in spring-boot-dependencies
constraints which would influence the version of other dependencies
declared in the same configuration. This was undesirable as users
should be able to opt in to this level of dependency management, either
by using the dependency management plugin or by using Gradle's built-in
support via a platform dependency on spring-boot-dependencies.

This commit reworks how Spring Boot's build uses
spring-boot-dependencies and spring-boot-parent to provide its own
dependency management. Configurations that aren't seen by consumers are
configured to extend a dependencyManagement configuration that has an
enforced platform dependency on spring-boot-parent. This enforces
spring-boot-parent's version constraints on Spring Boot's build without
making them visible to consumers. To ensure that the versions that
Spring Boot has been built against are visible to consumers, the
Maven publication that produces pom files and GMM for the published
modules is configured to use the resolved versions from the module's
runtime classpath.

Fixes gh-21911
2020-06-16 08:50:21 +01:00
Phillip Webb
0a05b4c9fd Update copyright year of changed files 2020-06-05 15:36:09 -07:00
Andy Wilkinson
daeca9f332 Restore Boot 2.2's compile-scoped dependencies
Fixes gh-21507
2020-06-03 12:55:11 +01:00
Phillip Webb
038ae93406 Update copyright year of changed files 2020-05-13 16:48:51 -07:00
Phillip Webb
49921d65ac Ensure @ActiveProfiles replaces existing profiles
Update `SpringBootContextLoader` to both add `spring.profiles.active`
properties and to directly call `Environment.setActiveProfiles`.
The additional `setActiveProfiles` call prevents `AbstractEnvironment`
from accidentally loading `spring.profiles.active` properties directly
when `doGetActiveProfiles` is called.

Directly setting active profiles has only become necessary since we
started adding properties using the square bracket notation. Previously
we added a comma-separated list which would be picked up by both the
`AbstractEnvironment` and the `ConfigurationFileApplicationListener`.

Closes gh-21302
2020-05-08 17:16:06 -07:00
Stephane Nicoll
846db6105f Merge branch '2.2.x'
Closes gh-21364
2020-05-08 14:51:49 +02:00
Stephane Nicoll
60ff8bafb5 Polish "Align TestRestTemplate Javadoc with documentation"
See gh-21318
2020-05-08 14:49:50 +02:00
Andrii Hrytsiuk
f11c030b71 Align TestRestTemplate Javadoc with documentation
See gh-21318
2020-05-08 14:48:21 +02:00
Phillip Webb
ad1248e4ec Replace "folder" with "directory"
Consistently use the term "directory" instead of "folder"

Closes gh-21218
2020-04-28 19:20:24 -07:00
dreis2211
c7d7facc3a Remove empty test rule package
See gh-21137
2020-04-27 10:32:44 +02:00
Stephane Nicoll
c7baf5fda1 Update copyright year of changed file
See gh-21009
2020-04-25 08:55:27 +02:00
dreis2211
5eb5bf0a2d Polish
See gh-21009
2020-04-25 08:54:47 +02:00
Stephane Nicoll
85e9f713b0 Update copyright year of changed files
See gh-21007
2020-04-25 08:50:51 +02:00
Johnny Lim
29717423a3 Remove this keyword on member method invocations
See gh-21007
2020-04-25 08:49:44 +02:00
Phillip Webb
b73d5038d5 Merge branch '2.2.x' 2020-04-23 14:35:08 -07:00
Phillip Webb
9bb53a4c37 Polish 2020-04-23 14:31:49 -07:00
Madhura Bhave
b3ccefdb57 Merge branch '2.2.x'
Closes gh-21102
2020-04-23 10:19:10 -07:00
Madhura Bhave
4dc9bbe127 @SpringBootTest classes with different args shouldn't share a context
Fixes gh-20866
2020-04-23 10:18:14 -07:00
Madhura Bhave
21bb249a73 Merge branch '2.2.x'
Closes gh-21090
2020-04-22 14:36:36 -07:00
Madhura Bhave
b9c2b7b257 Prevent early initialization in MockitoPostProcessor
Fixes gh-20665
2020-04-22 14:35:50 -07:00
Phillip Webb
7ab2bca376 Support commas in @ActiveProfiles
Update `SpringBootContextLoader` so that it correctly deals with an
`@ActiveProfiles` annotation that contains a comma.

Fixes gh-19537

Co-authored-by: Scott Frederick <sfrederick@pivotal.io>
Co-authored-by: Andy Wilkinson <awilkinson@pivotal.io>
2020-04-17 18:47:56 -07:00
Phillip Webb
3ca896e63f Polish 2020-04-07 12:10:49 -07:00
Stephane Nicoll
f4c68dbc98 Do not set server.port=-1 for non embedded tests
Closes gh-16998
2020-04-02 18:12:39 +02:00
dreis2211
674f1e77b5 Fix typos
See gh-20704
2020-03-28 08:42:59 +01:00
dreis2211
ef9f1d39a3 Remove redundant MockitoAnnotations.initMocks()
See gh-20601
2020-03-22 08:43:50 +01:00
dreis2211
a9dabe13bb Remove redundant useJUnitPlatform declarations
See gh-20206
2020-02-17 09:15:57 +01:00
dreis2211
20251ccae4 Remove superfluous useJUnit()
See gh-20035
2020-02-06 16:54:51 +01:00
Phillip Webb
1eee83a07e Update copyright year of changed files 2020-01-30 17:09:49 -08:00
Stephane Nicoll
eb852f1ad6 Disable bean overriding by default in ApplicationContextRunner
For consistency with SpringApplication, this commit disables bean
overriding by default in ApplicationContextRunner. Bean overriding can
be enabled again using withAllowBeanDefinitionOverriding.

Closes gh-18019
2020-01-28 15:57:28 +01:00
Stephane Nicoll
95be419527 Use Class.forName rather than ClassLoader.loadClass
This commit changes uses of ClassLoader.loadClass to Class.forName for
consistency with what was initiated in #19342 and better compatibility
with GraalVM.

Closes gh-19824
2020-01-23 10:47:53 +01:00
Phillip Webb
e0013454b5 Use parentheses when declaring dependencies
Update all dependencies declarations to use the form `scope(reference)`
rather than `scope reference`.

Prior to this commit we declared dependencies without parentheses unless
we were forced to add them due to an `exclude`.
2020-01-22 16:02:38 -08:00
Phillip Webb
0209cd3e4c Polish quote form used in Gradle scripts
Replace Gradle single quote strings with the double quote form
whenever possible. The change helps to being consistency to the
dependencies section where mostly single quotes were used, but
occasionally double quotes were required due to `${}` references.
2020-01-22 15:49:52 -08:00
dreis2211
042694bc53 Reinstate running of OutputCaptureRuleTests
See gh-19826
2020-01-21 09:47:41 +01:00
Andy Wilkinson
29d8b6db5a Merge branch '2.2.x'
Closes gh-19822
2020-01-20 15:18:18 +00:00
Andy Wilkinson
f708aace65 Merge branch '2.1.x' into 2.2.x
Fixes gh-19821
2020-01-20 15:18:00 +00:00
Andy Wilkinson
c85f19b75b Revert "Add profiles directly to the application environment for tests"
This reverts commit 487b9cbf96.

Fixes gh-19788
2020-01-20 15:01:09 +00:00
Scott Frederick
8f102aee68 Remove deprecated 2.2 code
See gh-19699
2020-01-16 14:44:52 +01:00
Andy Wilkinson
714a187d8f Rework dep mgmt again to avoid consumers picking up strict constraints
This paves the way for publishing Gradle module metadata once the
problem caused by snapshot versions and our two-step publication
process has been addressed.

See gh-19609
2020-01-15 12:33:18 +00:00
Andy Wilkinson
aefe52e4d0 Revert "Rework dep management to avoid consumers picking up strict constraints"
This reverts commit b34a311d02 as,
having disabled the publishing of Gradle's module metadata (4f75ab5),
the changes are no longer needed.

See gh-19609
2020-01-14 12:15:53 +00:00
Phillip Webb
f57281340c Merge branch '2.2.x' 2020-01-13 16:46:49 -08:00
Phillip Webb
3cfbfebbb1 Merge branch '2.1.x' into 2.2.x 2020-01-13 16:45:40 -08:00
Phillip Webb
9bd49562fe Update copyright year of changed files 2020-01-13 14:09:11 -08:00
Andy Wilkinson
b34a311d02 Rework dep management to avoid consumers picking up strict constraints
Previously, enforcedPlatform dependencies were using to pull in the
constraints defined in spring-boot-dependencies and
spring-boot-parent and applied them strictly so that the constrained
version had to be used. This worked as intended in Spring Boot's own
build but incorrectly enforced those same strict version requirements
on external consumers of Spring Boot's modules.

This commit reworks how Spring Boot defines its internal dependency
management so that platform dependencies are exposed to external
consumers while enforced platform dependencies are using internally.

See gh-19609
2020-01-13 19:59:56 +00:00
Andy Wilkinson
ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
2020-01-10 14:15:35 +00:00
Madhura Bhave
6944e52052 Merge branch '2.2.x' 2020-01-07 13:49:43 -08:00
Madhura Bhave
ac10ebba33 Fix checkstyle 2020-01-07 13:49:02 -08:00
Madhura Bhave
c82d728c93 Merge branch '2.2.x'
Closes gh-19561
2020-01-07 13:34:43 -08:00
Madhura Bhave
67fab60fbd Merge branch '2.1.x' into 2.2.x
Closes gh-19560
2020-01-07 13:33:32 -08:00
Scott Frederick
487b9cbf96 Add profiles directly to the application environment for tests
Prior to this commit, active profiles were being added to the Spring Boot
application environment by setting the `spring.profiles.active` property.
This could result in profiles getting parsed differently than other uses of `@ActiveProfiles`.
Setting the profiles directly in the `Environment` prevents this parsing.

See gh-19556
2020-01-07 13:23:09 -08:00
Stephane Nicoll
2c1e81adf0 Polish 2019-12-26 10:42:40 +01:00
Andy Wilkinson
9b0569cf81 Merge branch '2.1.x' into 2.2.x
Closes gh-19309
2019-12-05 16:15:15 +00:00
Andy Wilkinson
bc53fe0344 Recommend mockito-inline for mocking and spying of CGLib proxies
This reverts commit 52050c173c.

See gh-17817
Closes gh-19020
2019-12-05 16:13:02 +00:00
Stephane Nicoll
fd94608f73 Polish "Restore proxying of @Bean methods in @TestConfiguration"
See gh-18675
2019-10-22 09:13:00 +02:00
Dmytro Nosan
7faa606920 Restore proxying of @Bean methods in @TestConfiguration
See gh-18675
2019-10-22 09:10:05 +02:00
Stephane Nicoll
0bc5803e34 Merge branch '2.1.x'
Closes gh-18603
2019-10-15 14:38:59 +02:00
Stephane Nicoll
e4ba6049ff Clarify scope of "@SpringBootTest#classes"
See gh-18229
2019-10-15 14:36:28 +02:00
Johnny Lim
887c3b71f3 Fix matchesNestedConfigurationClassWithoutTestMethodsIfItHasTestable()
See gh-18559
2019-10-12 16:51:53 +01:00
Andy Wilkinson
96f85a40de Support customization of WebTestClient.Builder when using @SpringBootTest
Closes gh-15132
2019-10-02 17:51:00 +01:00
Andy Wilkinson
46c30d6bb0 Merge branch '2.1.x'
Closes gh-18476
2019-10-02 10:48:57 +01:00
Andy Wilkinson
3d4157ad6d Correct SCM URLs in published poms
Previously, Maven's default behaviour was relied up which resulted
in the artifact ID being appended to each URL as it was inherited.
This behaviour can only be disabled in Maven 3.6 and later, a version
that we cannot use due to an incompatibility with the Flatten Plugin.

This commit works around Maven's default behaviour by defining
properties for the SCM URL, connection, and developer connection and
then explicitly defining the settings in each pom using these
properties. The explicit definition of the properties in each pom
prevents them being inherited from the parent, thereby disabling the
unwanted appending of the artifact ID to the URL.

Fixes gh-18328
2019-10-02 10:48:30 +01:00
Phillip Webb
b65ba60980 Polish 'Simplify some code'
See gh-18438
2019-10-01 22:08:20 -07:00
kenneth
e6b45de41e Simplify some code
See gh-18438
2019-10-01 22:08:02 -07:00
Stephane Nicoll
c605419f19 Merge branch '2.1.x'
Closes gh-18379
2019-09-27 16:34:59 +02:00
Roland Weisleder
92ae7b21a1 Fix typo in ApplicationContextAssert
See gh-18372
2019-09-27 16:32:32 +02:00
Phillip Webb
ad32603635 Restore compatibility with MockRestServiceServer
Closes gh-17885
2019-09-16 10:17:41 +02:00
Stephane Nicoll
3d5530d15d Merge branch '2.1.x'
Closes gh-18234
2019-09-16 10:03:19 +02:00
Stephane Nicoll
9065c4997d Fix rebase from master 2019-09-16 09:52:55 +02:00
Stephane Nicoll
e05f42f0f3 Polish Add Testable to CLASS_ANNOTATIONS in TestTypeExcludeFilter"
See gh-18214
2019-09-16 09:44:01 +02:00
Leonard Brünings
b9c8d7dd60 Add Testable to CLASS_ANNOTATIONS in TestTypeExcludeFilter
See gh-18214
2019-09-16 09:42:55 +02:00
dreis2211
b4350a9d96 Remove unnecessary blank lines
See gh-18089
2019-09-03 08:48:10 +02:00