Commit Graph

184 Commits (b34b217d1e3c255dc85ff56fa74b28fdbf0ab45a)

Author SHA1 Message Date
Johnny Lim 680287635c Rename TestRestTemplateTestContextCustomizer*
Closes gh-12182
7 years ago
Phillip Webb cd5266ac03 Polish 7 years ago
Johnny Lim 2fe86da95b Use isTrue() and isFalse() for AssertJ
Closes gh-12170
7 years ago
igor-suhorukov fe023817c7 Polish static finals
Closes gh-12083
7 years ago
Johnny Lim 88b184ca23 Polish 7 years ago
Phillip Webb 9e75680e6f Polish 7 years ago
Brian Clozel db7268b841 Fix TestRestTemplate request factory management
This commit fixes two issues in `TestRestTemplate`:

* it improves the detection of the underlying request factory, using
reflection to look inside the intercepting request factory if
interceptors were configured

* it avoids reusing the same request factory when creating a new
`TestRestTemplate` with `withBasicAuth`. Sharing the same instance would
result in sharing authentication state (HTTP cookies). Since the
original request factory can't be detected consistently, a new one is
selected automatically

See gh-8697
7 years ago
Brian Clozel 03a6f97e76 TestRestTemplate should not override request factory
Previously `TestRestTemplate` would override the configured
`ClientHttpRequestFactory` if the Apache HTTP client library was on
classpath.

This commit fixes two issues:

1. The existing `ClientHttpRequestFactory` is overridden *only* if it is
using the Apache HTTP client variant, in order to wrap it with the
`TestRestTemplate` custom support

2. Calling `withBasicAuth` will no longer directly use the request
factory returned by the internal `RestTemplate`; if client interceptors
are configured, the request factory is wrapped with an
`InterceptingClientHttpRequestFactory`. If we don't unwrap it,
interceptors are copied/applied twice in the newly created
`TestRestTemplate` instance. For that, we need to use reflection as the
underlying request factory is not accessible directly.

Closes gh-8697
7 years ago
Phillip Webb 728b522307 Include scope support on ApplicationContextAssert
Update `ApplicationContextAssert` with support for scopes. Allows
tests to consider the all ancestors, or limit assertions to just the
current context.

Fixes gh-12015
7 years ago
Phillip Webb 7ab587a067 Add initializer support
Add `ApplicationContextInitializer` support to
`ApplicationContextRunner`.
7 years ago
Phillip Webb 0348889fd7 Polish 7 years ago
Brian Clozel 2be0c46562 Remove TestRestTemplate constructors taking template args
As discussed in gh-11872, `TestRestTemplate` constructor variants taking
a `RestTemplate` argument are confusing since the main goal of that
class is to mutate `RestTemplate`.

This commit removes all those constructor variants and replaces them
with `RestTemplateBuilder` arguments when possible.

Closes gh-11872
7 years ago
Andy Wilkinson 76a450dfba Format with Eclipse Oxygen SR2 7 years ago
Andy Wilkinson 37f3b1d1e5 Polish 7 years ago
Andy Wilkinson b3ed46af5a Polish 7 years ago
Phillip Webb 7ea6af0e46 Make AbstractApplicationContextRunner public
Fixes gh-11929
7 years ago
Andy Wilkinson 886f782b20 Merge branch '1.5.x' 7 years ago
Phillip Webb 69234f8c08 Polish 7 years ago
Andy Wilkinson 875091ed85 Polish “Remove or use unused method parameters”
Closes gh-11812
7 years ago
igor-suhorukov 717bd2c580 Remove or use unused method parameters 7 years ago
Phillip Webb 706aa7af59 Make getInitializers() a protected method
Update `SpringBootContextLoader` so that `getInitializers()` is now a
protected method for subclasses to override if necessary.

Closes gh-11457
7 years ago
Andy Wilkinson 458dde63a8 Explicitly order AbstractTestExecutionListener subclasses
By default, AbstractTestExecutionListeners have an order of lowest
precedence. This means that it is impossible to write a listener with
lower precedence that any listener that's using the default order.

This commit updates Boot's 6 AbstractTestExecutionListeners to order
them explicitly. MockitoTestExecutionListener performs injection of
Mockito mocks and spies into the test instance. It now has an order of
2050 giving it slightly lower precedence than the dependency injection
test execution listener (2000).

The remaining 5 listeners have all been ordered with lowest precedence
- 100. This leaves them near their current lowest precedence position
while creating some room for any listeners that require lower
precedence.

Closes gh-11796
7 years ago
dreis2211 a7663c88d3 Replace casted Mockito.any() calls
Closes gh-11817
7 years ago
Jon Schneider fd237f85cc Extract common micrometer test setup
Create `MetricsRun` that can be used to apply common micrometer test
configuration to a `ApplicationContextRunner`.

Closes gh-11804
7 years ago
Phillip Webb b7c52da457 Allow custom WebTestClient beans
Update `@SpringBootTest` `WebTestClient` support so that the bean
definition is only registered when the user has not defined or
auto-configured their own.

See gh-10556
7 years ago
Phillip Webb 177281a504 Allow custom TestRestTemplate beans
Update `@SpringBootTest` `TestRestTemplate` support so that the bean
definition is only registered when the user has not defined or
auto-configured their own.

See gh-10556
7 years ago
Phillip Webb ab6ad6aa4b Polish 7 years ago
andrey.onufreyko b19dcb13e2 Replace string arguments with char
Optimize method calls by replacing single character String arguments
with char.

Closes gh-11680
7 years ago
Stephane Nicoll c926bed6f5 Polish "Fix modifiers order"
Closes gh-11681
7 years ago
igor-suhorukov e2d05607f2 Fix modifiers order
See gh-11681
7 years ago
Phillip Webb f3379668ac Polish 7 years ago
Phillip Webb 6d93573db0 Merge branch '1.5.x' 7 years ago
Stephane Nicoll efd941bbe0 Merge branch '1.5.x' 7 years ago
Andy Wilkinson 54c0cf513b Polish 7 years ago
sdeleuze d4c91d2fe0 Improve Kotlin extensions doc about type erasure
Since type erasure can be fixed only when using
ParameterizedTypeReference based Java methods, TestRestTemplate
API documentation should be updated to specify which extensions
are subject to type erasure, and which are not.

Closes gh-11604
7 years ago
Andy Wilkinson db83a80deb Correct test expectations following changes to application context ID
See gh-11023
7 years ago
Phillip Webb b078698f20 Update copyright year of changed files 7 years ago
Johnny Lim b8706c47d6 Use instance equality for Class
Closes gh-11534
7 years ago
Andy Wilkinson 268b97bf98 No-op ResetMocksTestExecutionListener when Mockito is not present
Closes gh-11508
7 years ago
Stephane Nicoll ac004eabf3 Update copyright header
See gh-11510
7 years ago
Johnny Lim 37d8eedae3 Polish
Closes gh-11510
7 years ago
Phillip Webb bee5fa7fc6 Polish 7 years ago
Madhura Bhave 8102dc78cb Remove redundant throws declarations 7 years ago
Johnny Lim 8f7ab95e0e Use BufferedReader.lines()
Closes gh-11436
7 years ago
Johnny Lim e4f0ad2165 Polish
Closes gh-11372
7 years ago
Phillip Webb 2efa21c570 Make hot methods in-line friendly
Refactor a few hot methods so that they are more likely to be in-lined
by the JIT.

Fixes gh-11409
7 years ago
dreis2211 00d12c5b2d Align 'behavior' spelling to style guide
Closes gh-11394
7 years ago
Phillip Webb 3273859fde Polish 7 years ago
Phillip Webb 5ca608330c Merge branch '1.5.x' 7 years ago
Stephane Nicoll a626f5462d Consistent use of @AliasFor
Closes gh-10836
7 years ago
Stephane Nicoll 7f2af8b209 Polish 7 years ago
Stephane Nicoll 23218add90 Polish 7 years ago
Johnny Lim 96250743b5 Add missing "abstract" keywords
Closes gh-11303
7 years ago
Johnny Lim 6d54072e04 Remove "final" keywords
Closes gh-11294
7 years ago
Stephane Nicoll 7380920ed4 Remove wrong usage of commons-lang3
Closes gh-11267
7 years ago
Johnny Lim 2c204f2154 Polish
Closes gh-11242
7 years ago
Andy Wilkinson 03fce55cdb Polish "Remove a redundant dash in TestPropertyValues.Type"
Closes gh-11156
7 years ago
Johnny Lim f21737a675 Remove a redundant dash in TestPropertyValues.Type
Prior to this change, the dash was duplicated. For example
"test--systemEnvironment". This commit removes the redundant dash
and corrects the assertion in the test that should have caught the
problem.

See gh-11156
7 years ago
Stephane Nicoll aa87c45b5d Polish "Introduce TestRestTemplate Kotlin extensions"
Closes gh-11039
7 years ago
sdeleuze cd98da5ee9 Introduce TestRestTemplate Kotlin extensions
This commit introduces Kotlin extensions similar to the RestOperations
ones in order to be able to take advantage of Kotlin reified type
parameters for example.

See gh-11039
7 years ago
Phillip Webb e147982045 Add FilteredClassLoader
Add `FilteredClassLoader` to replace `HideClassesClassLoader` and
`HidePackagesClassLoader`.

Fixes gh-10303
7 years ago
Johnny Lim cbb483735d Polish
Closes gh-10948
7 years ago
Andy Wilkinson 71632ac767 Polish "Provide access to root URI from TestRestTemplate"
See gh-10641
7 years ago
tinexw c1205c3243 Provide access to root URI from TestRestTemplate
Closes gh-10641
7 years ago
Andy Wilkinson 07462be090 Polish 7 years ago
Johnny Lim bd0dcfb172 Utilize StandardCharsets
Closes gh-10972
7 years ago
Phillip Webb 06b1b453a6 Limit when SystemEnvironment mapping is used
Update `SpringConfigurationPropertySource` so that the
`SystemEnvironmentPropertyMapper` is only used for the "actual" system
environment property source. This allows SystemEnvironmentProperySource
class to be used for other purposes (for example, Spring Cloud uses it
to as an override source providing decryption).

Only property sources named `systemEnvironment` or ending with
`-systemEnvironment` now have the `SystemEnvironmentPropertyMapper`
applied. The `TestPropertyValues` has been retrofitted to name the
source it adds appropriately.

Fixes gh-10840
7 years ago
Johnny Lim c05a299520 Polish
Closes gh-10921
7 years ago
Phillip Webb fa191d8c73 Align ReactiveWebApplicationContext with framework
Refactor `ReactiveWebApplicationContext` implementations to align closer
with the `WebApplicationContext` implementations defined in
Spring Framework.

The following classes are now provided:

  - `AnnotationConfigReactiveWebApplicationContext` -- A refreshable
    reactive web context with support for `@Configuration` classes.

  - `GenericReactiveWebApplicationContext` -- A non-refreshable reactive
    GenericApplicationContext.

  - `ReactiveWebServerApplicationContext` --  A non-refreshable reactive
    GenericApplicationContext with support for server discovery.

  - `AnnotationConfigReactiveWebServerApplicationContext` -- A
    non-refreshable reactive `GenericApplicationContext` with support
    for `@Configuration` classes and server discovery.

These classes roughly align to the following Servlet equivalents:

  - `AnnotationConfigWebApplicationContext` (Spring Framework)
  - `GenericWebApplicationContext` (Spring Framework)
  - `ServletWebServerApplicationContext` (Spring Boot)
  - `AnnotationConfigServletWebServerApplicationContext` (Spring Boot)

An additional `ConfigurableReactiveWebEnvironment` interface as also
been introduced, primarily for `@ConditionalOnWebApplication` to use.

Fixes gh-10852
7 years ago
Phillip Webb b6166dc12a Move `Assume` to spring-boot-test-support
Fixes gh-10866
7 years ago
Nguyen Duy Tiep fae7a09b83 Support custom SpringBootContextLoader environment
Provide a `getEnvironment` method in `SpringBootContextLoader` to allow
specialized `ConfigurableEnvironment` implementations to be used.

Closes gh-10740
7 years ago
Andy Wilkinson 4757ad63f1 Fix typos in Javadoc of assertable application context classes
Closes gh-10865
7 years ago
Johnny Lim 6168fae720 Remove explicit type arguments
See gh-10494
7 years ago
Andy Wilkinson a256602c7b Polish 7 years ago
Andy Wilkinson 027c5a0e35 Remove usage of Mockito's internals
Previously, we relied on Mockito's internals to bypass any Spring AOP
proxy during verification of a spy. Thanks to a new API in Mockito,
we can replace the use of Mockito's internals with a
VerificationStartedListener. This listener changes Mockito's view of
the mock to be the ultimate target of the AOP proxy, i.e. to be the
actual Mockito-created spy, allowing Mockito's verification of the
spy to proceed successfully.

This above-described change will mean that we require a very
up-to-date version of Mockito so the tests that verify our
compatibility with 2.5 have been removed as we will no longer support
it when using @MockBean or @SpyBean.

Lastly, two tests have been updated to replace their usage of the
internal MockUtil class with the equivalent public API calls.

Closes gh-10352
7 years ago
Stephane Nicoll 2eba1c5f62 Polish "Use Assert.state() with Supplier where possible"
Closes gh-10658
7 years ago
dreis2211 3b71393e0a Use Assert.state() with Supplier where possible
See gh-10658
7 years ago
Johnny Lim 5aa32b3d0f Polish
Closes gh-10636
7 years ago
Phillip Webb 748e0779b6 Update copyright year for changed files 7 years ago
Phillip Webb 0cc33d5c7c Revert class name change
This reverts commit de7b624643.
7 years ago
Phillip Webb ae7e9a2cdf Polish 7 years ago
Phillip Webb de7b624643 Polish 7 years ago
Phillip Webb b87f9c11f1 Fix POMs for the updated build/release process
Fix POMs following project relocations and apply CI friendly Maven
conventions.

See gh-9316
7 years ago
Phillip Webb 0ba4830b4f Relocate projects to spring-boot-project
Move projects to better reflect the way that Spring Boot is released.

The following projects are under `spring-boot-project`:

  - `spring-boot`
  - `spring-boot-autoconfigure`
  - `spring-boot-tools`
  - `spring-boot-starters`
  - `spring-boot-actuator`
  - `spring-boot-actuator-autoconfigure`
  - `spring-boot-test`
  - `spring-boot-test-autoconfigure`
  - `spring-boot-devtools`
  - `spring-boot-cli`
  - `spring-boot-docs`

See gh-9316
7 years ago