Compare commits

..

1 Commits

Author SHA1 Message Date
Brian Clozel 4e35a12209 Release v6.2.17 2026-03-13 08:43:16 +01:00
939 changed files with 5059 additions and 5867 deletions
-1
View File
@@ -9,7 +9,6 @@ ivy-cache
argfile*
activemq-data/
classes/
.cursor/
# Log files
jxl.log
+3 -3
View File
@@ -15,8 +15,8 @@ content:
# https://docs.antora.org/antora/latest/playbook/content-refname-matching/
# branches: We include snapshots for main, 6.2.x, and 7.0.x to 9.*.x.
branches: ['main', '6.2.x', '{7..9}.+({0..9}).x']
# tags: include all releases from 6.2.0 to 9.*.*.
tags: ['v6.2.+({0..9})', 'v{7..9}.+({0..9}).+({0..9})?(-{RC,M}*)']
# tags: We effectively include all releases from 6.0.9 to 9.*.*.
tags: ['v{6..9}.+({0..9}).+({0..9})?(-{RC,M}*)', '!(v6.0.{0..8})', '!(v6.0.0-{RC,M}{0..9})']
start_path: framework-docs
asciidoc:
extensions:
@@ -38,4 +38,4 @@ runtime:
failure_level: warn
ui:
bundle:
url: https://github.com/spring-io/antora-ui-spring/releases/download/v0.4.26/ui-bundle.zip
url: https://github.com/spring-io/antora-ui-spring/releases/download/v0.4.25/ui-bundle.zip
@@ -378,7 +378,7 @@ The container also supports creating a bean with {spring-framework-api}++/beans/
. The custom arguments require dynamic introspection of a matching constructor or factory method.
Those arguments cannot be detected by AOT, so the necessary reflection hints will have to be provided manually.
. Bypassing the instance supplier means that all other optimizations after creation are skipped as well.
. By-passing the instance supplier means that all other optimizations after creation are skipped as well.
For instance, autowiring on fields and methods will be skipped as they are handled in the instance supplier.
Rather than having prototype-scoped beans created with custom arguments, we recommend a manual factory pattern where a bean is responsible for the creation of the instance.
@@ -274,7 +274,7 @@ Kotlin::
Next, you can provide the information for the candidate bean definitions. You can add
`<qualifier/>` tags as sub-elements of the `<bean/>` tag and then specify the `type` and
`value` to match your custom qualifier annotations. The type is matched against the
fully-qualified class name of the annotation. Alternatively, as a convenience if no risk of
fully-qualified class name of the annotation. Alternately, as a convenience if no risk of
conflicting names exists, you can use the short class name. The following example
demonstrates both approaches:
@@ -575,7 +575,7 @@ Kotlin::
----
======
NOTE: Do not define such beans to be lazy as the `ApplicationContext` will honor that and will not register the method to listen to events.
NOTE: Do not define such beans to be lazy as the `ApplicationContext` will honour that and will not register the method to listen to events.
The method signature once again declares the event type to which it listens,
but, this time, with a flexible name and without implementing a specific listener interface.
@@ -2,12 +2,4 @@
= Language Reference
:page-section-summary-toc: 1
Spring Expression Language (SpEL) expressions are composed of a sequence of tokens such
as literals, operators, method invocations, and so forth.
Whitespace can be used freely between tokens to format and improve the readability of
expressions. Specifically, the `\s` (space), `\t` (tab), `\r` (carriage return), and `\n`
(newline) characters are all valid separators between tokens. However, whitespace is
ignored by the expression parser unless it is part of a string literal.
The following sections describe the features and syntax of SpEL.
This section describes how the Spring Expression Language works.
@@ -270,7 +270,7 @@ is applicable for typical implementations of indexed structures.
NOTE: `ReflectiveIndexAccessor` also implements `CompilableIndexAccessor` in order to
support xref:core/expressions/evaluation.adoc#expressions-spel-compilation[compilation]
to bytecode for read access. Note, however, that the configured read-method must be
invocable via a `public` class or `public` interface for compilation to succeed.
invokable via a `public` class or `public` interface for compilation to succeed.
The following code listings define a `Color` enum and `FruitMap` type that behaves like a
map but does not implement the `java.util.Map` interface. Thus, if you want to index into
@@ -351,10 +351,10 @@ recognized and used as the `PropertyEditor` for `Something`-typed properties.
[literal,subs="verbatim,quotes"]
----
com
└── example
└── things
├── *Something*
└── *SomethingEditor* // the PropertyEditor for the Something class
chank
pop
Something
SomethingEditor // the PropertyEditor for the Something class
----
Note that you can also use the standard `BeanInfo` JavaBeans mechanism here as well
@@ -366,10 +366,10 @@ following example uses the `BeanInfo` mechanism to explicitly register one or mo
[literal,subs="verbatim,quotes"]
----
com
└── example
└── things
├── *Something*
└── *SomethingBeanInfo* // the BeanInfo for the Something class
chank
pop
Something
SomethingBeanInfo // the BeanInfo for the Something class
----
The following Java source code for the referenced `SomethingBeanInfo` class
@@ -72,13 +72,6 @@ bean definition profiles programmatically by implementing a custom
xref:testing/testcontext-framework/ctx-management/env-profiles.adoc#testcontext-ctx-management-env-profiles-ActiveProfilesResolver[`ActiveProfilesResolver`]
and registering it by using the `resolver` attribute of `@ActiveProfiles`.
NOTE: When `@ActiveProfiles` is declared on a test class, the `spring.profiles.active`
property (whether configured as a JVM system property or environment variable) is not
taken into account by the TestContext Framework when determining active profiles. If
you need to allow `spring.profiles.active` to override the profiles configured via
`@ActiveProfiles`, you can implement a custom `ActiveProfilesResolver` as described in
xref:testing/testcontext-framework/ctx-management/env-profiles.adoc[Context Configuration with Environment Profiles].
See xref:testing/testcontext-framework/ctx-management/env-profiles.adoc[Context Configuration with Environment Profiles],
xref:testing/testcontext-framework/support-classes.adoc#testcontext-junit-jupiter-nested-test-configuration[`@Nested` test class configuration], and the
{spring-framework-api}/test/context/ActiveProfiles.html[`@ActiveProfiles`] javadoc for
@@ -130,21 +130,6 @@ Java::
}
----
<1> Replace the bean with type `CustomService` with a Mockito mock.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
@SpringJUnitConfig(TestConfig::class)
class BeanOverrideTests {
@MockitoBean // <1>
lateinit var customService: CustomService
// tests...
}
----
<1> Replace the bean with type `CustomService` with a Mockito mock.
======
In the example above, we are creating a mock for `CustomService`. If more than one bean
@@ -173,22 +158,6 @@ Java::
}
----
<1> Replace the bean named `service` with a Mockito mock.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
@SpringJUnitConfig(TestConfig::class)
class BeanOverrideTests {
@MockitoBean("service") // <1>
lateinit var customService: CustomService
// tests...
}
----
<1> Replace the bean named `service` with a Mockito mock.
======
The following `@SharedMocks` annotation registers two mocks by-type and one mock by-name.
@@ -208,19 +177,6 @@ Java::
----
<1> Register `OrderService` and `UserService` mocks by-type.
<2> Register `PrintingService` mock by-name.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
@MockitoBean(types = [OrderService::class, UserService::class]) // <1>
@MockitoBean(name = "ps1", types = [PrintingService::class]) // <2>
annotation class SharedMocks
----
<1> Register `OrderService` and `UserService` mocks by-type.
<2> Register `PrintingService` mock by-name.
======
The following demonstrates how `@SharedMocks` can be used on a test class.
@@ -251,34 +207,6 @@ Java::
----
<1> Register common mocks via the custom `@SharedMocks` annotation.
<2> Optionally inject mocks to _stub_ or _verify_ them.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
@SpringJUnitConfig(TestConfig::class)
@SharedMocks // <1>
class BeanOverrideTests {
@Autowired
lateinit var orderService: OrderService // <2>
@Autowired
lateinit var userService: UserService // <2>
@Autowired
lateinit var ps1: PrintingService // <2>
// Inject other components that rely on the mocks.
@Test
fun testThatDependsOnMocks() {
// ...
}
}
----
<1> Register common mocks via the custom `@SharedMocks` annotation.
<2> Optionally inject mocks to _stub_ or _verify_ them.
======
TIP: The mocks can also be injected into `@Configuration` classes or other test-related
@@ -308,21 +236,6 @@ Java::
}
----
<1> Wrap the bean with type `CustomService` with a Mockito spy.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
@SpringJUnitConfig(TestConfig::class)
class BeanOverrideTests {
@MockitoSpyBean // <1>
lateinit var customService: CustomService
// tests...
}
----
<1> Wrap the bean with type `CustomService` with a Mockito spy.
======
In the example above, we are wrapping the bean with type `CustomService`. If more than
@@ -348,21 +261,6 @@ Java::
}
----
<1> Wrap the bean named `service` with a Mockito spy.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
@SpringJUnitConfig(TestConfig::class)
class BeanOverrideTests {
@MockitoSpyBean("service") // <1>
lateinit var customService: CustomService
// tests...
}
----
<1> Wrap the bean named `service` with a Mockito spy.
======
The following `@SharedSpies` annotation registers two spies by-type and one spy by-name.
@@ -382,19 +280,6 @@ Java::
----
<1> Register `OrderService` and `UserService` spies by-type.
<2> Register `PrintingService` spy by-name.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
@MockitoSpyBean(types = [OrderService::class, UserService::class]) // <1>
@MockitoSpyBean(name = "ps1", types = [PrintingService::class]) // <2>
annotation class SharedSpies
----
<1> Register `OrderService` and `UserService` spies by-type.
<2> Register `PrintingService` spy by-name.
======
The following demonstrates how `@SharedSpies` can be used on a test class.
@@ -425,34 +310,6 @@ Java::
----
<1> Register common spies via the custom `@SharedSpies` annotation.
<2> Optionally inject spies to _stub_ or _verify_ them.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
@SpringJUnitConfig(TestConfig::class)
@SharedSpies // <1>
class BeanOverrideTests {
@Autowired
lateinit var orderService: OrderService // <2>
@Autowired
lateinit var userService: UserService // <2>
@Autowired
lateinit var ps1: PrintingService // <2>
// Inject other components that rely on the spies.
@Test
fun testThatDependsOnMocks() {
// ...
}
}
----
<1> Register common spies via the custom `@SharedSpies` annotation.
<2> Optionally inject spies to _stub_ or _verify_ them.
======
TIP: The spies can also be injected into `@Configuration` classes or other test-related
@@ -73,27 +73,6 @@ Java::
----
<1> Mark a field for overriding the bean with type `CustomService`.
<2> The result of this static method will be used as the instance and injected into the field.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
class OverrideBeanTests {
@TestBean // <1>
lateinit var customService: CustomService
// test case body...
companion object {
@JvmStatic
fun customService(): CustomService { // <2>
return MyFakeCustomService()
}
}
}
----
<1> Mark a field for overriding the bean with type `CustomService`.
<2> The result of this static method will be used as the instance and injected into the field.
======
In the example above, we are overriding the bean with type `CustomService`. If more than
@@ -123,28 +102,6 @@ Java::
<1> Mark a field for overriding the bean with name `service`, and specify that the
factory method is named `createCustomService`.
<2> The result of this static method will be used as the instance and injected into the field.
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
class OverrideBeanTests {
@TestBean(name = "service", methodName = "createCustomService") // <1>
lateinit var customService: CustomService
// test case body...
companion object {
@JvmStatic
fun createCustomService(): CustomService { // <2>
return MyFakeCustomService()
}
}
}
----
<1> Mark a field for overriding the bean with name `service`, and specify that the
factory method is named `createCustomService`.
<2> The result of this static method will be used as the instance and injected into the field.
======
[TIP]
@@ -19,6 +19,6 @@ meta-annotation. If a bootstrapper is not explicitly configured by using
`WebTestContextBootstrapper` is used, depending on the presence of `@WebAppConfiguration`.
Since the `TestContextBootstrapper` SPI is likely to change in the future (to accommodate
new requirements), we strongly encourage implementors not to implement this interface
new requirements), we strongly encourage implementers not to implement this interface
directly but rather to extend `AbstractTestContextBootstrapper` or one of its concrete
subclasses instead.
@@ -543,85 +543,3 @@ Kotlin::
----
======
The following example demonstrates how to implement and register a custom
`SystemPropertyOverrideActiveProfilesResolver` that allows the `spring.profiles.active`
property (when configured as a JVM system property) to override profiles configured via
`@ActiveProfiles`:
[tabs]
======
Java::
+
[source,java,indent=0,subs="verbatim,quotes",role="primary"]
----
// profiles resolved programmatically via a custom resolver that
// allows "spring.profiles.active" to override @ActiveProfiles
@ActiveProfiles(
resolver = SystemPropertyOverrideActiveProfilesResolver.class,
inheritProfiles = false)
class TransferServiceTest extends AbstractIntegrationTest {
// test body
}
----
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"]
----
// profiles resolved programmatically via a custom resolver that
// allows "spring.profiles.active" to override @ActiveProfiles
@ActiveProfiles(
resolver = SystemPropertyOverrideActiveProfilesResolver::class,
inheritProfiles = false)
class TransferServiceTest : AbstractIntegrationTest() {
// test body
}
----
======
[tabs]
======
Java::
+
[source,java,indent=0,subs="verbatim,quotes",role="primary",fold="-imports"]
----
import org.springframework.core.env.AbstractEnvironment;
import org.springframework.test.context.support.DefaultActiveProfilesResolver;
import org.springframework.util.StringUtils;
public class SystemPropertyOverrideActiveProfilesResolver extends DefaultActiveProfilesResolver {
@Override
public String[] resolve(Class<?> testClass) {
String profiles = System.getProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME);
if (StringUtils.hasText(profiles)) {
return StringUtils.commaDelimitedListToStringArray(
StringUtils.trimAllWhitespace(profiles));
}
return super.resolve(testClass);
}
}
----
Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",fold="-imports"]
----
import org.springframework.core.env.AbstractEnvironment
import org.springframework.test.context.support.DefaultActiveProfilesResolver
import org.springframework.util.StringUtils
class SystemPropertyOverrideActiveProfilesResolver : DefaultActiveProfilesResolver() {
override fun resolve(testClass: Class<*>): Array<String> {
val profiles = System.getProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME)
if (StringUtils.hasText(profiles)) {
return StringUtils.commaDelimitedListToStringArray(
StringUtils.trimAllWhitespace(profiles)
)
}
return super.resolve(testClass)
}
}
----
======
@@ -269,7 +269,7 @@ The parameters to any of the above macros have consistent meanings:
For strictly sorted maps, you can use a `SortedMap` (such as a `TreeMap`) with a
suitable `Comparator` and, for arbitrary Maps that should return values in insertion
order, use a `LinkedHashMap` or a `LinkedMap` from `commons-collections`.
* `separator`: Where multiple options are available as discrete elements (radio buttons
* `separator`: Where multiple options are available as discreet elements (radio buttons
or checkboxes), the sequence of characters used to separate each one in the list
(such as `<br>`).
* `attributes`: An additional string of arbitrary tags or text to be included within
@@ -188,7 +188,7 @@ the content negotiation during the error handling phase will decide which conten
| `View`
| A `View` instance to use for rendering together with the implicit model -- determined
through command objects and `@ModelAttribute` methods. The handler method may also
programmatically enrich the model by declaring a `Model` argument (described earlier).
programmatically enrich the model by declaring a `Model` argument (descried earlier).
| `java.util.Map`, `org.springframework.ui.Model`
| Attributes to be added to the implicit model with the view name implicitly determined
@@ -29,7 +29,7 @@ public class ExceptionController {
// tag::narrow[]
@ExceptionHandler({FileSystemException.class, RemoteException.class})
public ResponseEntity<String> handleIOException(IOException ex) {
public ResponseEntity<String> handleIoException(IOException ex) {
return ResponseEntity.internalServerError().body(ex.getMessage());
}
// end::narrow[]
@@ -27,7 +27,7 @@ class ExceptionController {
// tag::narrow[]
@ExceptionHandler(FileSystemException::class, RemoteException::class)
fun handleIOException(ex: IOException): ResponseEntity<String> {
fun handleIoException(ex: IOException): ResponseEntity<String> {
return ResponseEntity.internalServerError().body(ex.message)
}
// end::narrow[]
+6 -6
View File
@@ -8,12 +8,12 @@ javaPlatform {
dependencies {
api(platform("com.fasterxml.jackson:jackson-bom:2.18.5"))
api(platform("io.micrometer:micrometer-bom:1.15.11"))
api(platform("io.netty:netty-bom:4.1.132.Final"))
api(platform("io.micrometer:micrometer-bom:1.15.10"))
api(platform("io.netty:netty-bom:4.1.130.Final"))
api(platform("io.netty:netty5-bom:5.0.0.Alpha5"))
api(platform("io.projectreactor:reactor-bom:2024.0.17"))
api(platform("io.projectreactor:reactor-bom:2024.0.16"))
api(platform("io.rsocket:rsocket-bom:1.1.5"))
api(platform("org.apache.groovy:groovy-bom:4.0.31"))
api(platform("org.apache.groovy:groovy-bom:4.0.30"))
api(platform("org.apache.logging.log4j:log4j-bom:2.21.1"))
api(platform("org.assertj:assertj-bom:3.27.7"))
api(platform("org.eclipse.jetty:jetty-bom:12.0.33"))
@@ -21,7 +21,7 @@ dependencies {
api(platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1"))
api(platform("org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.3"))
api(platform("org.junit:junit-bom:5.14.3"))
api(platform("org.mockito:mockito-bom:5.23.0"))
api(platform("org.mockito:mockito-bom:5.22.0"))
constraints {
api("com.fasterxml:aalto-xml:1.3.4")
@@ -31,7 +31,7 @@ dependencies {
api("com.google.code.findbugs:findbugs:3.0.1")
api("com.google.code.findbugs:jsr305:3.0.2")
api("com.google.code.gson:gson:2.13.2")
api("com.google.protobuf:protobuf-java-util:4.34.1")
api("com.google.protobuf:protobuf-java-util:4.34.0")
api("com.h2database:h2:2.4.240")
api("com.jayway.jsonpath:json-path:2.10.0")
api("com.oracle.database.jdbc:ojdbc11:21.9.0.0")
+1 -1
View File
@@ -1,4 +1,4 @@
version=6.2.18
version=6.2.17
org.gradle.caching=true
org.gradle.jvmargs=-Xmx2048m
+13
View File
@@ -84,6 +84,19 @@ eclipse.classpath.file.whenMerged {
}
}
// Due to an apparent bug in Gradle, even though we exclude the "main" classpath
// entries for sources generated by XJC in spring-oxm.gradle, the Gradle eclipse
// plugin still includes them in the generated .classpath file. So, we have to
// manually remove those lingering "main" entries.
if (project.name == "spring-oxm") {
eclipse.classpath.file.whenMerged { classpath ->
classpath.entries.removeAll {
it.path =~ /build\/generated\/sources\/xjc\/.+/ &&
it.entryAttributes.get("gradle_scope") == "main"
}
}
}
// Include project specific settings
tasks.register('eclipseSettings', Copy) {
from rootProject.files(
@@ -61,9 +61,10 @@ class AopNamespaceHandlerScopeIntegrationTests {
@Test
void singletonScoping() throws Exception {
void testSingletonScoping() throws Exception {
assertThat(AopUtils.isAopProxy(singletonScoped)).as("Should be AOP proxy").isTrue();
assertThat(singletonScoped).as("Should be target class proxy").isInstanceOf(TestBean.class);
boolean condition = singletonScoped instanceof TestBean;
assertThat(condition).as("Should be target class proxy").isTrue();
String rob = "Rob Harrop";
String bram = "Bram Smeets";
assertThat(singletonScoped.getName()).isEqualTo(rob);
@@ -74,17 +75,19 @@ class AopNamespaceHandlerScopeIntegrationTests {
}
@Test
void requestScoping() {
void testRequestScoping() {
MockHttpServletRequest oldRequest = new MockHttpServletRequest();
MockHttpServletRequest newRequest = new MockHttpServletRequest();
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(oldRequest));
assertThat(AopUtils.isAopProxy(requestScoped)).as("Should be AOP proxy").isTrue();
assertThat(requestScoped).as("Should be target class proxy").isInstanceOf(TestBean.class);
boolean condition = requestScoped instanceof TestBean;
assertThat(condition).as("Should be target class proxy").isTrue();
assertThat(AopUtils.isAopProxy(testBean)).as("Should be AOP proxy").isTrue();
assertThat(testBean).as("Regular bean should be JDK proxy").isNotInstanceOf(TestBean.class);
boolean condition1 = testBean instanceof TestBean;
assertThat(condition1).as("Regular bean should be JDK proxy").isFalse();
String rob = "Rob Harrop";
String bram = "Bram Smeets";
@@ -100,7 +103,7 @@ class AopNamespaceHandlerScopeIntegrationTests {
}
@Test
void sessionScoping() {
void testSessionScoping() {
MockHttpSession oldSession = new MockHttpSession();
MockHttpSession newSession = new MockHttpSession();
@@ -109,12 +112,14 @@ class AopNamespaceHandlerScopeIntegrationTests {
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request));
assertThat(AopUtils.isAopProxy(sessionScoped)).as("Should be AOP proxy").isTrue();
assertThat(sessionScoped).as("Should not be target class proxy").isNotInstanceOf(TestBean.class);
boolean condition1 = sessionScoped instanceof TestBean;
assertThat(condition1).as("Should not be target class proxy").isFalse();
assertThat(sessionScopedAlias).isSameAs(sessionScoped);
assertThat(AopUtils.isAopProxy(testBean)).as("Should be AOP proxy").isTrue();
assertThat(testBean).as("Regular bean should be JDK proxy").isNotInstanceOf(TestBean.class);
boolean condition = testBean instanceof TestBean;
assertThat(condition).as("Regular bean should be JDK proxy").isFalse();
String rob = "Rob Harrop";
String bram = "Bram Smeets";
@@ -65,7 +65,7 @@ class AdvisorAutoProxyCreatorIntegrationTests {
}
@Test
void defaultExclusionPrefix() {
void testDefaultExclusionPrefix() {
DefaultAdvisorAutoProxyCreator aapc = (DefaultAdvisorAutoProxyCreator) getBeanFactory().getBean(ADVISOR_APC_BEAN_NAME);
assertThat(aapc.getAdvisorBeanNamePrefix()).isEqualTo((ADVISOR_APC_BEAN_NAME + DefaultAdvisorAutoProxyCreator.SEPARATOR));
assertThat(aapc.isUsePrefix()).isFalse();
@@ -75,21 +75,21 @@ class AdvisorAutoProxyCreatorIntegrationTests {
* If no pointcuts match (no attrs) there should be proxying.
*/
@Test
void noProxy() {
void testNoProxy() {
BeanFactory bf = getBeanFactory();
Object o = bf.getBean("noSetters");
assertThat(AopUtils.isAopProxy(o)).isFalse();
}
@Test
void txIsProxied() {
void testTxIsProxied() {
BeanFactory bf = getBeanFactory();
ITestBean test = (ITestBean) bf.getBean("test");
assertThat(AopUtils.isAopProxy(test)).isTrue();
}
@Test
void regexpApplied() {
void testRegexpApplied() {
BeanFactory bf = getBeanFactory();
ITestBean test = (ITestBean) bf.getBean("test");
MethodCounter counter = (MethodCounter) bf.getBean("countingAdvice");
@@ -99,7 +99,7 @@ class AdvisorAutoProxyCreatorIntegrationTests {
}
@Test
void transactionAttributeOnMethod() {
void testTransactionAttributeOnMethod() {
BeanFactory bf = getBeanFactory();
ITestBean test = (ITestBean) bf.getBean("test");
@@ -121,7 +121,7 @@ class AdvisorAutoProxyCreatorIntegrationTests {
* Should not roll back on servlet exception.
*/
@Test
void rollbackRulesOnMethodCauseRollback() throws Exception {
void testRollbackRulesOnMethodCauseRollback() throws Exception {
BeanFactory bf = getBeanFactory();
Rollback rb = (Rollback) bf.getBean("rollback");
@@ -147,7 +147,7 @@ class AdvisorAutoProxyCreatorIntegrationTests {
}
@Test
void rollbackRulesOnMethodPreventRollback() throws Exception {
void testRollbackRulesOnMethodPreventRollback() throws Exception {
BeanFactory bf = getBeanFactory();
Rollback rb = (Rollback) bf.getBean("rollback");
@@ -165,11 +165,12 @@ class AdvisorAutoProxyCreatorIntegrationTests {
}
@Test
void programmaticRollback() {
void testProgrammaticRollback() {
BeanFactory bf = getBeanFactory();
Object bean = bf.getBean(TXMANAGER_BEAN_NAME);
assertThat(bean).isInstanceOf(CallCountingTransactionManager.class);
boolean condition = bean instanceof CallCountingTransactionManager;
assertThat(condition).isTrue();
CallCountingTransactionManager txMan = (CallCountingTransactionManager) bf.getBean(TXMANAGER_BEAN_NAME);
Rollback rb = (Rollback) bf.getBean("rollback");
@@ -50,13 +50,13 @@ class ComponentBeanDefinitionParserTests {
}
@Test
void bionicBasic() {
void testBionicBasic() {
Component cp = getBionicFamily();
assertThat(cp.getName()).isEqualTo("Bionic-1");
}
@Test
void bionicFirstLevelChildren() {
void testBionicFirstLevelChildren() {
Component cp = getBionicFamily();
List<Component> components = cp.getComponents();
assertThat(components).hasSize(2);
@@ -65,7 +65,7 @@ class ComponentBeanDefinitionParserTests {
}
@Test
void bionicSecondLevelChildren() {
void testBionicSecondLevelChildren() {
Component cp = getBionicFamily();
List<Component> components = cp.getComponents().get(0).getComponents();
assertThat(components).hasSize(2);
@@ -83,7 +83,7 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
@Test
void prototype() {
void testPrototype() {
ApplicationContext context = createContext(ScopedProxyMode.NO);
ScopedTestBean bean = (ScopedTestBean) context.getBean("prototype");
assertThat(bean).isNotNull();
@@ -92,7 +92,7 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
}
@Test
void singletonScopeWithNoProxy() {
void testSingletonScopeWithNoProxy() {
RequestContextHolder.setRequestAttributes(oldRequestAttributes);
ApplicationContext context = createContext(ScopedProxyMode.NO);
ScopedTestBean bean = (ScopedTestBean) context.getBean("singleton");
@@ -115,7 +115,7 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
}
@Test
void singletonScopeIgnoresProxyInterfaces() {
void testSingletonScopeIgnoresProxyInterfaces() {
RequestContextHolder.setRequestAttributes(oldRequestAttributes);
ApplicationContext context = createContext(ScopedProxyMode.INTERFACES);
ScopedTestBean bean = (ScopedTestBean) context.getBean("singleton");
@@ -136,7 +136,7 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
}
@Test
void singletonScopeIgnoresProxyTargetClass() {
void testSingletonScopeIgnoresProxyTargetClass() {
RequestContextHolder.setRequestAttributes(oldRequestAttributes);
ApplicationContext context = createContext(ScopedProxyMode.TARGET_CLASS);
ScopedTestBean bean = (ScopedTestBean) context.getBean("singleton");
@@ -157,7 +157,7 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
}
@Test
void requestScopeWithNoProxy() {
void testRequestScopeWithNoProxy() {
RequestContextHolder.setRequestAttributes(oldRequestAttributes);
ApplicationContext context = createContext(ScopedProxyMode.NO);
ScopedTestBean bean = (ScopedTestBean) context.getBean("request");
@@ -178,14 +178,15 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
}
@Test
void requestScopeWithProxiedInterfaces() {
void testRequestScopeWithProxiedInterfaces() {
RequestContextHolder.setRequestAttributes(oldRequestAttributes);
ApplicationContext context = createContext(ScopedProxyMode.INTERFACES);
IScopedTestBean bean = (IScopedTestBean) context.getBean("request");
// should be dynamic proxy, implementing both interfaces
assertThat(AopUtils.isJdkDynamicProxy(bean)).isTrue();
assertThat(bean).isInstanceOf(AnotherScopeTestInterface.class);
boolean condition = bean instanceof AnotherScopeTestInterface;
assertThat(condition).isTrue();
assertThat(bean.getName()).isEqualTo(DEFAULT_NAME);
bean.setName(MODIFIED_NAME);
@@ -199,14 +200,15 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
}
@Test
void requestScopeWithProxiedTargetClass() {
void testRequestScopeWithProxiedTargetClass() {
RequestContextHolder.setRequestAttributes(oldRequestAttributes);
ApplicationContext context = createContext(ScopedProxyMode.TARGET_CLASS);
IScopedTestBean bean = (IScopedTestBean) context.getBean("request");
// should be a class-based proxy
assertThat(AopUtils.isCglibProxy(bean)).isTrue();
assertThat(bean).isInstanceOf(RequestScopedTestBean.class);
boolean condition = bean instanceof RequestScopedTestBean;
assertThat(condition).isTrue();
assertThat(bean.getName()).isEqualTo(DEFAULT_NAME);
bean.setName(MODIFIED_NAME);
@@ -220,7 +222,7 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
}
@Test
void sessionScopeWithNoProxy() {
void testSessionScopeWithNoProxy() {
RequestContextHolder.setRequestAttributes(oldRequestAttributesWithSession);
ApplicationContext context = createContext(ScopedProxyMode.NO);
ScopedTestBean bean = (ScopedTestBean) context.getBean("session");
@@ -241,14 +243,15 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
}
@Test
void sessionScopeWithProxiedInterfaces() {
void testSessionScopeWithProxiedInterfaces() {
RequestContextHolder.setRequestAttributes(oldRequestAttributesWithSession);
ApplicationContext context = createContext(ScopedProxyMode.INTERFACES);
IScopedTestBean bean = (IScopedTestBean) context.getBean("session");
// should be dynamic proxy, implementing both interfaces
assertThat(AopUtils.isJdkDynamicProxy(bean)).isTrue();
assertThat(bean).isInstanceOf(AnotherScopeTestInterface.class);
boolean condition = bean instanceof AnotherScopeTestInterface;
assertThat(condition).isTrue();
assertThat(bean.getName()).isEqualTo(DEFAULT_NAME);
bean.setName(MODIFIED_NAME);
@@ -268,15 +271,17 @@ class ClassPathBeanDefinitionScannerJsr330ScopeIntegrationTests {
}
@Test
void sessionScopeWithProxiedTargetClass() {
void testSessionScopeWithProxiedTargetClass() {
RequestContextHolder.setRequestAttributes(oldRequestAttributesWithSession);
ApplicationContext context = createContext(ScopedProxyMode.TARGET_CLASS);
IScopedTestBean bean = (IScopedTestBean) context.getBean("session");
// should be a class-based proxy
assertThat(AopUtils.isCglibProxy(bean)).isTrue();
assertThat(bean).isInstanceOf(ScopedTestBean.class);
assertThat(bean).isInstanceOf(SessionScopedTestBean.class);
boolean condition1 = bean instanceof ScopedTestBean;
assertThat(condition1).isTrue();
boolean condition = bean instanceof SessionScopedTestBean;
assertThat(condition).isTrue();
assertThat(bean.getName()).isEqualTo(DEFAULT_NAME);
bean.setName(MODIFIED_NAME);
@@ -166,7 +166,8 @@ class ClassPathBeanDefinitionScannerScopeIntegrationTests {
// should be dynamic proxy, implementing both interfaces
assertThat(AopUtils.isJdkDynamicProxy(bean)).isTrue();
assertThat(bean).isInstanceOf(AnotherScopeTestInterface.class);
boolean condition = bean instanceof AnotherScopeTestInterface;
assertThat(condition).isTrue();
assertThat(bean.getName()).isEqualTo(DEFAULT_NAME);
bean.setName(MODIFIED_NAME);
@@ -187,7 +188,8 @@ class ClassPathBeanDefinitionScannerScopeIntegrationTests {
// should be a class-based proxy
assertThat(AopUtils.isCglibProxy(bean)).isTrue();
assertThat(bean).isInstanceOf(RequestScopedTestBean.class);
boolean condition = bean instanceof RequestScopedTestBean;
assertThat(condition).isTrue();
assertThat(bean.getName()).isEqualTo(DEFAULT_NAME);
bean.setName(MODIFIED_NAME);
@@ -229,7 +231,8 @@ class ClassPathBeanDefinitionScannerScopeIntegrationTests {
// should be dynamic proxy, implementing both interfaces
assertThat(AopUtils.isJdkDynamicProxy(bean)).isTrue();
assertThat(bean).isInstanceOf(AnotherScopeTestInterface.class);
boolean condition = bean instanceof AnotherScopeTestInterface;
assertThat(condition).isTrue();
assertThat(bean.getName()).isEqualTo(DEFAULT_NAME);
bean.setName(MODIFIED_NAME);
@@ -256,8 +259,10 @@ class ClassPathBeanDefinitionScannerScopeIntegrationTests {
// should be a class-based proxy
assertThat(AopUtils.isCglibProxy(bean)).isTrue();
assertThat(bean).isInstanceOf(ScopedTestBean.class);
assertThat(bean).isInstanceOf(SessionScopedTestBean.class);
boolean condition1 = bean instanceof ScopedTestBean;
assertThat(condition1).isTrue();
boolean condition = bean instanceof SessionScopedTestBean;
assertThat(condition).isTrue();
assertThat(bean.getName()).isEqualTo(DEFAULT_NAME);
bean.setName(MODIFIED_NAME);
@@ -1,36 +0,0 @@
/*
* Copyright 2002-present the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.core.env;
/**
* Constants used both locally and in scan* sub-packages
*/
public class Constants {
public static final String XML_PATH = "org/springframework/core/env/EnvironmentSystemIntegrationTests-context.xml";
public static final String ENVIRONMENT_AWARE_BEAN_NAME = "envAwareBean";
public static final String PROD_BEAN_NAME = "prodBean";
public static final String DEV_BEAN_NAME = "devBean";
public static final String DERIVED_DEV_BEAN_NAME = "derivedDevBean";
public static final String TRANSITIVE_BEAN_NAME = "transitiveBean";
public static final String PROD_ENV_NAME = "prod";
public static final String DEV_ENV_NAME = "dev";
public static final String DERIVED_DEV_ENV_NAME = "derivedDev";
}
@@ -58,15 +58,15 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.springframework.beans.factory.support.BeanDefinitionBuilder.rootBeanDefinition;
import static org.springframework.context.ConfigurableApplicationContext.ENVIRONMENT_BEAN_NAME;
import static org.springframework.core.env.Constants.DERIVED_DEV_BEAN_NAME;
import static org.springframework.core.env.Constants.DERIVED_DEV_ENV_NAME;
import static org.springframework.core.env.Constants.DEV_BEAN_NAME;
import static org.springframework.core.env.Constants.DEV_ENV_NAME;
import static org.springframework.core.env.Constants.ENVIRONMENT_AWARE_BEAN_NAME;
import static org.springframework.core.env.Constants.PROD_BEAN_NAME;
import static org.springframework.core.env.Constants.PROD_ENV_NAME;
import static org.springframework.core.env.Constants.TRANSITIVE_BEAN_NAME;
import static org.springframework.core.env.Constants.XML_PATH;
import static org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.DERIVED_DEV_BEAN_NAME;
import static org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.DERIVED_DEV_ENV_NAME;
import static org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.DEV_BEAN_NAME;
import static org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.DEV_ENV_NAME;
import static org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.ENVIRONMENT_AWARE_BEAN_NAME;
import static org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.PROD_BEAN_NAME;
import static org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.PROD_ENV_NAME;
import static org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.TRANSITIVE_BEAN_NAME;
import static org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.XML_PATH;
/**
* System integration tests for container support of the {@link Environment} API.
@@ -87,7 +87,7 @@ import static org.springframework.core.env.Constants.XML_PATH;
* @author Sam Brannen
* @see org.springframework.context.support.EnvironmentIntegrationTests
*/
class EnvironmentSystemIntegrationTests {
public class EnvironmentSystemIntegrationTests {
private final ConfigurableEnvironment prodEnv = new StandardEnvironment();
@@ -648,7 +648,7 @@ class EnvironmentSystemIntegrationTests {
}
}
@Profile(Constants.DERIVED_DEV_ENV_NAME)
@Profile(DERIVED_DEV_ENV_NAME)
@Configuration
static class DerivedDevConfig extends DevConfig {
@Bean
@@ -666,4 +666,24 @@ class EnvironmentSystemIntegrationTests {
}
}
/**
* Constants used both locally and in scan* sub-packages
*/
public static class Constants {
public static final String XML_PATH = "org/springframework/core/env/EnvironmentSystemIntegrationTests-context.xml";
public static final String ENVIRONMENT_AWARE_BEAN_NAME = "envAwareBean";
public static final String PROD_BEAN_NAME = "prodBean";
public static final String DEV_BEAN_NAME = "devBean";
public static final String DERIVED_DEV_BEAN_NAME = "derivedDevBean";
public static final String TRANSITIVE_BEAN_NAME = "transitiveBean";
public static final String PROD_ENV_NAME = "prod";
public static final String DEV_ENV_NAME = "dev";
public static final String DERIVED_DEV_ENV_NAME = "derivedDev";
}
}
@@ -20,7 +20,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Profile(org.springframework.core.env.Constants.DEV_ENV_NAME)
@Profile(org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.DEV_ENV_NAME)
@Configuration
class DevConfig {
@@ -20,7 +20,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
@Profile(org.springframework.core.env.Constants.PROD_ENV_NAME)
@Profile(org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.PROD_ENV_NAME)
@Configuration
class ProdConfig {
@@ -19,7 +19,7 @@ package org.springframework.core.env.scan2;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
@Profile(org.springframework.core.env.Constants.DEV_ENV_NAME)
@Component(org.springframework.core.env.Constants.DEV_BEAN_NAME)
@Profile(org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.DEV_ENV_NAME)
@Component(org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.DEV_BEAN_NAME)
class DevBean {
}
@@ -19,8 +19,8 @@ package org.springframework.core.env.scan2;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
@Profile(org.springframework.core.env.Constants.PROD_ENV_NAME)
@Component(org.springframework.core.env.Constants.PROD_BEAN_NAME)
@Profile(org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.PROD_ENV_NAME)
@Component(org.springframework.core.env.EnvironmentSystemIntegrationTests.Constants.PROD_BEAN_NAME)
class ProdBean {
}
@@ -83,7 +83,7 @@ public class AspectJProxyFactory extends ProxyCreatorSupport {
/**
* Add the supplied aspect instance to the chain. The type of the aspect instance
* supplied must be a singleton aspect. True singleton lifecycle is not honored when
* supplied must be a singleton aspect. True singleton lifecycle is not honoured when
* using this method - the caller is responsible for managing the lifecycle of any
* aspects added in this way.
* @param aspectInstance the AspectJ aspect instance
@@ -120,7 +120,7 @@ final class InstantiationModelAwarePointcutAdvisorImpl
/**
* The pointcut for Spring AOP to use.
* Actual behavior of the pointcut will change depending on the state of the advice.
* Actual behaviour of the pointcut will change depending on the state of the advice.
*/
@Override
public Pointcut getPointcut() {
@@ -261,7 +261,7 @@ final class InstantiationModelAwarePointcutAdvisorImpl
/**
* Pointcut implementation that changes its behavior when the advice is instantiated.
* Pointcut implementation that changes its behaviour when the advice is instantiated.
* Note that this is a <i>dynamic</i> pointcut; otherwise it might be optimized out
* if it does not at first match statically.
*/
@@ -82,7 +82,7 @@ public class DelegatePerTargetObjectIntroductionInterceptor extends Introduction
/**
* Subclasses may need to override this if they want to perform custom
* behavior in around advice. However, subclasses should invoke this
* behaviour in around advice. However, subclasses should invoke this
* method, which handles introduced interfaces and forwarding to the target.
*/
@Override
@@ -98,7 +98,7 @@ public class DelegatingIntroductionInterceptor extends IntroductionInfoSupport
/**
* Subclasses may need to override this if they want to perform custom
* behavior in around advice. However, subclasses should invoke this
* behaviour in around advice. However, subclasses should invoke this
* method, which handles introduced interfaces and forwarding to the target.
*/
@Override
@@ -24,7 +24,7 @@ import org.springframework.aop.Pointcut;
* Convenient superclass when we want to force subclasses to
* implement MethodMatcher interface, but subclasses
* will want to be pointcuts. The getClassFilter() method can
* be overridden to customize ClassFilter behavior as well.
* be overridden to customize ClassFilter behaviour as well.
*
* @author Rod Johnson
*/
@@ -23,6 +23,7 @@ import java.util.Map;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import test.annotation.EmptySpringAnnotation;
import test.annotation.transaction.Tx;
@@ -36,7 +37,6 @@ import org.springframework.beans.testfixture.beans.IOther;
import org.springframework.beans.testfixture.beans.ITestBean;
import org.springframework.beans.testfixture.beans.TestBean;
import org.springframework.beans.testfixture.beans.subpkg.DeepBean;
import org.springframework.util.ClassUtils;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
@@ -50,22 +50,30 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
*/
class AspectJExpressionPointcutTests {
private final Method getAge = ClassUtils.getMethod(TestBean.class, "getAge");
private final Method setAge = ClassUtils.getMethod(TestBean.class, "setAge", int.class);
private final Method setSomeNumber = ClassUtils.getMethod(TestBean.class, "setSomeNumber", Number.class);
private Method getAge;
private Method setAge;
private Method setSomeNumber;
private final Map<String, Method> methodsOnHasGeneric = new HashMap<>();
AspectJExpressionPointcutTests() throws NoSuchMethodException {
@BeforeEach
void setup() throws NoSuchMethodException {
getAge = TestBean.class.getMethod("getAge");
setAge = TestBean.class.getMethod("setAge", int.class);
setSomeNumber = TestBean.class.getMethod("setSomeNumber", Number.class);
// Assumes no overloading
for (Method method : HasGeneric.class.getMethods()) {
this.methodsOnHasGeneric.put(method.getName(), method);
methodsOnHasGeneric.put(method.getName(), method);
}
}
@Test
void matchExplicit() {
void testMatchExplicit() {
String expression = "execution(int org.springframework.beans.testfixture.beans.TestBean.getAge())";
Pointcut pointcut = getPointcut(expression);
@@ -83,7 +91,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void matchWithTypePattern() {
void testMatchWithTypePattern() {
String expression = "execution(* *..TestBean.*Age(..))";
Pointcut pointcut = getPointcut(expression);
@@ -102,12 +110,12 @@ class AspectJExpressionPointcutTests {
@Test
void thisCase() throws SecurityException, NoSuchMethodException{
void testThis() throws SecurityException, NoSuchMethodException{
testThisOrTarget("this");
}
@Test
void target() throws SecurityException, NoSuchMethodException {
void testTarget() throws SecurityException, NoSuchMethodException {
testThisOrTarget("target");
}
@@ -131,12 +139,12 @@ class AspectJExpressionPointcutTests {
}
@Test
void withinRootPackage() throws SecurityException, NoSuchMethodException {
void testWithinRootPackage() throws SecurityException, NoSuchMethodException {
testWithinPackage(false);
}
@Test
void withinRootAndSubpackages() throws SecurityException, NoSuchMethodException {
void testWithinRootAndSubpackages() throws SecurityException, NoSuchMethodException {
testWithinPackage(true);
}
@@ -160,7 +168,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void friendlyErrorOnNoLocationClassMatching() {
void testFriendlyErrorOnNoLocationClassMatching() {
AspectJExpressionPointcut pc = new AspectJExpressionPointcut();
assertThatIllegalStateException()
.isThrownBy(() -> pc.getClassFilter().matches(ITestBean.class))
@@ -168,7 +176,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void friendlyErrorOnNoLocation2ArgMatching() {
void testFriendlyErrorOnNoLocation2ArgMatching() {
AspectJExpressionPointcut pc = new AspectJExpressionPointcut();
assertThatIllegalStateException()
.isThrownBy(() -> pc.getMethodMatcher().matches(getAge, ITestBean.class))
@@ -176,7 +184,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void friendlyErrorOnNoLocation3ArgMatching() {
void testFriendlyErrorOnNoLocation3ArgMatching() {
AspectJExpressionPointcut pc = new AspectJExpressionPointcut();
assertThatIllegalStateException()
.isThrownBy(() -> pc.getMethodMatcher().matches(getAge, ITestBean.class, (Object[]) null))
@@ -185,7 +193,7 @@ class AspectJExpressionPointcutTests {
@Test
void matchWithArgs() {
void testMatchWithArgs() {
String expression = "execution(void org.springframework.beans.testfixture.beans.TestBean.setSomeNumber(Number)) && args(Double)";
Pointcut pointcut = getPointcut(expression);
@@ -206,7 +214,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void simpleAdvice() {
void testSimpleAdvice() {
String expression = "execution(int org.springframework.beans.testfixture.beans.TestBean.getAge())";
CallCountingInterceptor interceptor = new CallCountingInterceptor();
TestBean testBean = getAdvisedProxy(expression, interceptor);
@@ -219,7 +227,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void dynamicMatchingProxy() {
void testDynamicMatchingProxy() {
String expression = "execution(void org.springframework.beans.testfixture.beans.TestBean.setSomeNumber(Number)) && args(Double)";
CallCountingInterceptor interceptor = new CallCountingInterceptor();
TestBean testBean = getAdvisedProxy(expression, interceptor);
@@ -233,7 +241,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void invalidExpression() {
void testInvalidExpression() {
String expression = "execution(void org.springframework.beans.testfixture.beans.TestBean.setSomeNumber(Number) && args(Double)";
assertThat(getPointcut(expression).getClassFilter().matches(Object.class)).isFalse();
}
@@ -263,20 +271,20 @@ class AspectJExpressionPointcutTests {
}
@Test
void withUnsupportedPointcutPrimitive() {
void testWithUnsupportedPointcutPrimitive() {
String expression = "call(int org.springframework.beans.testfixture.beans.TestBean.getAge())";
assertThat(getPointcut(expression).getClassFilter().matches(Object.class)).isFalse();
}
@Test
void andSubstitution() {
void testAndSubstitution() {
AspectJExpressionPointcut pc = getPointcut("execution(* *(..)) and args(String)");
String expr = pc.getPointcutExpression().getPointcutExpression();
assertThat(expr).isEqualTo("execution(* *(..)) && args(String)");
}
@Test
void multipleAndSubstitutions() {
void testMultipleAndSubstitutions() {
AspectJExpressionPointcut pc = getPointcut("execution(* *(..)) and args(String) and this(Object)");
String expr = pc.getPointcutExpression().getPointcutExpression();
assertThat(expr).isEqualTo("execution(* *(..)) && args(String) && this(Object)");
@@ -289,7 +297,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void matchGenericArgument() {
void testMatchGenericArgument() {
String expression = "execution(* set*(java.util.List<org.springframework.beans.testfixture.beans.TestBean>) )";
AspectJExpressionPointcut ajexp = new AspectJExpressionPointcut();
ajexp.setExpression(expression);
@@ -308,7 +316,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void matchVarargs() throws Exception {
void testMatchVarargs() throws Exception {
@SuppressWarnings("unused")
class MyTemplate {
@@ -334,19 +342,19 @@ class AspectJExpressionPointcutTests {
}
@Test
void matchAnnotationOnClassWithAtWithin() throws Exception {
void testMatchAnnotationOnClassWithAtWithin() throws Exception {
String expression = "@within(test.annotation.transaction.Tx)";
testMatchAnnotationOnClass(expression);
}
@Test
void matchAnnotationOnClassWithoutBinding() throws Exception {
void testMatchAnnotationOnClassWithoutBinding() throws Exception {
String expression = "within(@test.annotation.transaction.Tx *)";
testMatchAnnotationOnClass(expression);
}
@Test
void matchAnnotationOnClassWithSubpackageWildcard() throws Exception {
void testMatchAnnotationOnClassWithSubpackageWildcard() throws Exception {
String expression = "within(@(test.annotation..*) *)";
AspectJExpressionPointcut springAnnotatedPc = testMatchAnnotationOnClass(expression);
assertThat(springAnnotatedPc.matches(TestBean.class.getMethod("setName", String.class), TestBean.class)).isFalse();
@@ -358,7 +366,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void matchAnnotationOnClassWithExactPackageWildcard() throws Exception {
void testMatchAnnotationOnClassWithExactPackageWildcard() throws Exception {
String expression = "within(@(test.annotation.transaction.*) *)";
testMatchAnnotationOnClass(expression);
}
@@ -376,7 +384,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void annotationOnMethodWithFQN() throws Exception {
void testAnnotationOnMethodWithFQN() throws Exception {
String expression = "@annotation(test.annotation.transaction.Tx)";
AspectJExpressionPointcut ajexp = new AspectJExpressionPointcut();
ajexp.setExpression(expression);
@@ -390,7 +398,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void annotationOnCglibProxyMethod() throws Exception {
void testAnnotationOnCglibProxyMethod() throws Exception {
String expression = "@annotation(test.annotation.transaction.Tx)";
AspectJExpressionPointcut ajexp = new AspectJExpressionPointcut();
ajexp.setExpression(expression);
@@ -402,7 +410,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void notAnnotationOnCglibProxyMethod() throws Exception {
void testNotAnnotationOnCglibProxyMethod() throws Exception {
String expression = "!@annotation(test.annotation.transaction.Tx)";
AspectJExpressionPointcut ajexp = new AspectJExpressionPointcut();
ajexp.setExpression(expression);
@@ -414,7 +422,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void annotationOnDynamicProxyMethod() throws Exception {
void testAnnotationOnDynamicProxyMethod() throws Exception {
String expression = "@annotation(test.annotation.transaction.Tx)";
AspectJExpressionPointcut ajexp = new AspectJExpressionPointcut();
ajexp.setExpression(expression);
@@ -426,7 +434,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void notAnnotationOnDynamicProxyMethod() throws Exception {
void testNotAnnotationOnDynamicProxyMethod() throws Exception {
String expression = "!@annotation(test.annotation.transaction.Tx)";
AspectJExpressionPointcut ajexp = new AspectJExpressionPointcut();
ajexp.setExpression(expression);
@@ -438,7 +446,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void annotationOnMethodWithWildcard() throws Exception {
void testAnnotationOnMethodWithWildcard() throws Exception {
String expression = "execution(@(test.annotation..*) * *(..))";
AspectJExpressionPointcut anySpringMethodAnnotation = new AspectJExpressionPointcut();
anySpringMethodAnnotation.setExpression(expression);
@@ -454,7 +462,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void annotationOnMethodArgumentsWithFQN() throws Exception {
void testAnnotationOnMethodArgumentsWithFQN() throws Exception {
String expression = "@args(*, test.annotation.EmptySpringAnnotation))";
AspectJExpressionPointcut takesSpringAnnotatedArgument2 = new AspectJExpressionPointcut();
takesSpringAnnotatedArgument2.setExpression(expression);
@@ -483,7 +491,7 @@ class AspectJExpressionPointcutTests {
}
@Test
void annotationOnMethodArgumentsWithWildcards() throws Exception {
void testAnnotationOnMethodArgumentsWithWildcards() throws Exception {
String expression = "execution(* *(*, @(test..*) *))";
AspectJExpressionPointcut takesSpringAnnotatedArgument2 = new AspectJExpressionPointcut();
takesSpringAnnotatedArgument2.setExpression(expression);
@@ -31,7 +31,7 @@ import static org.assertj.core.api.Assertions.assertThat;
class BeanNamePointcutMatchingTests {
@Test
void matchingPointcuts() {
void testMatchingPointcuts() {
assertMatch("someName", "bean(someName)");
// Spring bean names are less restrictive compared to AspectJ names (methods, types etc.)
@@ -66,7 +66,7 @@ class BeanNamePointcutMatchingTests {
}
@Test
void nonMatchingPointcuts() {
void testNonMatchingPointcuts() {
assertMisMatch("someName", "bean(someNamex)");
assertMisMatch("someName", "bean(someX*Name)");
@@ -17,6 +17,7 @@
package org.springframework.aop.aspectj;
import java.io.IOException;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicInteger;
import org.aspectj.lang.JoinPoint;
@@ -48,17 +49,17 @@ import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
class MethodInvocationProceedingJoinPointTests {
@Test
void bindingWithJoinPoint() {
void testingBindingWithJoinPoint() {
assertThatIllegalStateException().isThrownBy(AbstractAspectJAdvice::currentJoinPoint);
}
@Test
void bindingWithProceedingJoinPoint() {
void testingBindingWithProceedingJoinPoint() {
assertThatIllegalStateException().isThrownBy(AbstractAspectJAdvice::currentJoinPoint);
}
@Test
void canGetMethodSignatureFromJoinPoint() {
void testCanGetMethodSignatureFromJoinPoint() {
final Object raw = new TestBean();
// Will be set by advice during a method call
final int newAge = 23;
@@ -105,9 +106,9 @@ class MethodInvocationProceedingJoinPointTests {
assertThat(AbstractAspectJAdvice.currentJoinPoint().getSignature()).as("Return same MethodSignature repeatedly").isSameAs(msig);
assertThat(AbstractAspectJAdvice.currentJoinPoint()).as("Return same JoinPoint repeatedly").isSameAs(AbstractAspectJAdvice.currentJoinPoint());
assertThat(msig.getDeclaringType()).isEqualTo(method.getDeclaringClass());
assertThat(method.getParameterTypes()).isEqualTo(msig.getParameterTypes());
assertThat(Arrays.equals(method.getParameterTypes(), msig.getParameterTypes())).isTrue();
assertThat(msig.getReturnType()).isEqualTo(method.getReturnType());
assertThat(method.getExceptionTypes()).isEqualTo(msig.getExceptionTypes());
assertThat(Arrays.equals(method.getExceptionTypes(), msig.getExceptionTypes())).isTrue();
msig.toLongString();
msig.toShortString();
});
@@ -117,7 +118,7 @@ class MethodInvocationProceedingJoinPointTests {
}
@Test
void canGetSourceLocationFromJoinPoint() {
void testCanGetSourceLocationFromJoinPoint() {
final Object raw = new TestBean();
ProxyFactory pf = new ProxyFactory(raw);
pf.addAdvisor(ExposeInvocationInterceptor.ADVISOR);
@@ -134,7 +135,7 @@ class MethodInvocationProceedingJoinPointTests {
}
@Test
void canGetStaticPartFromJoinPoint() {
void testCanGetStaticPartFromJoinPoint() {
final Object raw = new TestBean();
ProxyFactory pf = new ProxyFactory(raw);
pf.addAdvisor(ExposeInvocationInterceptor.ADVISOR);
@@ -43,14 +43,14 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
class TrickyAspectJPointcutExpressionTests {
@Test
void manualProxyJavaWithUnconditionalPointcut() {
void testManualProxyJavaWithUnconditionalPointcut() {
TestService target = new TestServiceImpl();
LogUserAdvice logAdvice = new LogUserAdvice();
testAdvice(new DefaultPointcutAdvisor(logAdvice), logAdvice, target, "TestServiceImpl");
}
@Test
void manualProxyJavaWithStaticPointcut() {
void testManualProxyJavaWithStaticPointcut() {
TestService target = new TestServiceImpl();
LogUserAdvice logAdvice = new LogUserAdvice();
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
@@ -59,7 +59,7 @@ class TrickyAspectJPointcutExpressionTests {
}
@Test
void manualProxyJavaWithDynamicPointcut() {
void testManualProxyJavaWithDynamicPointcut() {
TestService target = new TestServiceImpl();
LogUserAdvice logAdvice = new LogUserAdvice();
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
@@ -68,7 +68,7 @@ class TrickyAspectJPointcutExpressionTests {
}
@Test
void manualProxyJavaWithDynamicPointcutAndProxyTargetClass() {
void testManualProxyJavaWithDynamicPointcutAndProxyTargetClass() {
TestService target = new TestServiceImpl();
LogUserAdvice logAdvice = new LogUserAdvice();
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
@@ -77,7 +77,7 @@ class TrickyAspectJPointcutExpressionTests {
}
@Test
void manualProxyJavaWithStaticPointcutAndTwoClassLoaders() throws Exception {
void testManualProxyJavaWithStaticPointcutAndTwoClassLoaders() throws Exception {
LogUserAdvice logAdvice = new LogUserAdvice();
AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
@@ -97,7 +97,7 @@ class TypePatternClassFilterTests {
}
@Test
void equals() {
void testEquals() {
TypePatternClassFilter filter1 = new TypePatternClassFilter("org.springframework.beans.testfixture.beans.*");
TypePatternClassFilter filter2 = new TypePatternClassFilter("org.springframework.beans.testfixture.beans.*");
TypePatternClassFilter filter3 = new TypePatternClassFilter("org.springframework.tests.*");
@@ -107,7 +107,7 @@ class TypePatternClassFilterTests {
}
@Test
void hashCodeBehavior() {
void testHashCode() {
TypePatternClassFilter filter1 = new TypePatternClassFilter("org.springframework.beans.testfixture.beans.*");
TypePatternClassFilter filter2 = new TypePatternClassFilter("org.springframework.beans.testfixture.beans.*");
TypePatternClassFilter filter3 = new TypePatternClassFilter("org.springframework.tests.*");
@@ -117,7 +117,7 @@ class TypePatternClassFilterTests {
}
@Test
void toStringOutput() {
void testToString() {
TypePatternClassFilter filter1 = new TypePatternClassFilter("org.springframework.beans.testfixture.beans.*");
TypePatternClassFilter filter2 = new TypePatternClassFilter("org.springframework.beans.testfixture.beans.*");
@@ -430,8 +430,8 @@ abstract class AbstractAspectJAdvisorFactoryTests {
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(itb::getAge);
}
// TODO document this behavior.
// Is it different AspectJ behavior, at least for checked exceptions?
// TODO document this behaviour.
// Is it different AspectJ behaviour, at least for checked exceptions?
@Test
void aspectMethodThrowsExceptionIllegalOnSignature() {
TestBean target = new TestBean();
@@ -39,7 +39,7 @@ class AspectJPointcutAdvisorTests {
@Test
void singleton() throws SecurityException, NoSuchMethodException {
void testSingleton() throws SecurityException, NoSuchMethodException {
AspectJExpressionPointcut ajexp = new AspectJExpressionPointcut();
ajexp.setExpression(CommonExpressions.MATCH_ALL_METHODS);
@@ -53,7 +53,7 @@ class AspectJPointcutAdvisorTests {
}
@Test
void perTarget() throws SecurityException, NoSuchMethodException {
void testPerTarget() throws SecurityException, NoSuchMethodException {
AspectJExpressionPointcut ajexp = new AspectJExpressionPointcut();
ajexp.setExpression(CommonExpressions.MATCH_ALL_METHODS);
@@ -63,7 +63,8 @@ class AspectJPointcutAdvisorTests {
1, "someBean");
assertThat(ajpa.getAspectMetadata().getPerClausePointcut()).isNotSameAs(Pointcut.TRUE);
assertThat(ajpa.getAspectMetadata().getPerClausePointcut()).isInstanceOf(AspectJExpressionPointcut.class);
boolean condition = ajpa.getAspectMetadata().getPerClausePointcut() instanceof AspectJExpressionPointcut;
assertThat(condition).isTrue();
assertThat(ajpa.isPerInstance()).isTrue();
assertThat(ajpa.getAspectMetadata().getPerClausePointcut().getClassFilter().matches(TestBean.class)).isTrue();
@@ -75,13 +76,13 @@ class AspectJPointcutAdvisorTests {
}
@Test
void perCflowTarget() {
void testPerCflowTarget() {
assertThatExceptionOfType(AopConfigException.class).isThrownBy(() ->
testIllegalInstantiationModel(AbstractAspectJAdvisorFactoryTests.PerCflowAspect.class));
}
@Test
void perCflowBelowTarget() {
void testPerCflowBelowTarget() {
assertThatExceptionOfType(AopConfigException.class).isThrownBy(() ->
testIllegalInstantiationModel(AbstractAspectJAdvisorFactoryTests.PerCflowBelowAspect.class));
}
@@ -39,13 +39,13 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
class AspectProxyFactoryTests {
@Test
void withNonAspect() {
void testWithNonAspect() {
AspectJProxyFactory proxyFactory = new AspectJProxyFactory(new TestBean());
assertThatIllegalArgumentException().isThrownBy(() -> proxyFactory.addAspect(TestBean.class));
}
@Test
void withSimpleAspect() {
void testWithSimpleAspect() {
TestBean bean = new TestBean();
bean.setAge(2);
AspectJProxyFactory proxyFactory = new AspectJProxyFactory(bean);
@@ -55,7 +55,7 @@ class AspectProxyFactoryTests {
}
@Test
void withPerThisAspect() {
void testWithPerThisAspect() {
TestBean bean1 = new TestBean();
TestBean bean2 = new TestBean();
@@ -75,14 +75,14 @@ class AspectProxyFactoryTests {
}
@Test
void withInstanceWithNonAspect() {
void testWithInstanceWithNonAspect() {
AspectJProxyFactory pf = new AspectJProxyFactory();
assertThatIllegalArgumentException().isThrownBy(() -> pf.addAspect(new TestBean()));
}
@Test
@SuppressWarnings("unchecked")
void serializable() throws Exception {
void testSerializable() throws Exception {
AspectJProxyFactory proxyFactory = new AspectJProxyFactory(new TestBean());
proxyFactory.addAspect(LoggingAspectOnVarargs.class);
ITestBean proxy = proxyFactory.getProxy();
@@ -92,7 +92,7 @@ class AspectProxyFactoryTests {
}
@Test
void withInstance() throws Exception {
void testWithInstance() throws Exception {
MultiplyReturnValue aspect = new MultiplyReturnValue();
int multiple = 3;
aspect.setMultiple(multiple);
@@ -111,14 +111,14 @@ class AspectProxyFactoryTests {
}
@Test
void withNonSingletonAspectInstance() {
void testWithNonSingletonAspectInstance() {
AspectJProxyFactory pf = new AspectJProxyFactory();
assertThatIllegalArgumentException().isThrownBy(() -> pf.addAspect(new PerThisAspect()));
}
@Test // SPR-13328
@SuppressWarnings("unchecked")
void proxiedVarargsWithEnumArray() {
public void testProxiedVarargsWithEnumArray() {
AspectJProxyFactory proxyFactory = new AspectJProxyFactory(new TestBean());
proxyFactory.addAspect(LoggingAspectOnVarargs.class);
ITestBean proxy = proxyFactory.getProxy();
@@ -127,7 +127,7 @@ class AspectProxyFactoryTests {
@Test // SPR-13328
@SuppressWarnings("unchecked")
void unproxiedVarargsWithEnumArray() {
public void testUnproxiedVarargsWithEnumArray() {
AspectJProxyFactory proxyFactory = new AspectJProxyFactory(new TestBean());
proxyFactory.addAspect(LoggingAspectOnSetter.class);
ITestBean proxy = proxyFactory.getProxy();
@@ -47,7 +47,7 @@ class AspectJNamespaceHandlerTests {
@BeforeEach
void setUp() {
public void setUp() {
SourceExtractor sourceExtractor = new PassThroughSourceExtractor();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this.registry);
XmlReaderContext readerContext =
@@ -56,7 +56,7 @@ class AspectJNamespaceHandlerTests {
}
@Test
void registerAutoProxyCreator() {
void testRegisterAutoProxyCreator() {
AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(this.parserContext, null);
assertThat(registry.getBeanDefinitionCount()).as("Incorrect number of definitions registered").isEqualTo(1);
@@ -65,7 +65,7 @@ class AspectJNamespaceHandlerTests {
}
@Test
void registerAspectJAutoProxyCreator() {
void testRegisterAspectJAutoProxyCreator() {
AopNamespaceUtils.registerAspectJAutoProxyCreatorIfNecessary(this.parserContext, null);
assertThat(registry.getBeanDefinitionCount()).as("Incorrect number of definitions registered").isEqualTo(1);
@@ -77,7 +77,7 @@ class AspectJNamespaceHandlerTests {
}
@Test
void registerAspectJAutoProxyCreatorWithExistingAutoProxyCreator() {
void testRegisterAspectJAutoProxyCreatorWithExistingAutoProxyCreator() {
AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(this.parserContext, null);
assertThat(registry.getBeanDefinitionCount()).isEqualTo(1);
@@ -89,7 +89,7 @@ class AspectJNamespaceHandlerTests {
}
@Test
void registerAutoProxyCreatorWhenAspectJAutoProxyCreatorAlreadyExists() {
void testRegisterAutoProxyCreatorWhenAspectJAutoProxyCreatorAlreadyExists() {
AopNamespaceUtils.registerAspectJAutoProxyCreatorIfNecessary(this.parserContext, null);
assertThat(registry.getBeanDefinitionCount()).isEqualTo(1);
@@ -33,7 +33,6 @@ import org.springframework.aop.aspectj.AspectJExpressionPointcut;
import org.springframework.aop.aspectj.AspectJMethodBeforeAdvice;
import org.springframework.aop.aspectj.AspectJPointcutAdvisor;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.util.ClassUtils;
import static org.assertj.core.api.Assertions.assertThat;
@@ -49,21 +48,24 @@ class AspectJPrecedenceComparatorTests {
private static final int LATE_ADVICE_DECLARATION_ORDER = 10;
private final AspectJPrecedenceComparator comparator = new AspectJPrecedenceComparator();
private AspectJPrecedenceComparator comparator;
private final Method anyOldMethod = ClassUtils.getMethod(MessageService.class, "getMessage");
private Method anyOldMethod;
private final AspectJExpressionPointcut anyOldPointcut = new AspectJExpressionPointcut();
private AspectJExpressionPointcut anyOldPointcut;
@BeforeEach
void setUp() {
public void setUp() {
this.comparator = new AspectJPrecedenceComparator();
this.anyOldMethod = getClass().getMethods()[0];
this.anyOldPointcut = new AspectJExpressionPointcut();
this.anyOldPointcut.setExpression("execution(* *(..))");
}
@Test
void sameAspectNoAfterAdvice() {
void testSameAspectNoAfterAdvice() {
Advisor advisor1 = createAspectJBeforeAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someAspect");
Advisor advisor2 = createAspectJBeforeAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, LATE_ADVICE_DECLARATION_ORDER, "someAspect");
assertThat(this.comparator.compare(advisor1, advisor2)).as("advisor1 sorted before advisor2").isEqualTo(-1);
@@ -74,7 +76,7 @@ class AspectJPrecedenceComparatorTests {
}
@Test
void sameAspectAfterAdvice() {
void testSameAspectAfterAdvice() {
Advisor advisor1 = createAspectJAfterAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someAspect");
Advisor advisor2 = createAspectJAroundAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, LATE_ADVICE_DECLARATION_ORDER, "someAspect");
assertThat(this.comparator.compare(advisor1, advisor2)).as("advisor2 sorted before advisor1").isEqualTo(1);
@@ -85,14 +87,14 @@ class AspectJPrecedenceComparatorTests {
}
@Test
void sameAspectOneOfEach() {
void testSameAspectOneOfEach() {
Advisor advisor1 = createAspectJAfterAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someAspect");
Advisor advisor2 = createAspectJBeforeAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, LATE_ADVICE_DECLARATION_ORDER, "someAspect");
assertThat(this.comparator.compare(advisor1, advisor2)).as("advisor1 and advisor2 not comparable").isEqualTo(1);
}
@Test
void sameAdvisorPrecedenceDifferentAspectNoAfterAdvice() {
void testSameAdvisorPrecedenceDifferentAspectNoAfterAdvice() {
Advisor advisor1 = createAspectJBeforeAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someAspect");
Advisor advisor2 = createAspectJBeforeAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, LATE_ADVICE_DECLARATION_ORDER, "someOtherAspect");
assertThat(this.comparator.compare(advisor1, advisor2)).as("nothing to say about order here").isEqualTo(0);
@@ -103,7 +105,7 @@ class AspectJPrecedenceComparatorTests {
}
@Test
void sameAdvisorPrecedenceDifferentAspectAfterAdvice() {
void testSameAdvisorPrecedenceDifferentAspectAfterAdvice() {
Advisor advisor1 = createAspectJAfterAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someAspect");
Advisor advisor2 = createAspectJAroundAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, LATE_ADVICE_DECLARATION_ORDER, "someOtherAspect");
assertThat(this.comparator.compare(advisor1, advisor2)).as("nothing to say about order here").isEqualTo(0);
@@ -114,7 +116,7 @@ class AspectJPrecedenceComparatorTests {
}
@Test
void higherAdvisorPrecedenceNoAfterAdvice() {
void testHigherAdvisorPrecedenceNoAfterAdvice() {
Advisor advisor1 = createSpringAOPBeforeAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER);
Advisor advisor2 = createAspectJBeforeAdvice(LOW_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someOtherAspect");
assertThat(this.comparator.compare(advisor1, advisor2)).as("advisor1 sorted before advisor2").isEqualTo(-1);
@@ -125,7 +127,7 @@ class AspectJPrecedenceComparatorTests {
}
@Test
void higherAdvisorPrecedenceAfterAdvice() {
void testHigherAdvisorPrecedenceAfterAdvice() {
Advisor advisor1 = createAspectJAfterAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someAspect");
Advisor advisor2 = createAspectJAroundAdvice(LOW_PRECEDENCE_ADVISOR_ORDER, LATE_ADVICE_DECLARATION_ORDER, "someOtherAspect");
assertThat(this.comparator.compare(advisor1, advisor2)).as("advisor1 sorted before advisor2").isEqualTo(-1);
@@ -136,7 +138,7 @@ class AspectJPrecedenceComparatorTests {
}
@Test
void lowerAdvisorPrecedenceNoAfterAdvice() {
void testLowerAdvisorPrecedenceNoAfterAdvice() {
Advisor advisor1 = createAspectJBeforeAdvice(LOW_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someAspect");
Advisor advisor2 = createAspectJBeforeAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someOtherAspect");
assertThat(this.comparator.compare(advisor1, advisor2)).as("advisor1 sorted after advisor2").isEqualTo(1);
@@ -147,7 +149,7 @@ class AspectJPrecedenceComparatorTests {
}
@Test
void lowerAdvisorPrecedenceAfterAdvice() {
void testLowerAdvisorPrecedenceAfterAdvice() {
Advisor advisor1 = createAspectJAfterAdvice(LOW_PRECEDENCE_ADVISOR_ORDER, EARLY_ADVICE_DECLARATION_ORDER, "someAspect");
Advisor advisor2 = createAspectJAroundAdvice(HIGH_PRECEDENCE_ADVISOR_ORDER, LATE_ADVICE_DECLARATION_ORDER, "someOtherAspect");
assertThat(this.comparator.compare(advisor1, advisor2)).as("advisor1 sorted after advisor2").isEqualTo(1);
@@ -207,11 +209,4 @@ class AspectJPrecedenceComparatorTests {
return advisor;
}
static class MessageService {
public String getMessage() {
return "test";
}
}
}
@@ -35,7 +35,7 @@ import static org.assertj.core.api.Assertions.assertThat;
class MethodInvocationTests {
@Test
void validInvocation() throws Throwable {
void testValidInvocation() throws Throwable {
Method method = Object.class.getMethod("hashCode");
Object proxy = new Object();
Object returnValue = new Object();
@@ -49,7 +49,7 @@ class MethodInvocationTests {
* toString on target can cause failure.
*/
@Test
void toStringDoesntHitTarget() throws Throwable {
void testToStringDoesntHitTarget() throws Throwable {
Object target = new TestBean() {
@Override
public String toString() {
@@ -36,7 +36,7 @@ class NullPrimitiveTests {
}
@Test
void nullPrimitiveWithJdkProxy() {
void testNullPrimitiveWithJdkProxy() {
class SimpleFoo implements Foo {
@Override
@@ -62,7 +62,7 @@ class NullPrimitiveTests {
}
@Test
void nullPrimitiveWithCglibProxy() {
void testNullPrimitiveWithCglibProxy() {
Bar target = new Bar();
ProxyFactory factory = new ProxyFactory(target);
@@ -38,7 +38,7 @@ class PrototypeTargetTests {
@Test
void prototypeProxyWithPrototypeTarget() {
void testPrototypeProxyWithPrototypeTarget() {
TestBeanImpl.constructionCount = 0;
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(CONTEXT);
@@ -52,7 +52,7 @@ class PrototypeTargetTests {
}
@Test
void singletonProxyWithPrototypeTarget() {
void testSingletonProxyWithPrototypeTarget() {
TestBeanImpl.constructionCount = 0;
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(CONTEXT);
@@ -40,14 +40,14 @@ import static org.mockito.Mockito.mock;
class ThrowsAdviceInterceptorTests {
@Test
void noHandlerMethods() {
void testNoHandlerMethods() {
// should require one handler method at least
assertThatExceptionOfType(AopConfigException.class).isThrownBy(() ->
new ThrowsAdviceInterceptor(new Object()));
}
@Test
void notInvoked() throws Throwable {
void testNotInvoked() throws Throwable {
MyThrowsHandler th = new MyThrowsHandler();
ThrowsAdviceInterceptor ti = new ThrowsAdviceInterceptor(th);
Object ret = new Object();
@@ -58,7 +58,7 @@ class ThrowsAdviceInterceptorTests {
}
@Test
void noHandlerMethodForThrowable() throws Throwable {
void testNoHandlerMethodForThrowable() throws Throwable {
MyThrowsHandler th = new MyThrowsHandler();
ThrowsAdviceInterceptor ti = new ThrowsAdviceInterceptor(th);
assertThat(ti.getHandlerMethodCount()).isEqualTo(2);
@@ -70,7 +70,7 @@ class ThrowsAdviceInterceptorTests {
}
@Test
void correctHandlerUsed() throws Throwable {
void testCorrectHandlerUsed() throws Throwable {
MyThrowsHandler th = new MyThrowsHandler();
ThrowsAdviceInterceptor ti = new ThrowsAdviceInterceptor(th);
FileNotFoundException ex = new FileNotFoundException();
@@ -84,7 +84,7 @@ class ThrowsAdviceInterceptorTests {
}
@Test
void correctHandlerUsedForSubclass() throws Throwable {
void testCorrectHandlerUsedForSubclass() throws Throwable {
MyThrowsHandler th = new MyThrowsHandler();
ThrowsAdviceInterceptor ti = new ThrowsAdviceInterceptor(th);
// Extends RemoteException
@@ -97,7 +97,7 @@ class ThrowsAdviceInterceptorTests {
}
@Test
void handlerMethodThrowsException() throws Throwable {
void testHandlerMethodThrowsException() throws Throwable {
final Throwable t = new Throwable();
MyThrowsHandler th = new MyThrowsHandler() {
@@ -38,7 +38,7 @@ import static org.mockito.Mockito.verify;
class DebugInterceptorTests {
@Test
void sunnyDayPathLogsCorrectly() throws Throwable {
void testSunnyDayPathLogsCorrectly() throws Throwable {
MethodInvocation methodInvocation = mock();
Log log = mock();
@@ -52,7 +52,7 @@ class DebugInterceptorTests {
}
@Test
void exceptionPathStillLogsCorrectly() throws Throwable {
void testExceptionPathStillLogsCorrectly() throws Throwable {
MethodInvocation methodInvocation = mock();
IllegalArgumentException exception = new IllegalArgumentException();
@@ -46,7 +46,7 @@ class ExposeBeanNameAdvisorsTests {
}
@Test
void noIntroduction() {
void testNoIntroduction() {
String beanName = "foo";
TestBean target = new RequiresBeanNameBoundTestBean(beanName);
ProxyFactory pf = new ProxyFactory(target);
@@ -54,13 +54,14 @@ class ExposeBeanNameAdvisorsTests {
pf.addAdvisor(ExposeBeanNameAdvisors.createAdvisorWithoutIntroduction(beanName));
ITestBean proxy = (ITestBean) pf.getProxy();
assertThat(proxy).as("No introduction").isNotInstanceOf(NamedBean.class);
boolean condition = proxy instanceof NamedBean;
assertThat(condition).as("No introduction").isFalse();
// Requires binding
proxy.getAge();
}
@Test
void withIntroduction() {
void testWithIntroduction() {
String beanName = "foo";
TestBean target = new RequiresBeanNameBoundTestBean(beanName);
ProxyFactory pf = new ProxyFactory(target);
@@ -68,7 +69,8 @@ class ExposeBeanNameAdvisorsTests {
pf.addAdvisor(ExposeBeanNameAdvisors.createAdvisorIntroducingNamedBean(beanName));
ITestBean proxy = (ITestBean) pf.getProxy();
assertThat(proxy).as("Introduction was made").isInstanceOf(NamedBean.class);
boolean condition = proxy instanceof NamedBean;
assertThat(condition).as("Introduction was made").isTrue();
// Requires binding
proxy.getAge();
@@ -34,7 +34,7 @@ import static org.springframework.core.testfixture.io.ResourceTestUtils.qualifie
class ExposeInvocationInterceptorTests {
@Test
void xmlConfig() {
void testXmlConfig() {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
qualifiedResource(ExposeInvocationInterceptorTests.class, "context.xml"));
@@ -35,7 +35,7 @@ import static org.mockito.Mockito.verify;
class PerformanceMonitorInterceptorTests {
@Test
void suffixAndPrefixAssignment() {
void testSuffixAndPrefixAssignment() {
PerformanceMonitorInterceptor interceptor = new PerformanceMonitorInterceptor();
assertThat(interceptor.getPrefix()).isNotNull();
@@ -49,7 +49,7 @@ class PerformanceMonitorInterceptorTests {
}
@Test
void sunnyDayPathLogsPerformanceMetricsCorrectly() throws Throwable {
void testSunnyDayPathLogsPerformanceMetricsCorrectly() throws Throwable {
MethodInvocation mi = mock();
given(mi.getMethod()).willReturn(String.class.getMethod("toString"));
@@ -62,7 +62,7 @@ class PerformanceMonitorInterceptorTests {
}
@Test
void exceptionPathStillLogsPerformanceMetricsCorrectly() throws Throwable {
void testExceptionPathStillLogsPerformanceMetricsCorrectly() throws Throwable {
MethodInvocation mi = mock();
given(mi.getMethod()).willReturn(String.class.getMethod("toString"));
@@ -37,7 +37,7 @@ import static org.mockito.Mockito.verify;
class SimpleTraceInterceptorTests {
@Test
void sunnyDayPathLogsCorrectly() throws Throwable {
void testSunnyDayPathLogsCorrectly() throws Throwable {
MethodInvocation mi = mock();
given(mi.getMethod()).willReturn(String.class.getMethod("toString"));
given(mi.getThis()).willReturn(this);
@@ -51,7 +51,7 @@ class SimpleTraceInterceptorTests {
}
@Test
void exceptionPathStillLogsCorrectly() throws Throwable {
void testExceptionPathStillLogsCorrectly() throws Throwable {
MethodInvocation mi = mock();
given(mi.getMethod()).willReturn(String.class.getMethod("toString"));
given(mi.getThis()).willReturn(this);
@@ -35,25 +35,25 @@ class DefaultScopedObjectTests {
@Test
void ctorWithNullBeanFactory() {
void testCtorWithNullBeanFactory() {
assertThatIllegalArgumentException().isThrownBy(() ->
new DefaultScopedObject(null, GOOD_BEAN_NAME));
}
@Test
void ctorWithNullTargetBeanName() {
void testCtorWithNullTargetBeanName() {
assertThatIllegalArgumentException().isThrownBy(() ->
testBadTargetBeanName(null));
}
@Test
void ctorWithEmptyTargetBeanName() {
void testCtorWithEmptyTargetBeanName() {
assertThatIllegalArgumentException().isThrownBy(() ->
testBadTargetBeanName(""));
}
@Test
void ctorWithJustWhitespacedTargetBeanName() {
void testCtorWithJustWhitespacedTargetBeanName() {
assertThatIllegalArgumentException().isThrownBy(() ->
testBadTargetBeanName(" "));
}
@@ -34,7 +34,7 @@ import static org.springframework.core.testfixture.io.ResourceTestUtils.qualifie
class ScopedProxyAutowireTests {
@Test
void scopedProxyInheritsAutowireCandidateFalse() {
void testScopedProxyInheritsAutowireCandidateFalse() {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
qualifiedResource(ScopedProxyAutowireTests.class, "scopedAutowireFalse.xml"));
@@ -48,7 +48,7 @@ class ScopedProxyAutowireTests {
}
@Test
void scopedProxyReplacesAutowireCandidateTrue() {
void testScopedProxyReplacesAutowireCandidateTrue() {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
qualifiedResource(ScopedProxyAutowireTests.class, "scopedAutowireTrue.xml"));
@@ -45,7 +45,7 @@ import static org.assertj.core.api.Assertions.assertThat;
class AopUtilsTests {
@Test
void pointcutCanNeverApply() {
void testPointcutCanNeverApply() {
class TestPointcut extends StaticMethodMatcherPointcut {
@Override
public boolean matches(Method method, @Nullable Class<?> clazzy) {
@@ -58,13 +58,13 @@ class AopUtilsTests {
}
@Test
void pointcutAlwaysApplies() {
void testPointcutAlwaysApplies() {
assertThat(AopUtils.canApply(new DefaultPointcutAdvisor(new NopInterceptor()), Object.class)).isTrue();
assertThat(AopUtils.canApply(new DefaultPointcutAdvisor(new NopInterceptor()), TestBean.class)).isTrue();
}
@Test
void pointcutAppliesToOneMethodOnObject() {
void testPointcutAppliesToOneMethodOnObject() {
class TestPointcut extends StaticMethodMatcherPointcut {
@Override
public boolean matches(Method method, @Nullable Class<?> clazz) {
@@ -84,7 +84,7 @@ class AopUtilsTests {
* that's subverted the singleton construction limitation.
*/
@Test
void canonicalFrameworkClassesStillCanonicalOnDeserialization() throws Exception {
void testCanonicalFrameworkClassesStillCanonicalOnDeserialization() throws Exception {
assertThat(SerializationTestUtils.serializeAndDeserialize(MethodMatcher.TRUE)).isSameAs(MethodMatcher.TRUE);
assertThat(SerializationTestUtils.serializeAndDeserialize(ClassFilter.TRUE)).isSameAs(ClassFilter.TRUE);
assertThat(SerializationTestUtils.serializeAndDeserialize(Pointcut.TRUE)).isSameAs(Pointcut.TRUE);
@@ -95,7 +95,7 @@ class AopUtilsTests {
}
@Test
void invokeJoinpointUsingReflection() throws Throwable {
void testInvokeJoinpointUsingReflection() throws Throwable {
String name = "foo";
TestBean testBean = new TestBean(name);
Method method = ReflectionUtils.findMethod(TestBean.class, "getName");
@@ -58,14 +58,14 @@ class ComposablePointcutTests {
@Test
void matchAll() throws NoSuchMethodException {
void testMatchAll() throws NoSuchMethodException {
Pointcut pc = new ComposablePointcut();
assertThat(pc.getClassFilter().matches(Object.class)).isTrue();
assertThat(pc.getMethodMatcher().matches(Object.class.getMethod("hashCode"), Exception.class)).isTrue();
}
@Test
void filterByClass() {
void testFilterByClass() {
ComposablePointcut pc = new ComposablePointcut();
assertThat(pc.getClassFilter().matches(Object.class)).isTrue();
@@ -85,7 +85,7 @@ class ComposablePointcutTests {
}
@Test
void unionMethodMatcher() {
void testUnionMethodMatcher() {
// Matches the getAge() method in any class
ComposablePointcut pc = new ComposablePointcut(ClassFilter.TRUE, GET_AGE_METHOD_MATCHER);
assertThat(Pointcuts.matches(pc, PointcutsTests.TEST_BEAN_ABSQUATULATE, TestBean.class)).isFalse();
@@ -108,7 +108,7 @@ class ComposablePointcutTests {
}
@Test
void intersectionMethodMatcher() {
void testIntersectionMethodMatcher() {
ComposablePointcut pc = new ComposablePointcut();
assertThat(pc.getMethodMatcher().matches(PointcutsTests.TEST_BEAN_ABSQUATULATE, TestBean.class)).isTrue();
assertThat(pc.getMethodMatcher().matches(PointcutsTests.TEST_BEAN_GET_AGE, TestBean.class)).isTrue();
@@ -125,7 +125,7 @@ class ComposablePointcutTests {
}
@Test
void equalsAndHashCode() {
void testEqualsAndHashCode() {
ComposablePointcut pc1 = new ComposablePointcut();
ComposablePointcut pc2 = new ComposablePointcut();
@@ -152,7 +152,7 @@ class ControlFlowPointcutTests {
}
@Test
void toStringOutput() {
void testToString() {
String pointcutType = ControlFlowPointcut.class.getName();
String componentType = MyComponent.class.getName();
@@ -47,14 +47,14 @@ import static org.mockito.Mockito.mock;
class DelegatingIntroductionInterceptorTests {
@Test
void nullTarget() {
void testNullTarget() {
// Shouldn't accept null target
assertThatIllegalArgumentException().isThrownBy(() ->
new DelegatingIntroductionInterceptor(null));
}
@Test
void introductionInterceptorWithDelegation() {
void testIntroductionInterceptorWithDelegation() {
TestBean raw = new TestBean();
assertThat(raw).isNotInstanceOf(TimeStamped.class);
ProxyFactory factory = new ProxyFactory(raw);
@@ -70,7 +70,7 @@ class DelegatingIntroductionInterceptorTests {
}
@Test
void introductionInterceptorWithInterfaceHierarchy() {
void testIntroductionInterceptorWithInterfaceHierarchy() {
TestBean raw = new TestBean();
assertThat(raw).isNotInstanceOf(SubTimeStamped.class);
ProxyFactory factory = new ProxyFactory(raw);
@@ -86,7 +86,7 @@ class DelegatingIntroductionInterceptorTests {
}
@Test
void introductionInterceptorWithSuperInterface() {
void testIntroductionInterceptorWithSuperInterface() {
TestBean raw = new TestBean();
assertThat(raw).isNotInstanceOf(TimeStamped.class);
ProxyFactory factory = new ProxyFactory(raw);
@@ -103,7 +103,7 @@ class DelegatingIntroductionInterceptorTests {
}
@Test
void automaticInterfaceRecognitionInDelegate() throws Exception {
void testAutomaticInterfaceRecognitionInDelegate() throws Exception {
final long t = 1001L;
class Tester implements TimeStamped, ITester {
@Override
@@ -133,7 +133,7 @@ class DelegatingIntroductionInterceptorTests {
@Test
void automaticInterfaceRecognitionInSubclass() throws Exception {
void testAutomaticInterfaceRecognitionInSubclass() throws Exception {
final long t = 1001L;
@SuppressWarnings("serial")
class TestII extends DelegatingIntroductionInterceptor implements TimeStamped, ITester {
@@ -178,7 +178,7 @@ class DelegatingIntroductionInterceptorTests {
}
@Test
void introductionInterceptorDoesNotReplaceToString() {
void testIntroductionInterceptorDoesNotReplaceToString() {
TestBean raw = new TestBean();
assertThat(raw).isNotInstanceOf(TimeStamped.class);
ProxyFactory factory = new ProxyFactory(raw);
@@ -199,7 +199,7 @@ class DelegatingIntroductionInterceptorTests {
}
@Test
void delegateReturnsThisIsMassagedToReturnProxy() {
void testDelegateReturnsThisIsMassagedToReturnProxy() {
NestedTestBean target = new NestedTestBean();
String company = "Interface21";
target.setCompany(company);
@@ -220,7 +220,7 @@ class DelegatingIntroductionInterceptorTests {
}
@Test
void serializableDelegatingIntroductionInterceptorSerializable() throws Exception {
void testSerializableDelegatingIntroductionInterceptorSerializable() throws Exception {
SerializablePerson serializableTarget = new SerializablePerson();
String name = "Tony";
serializableTarget.setName("Tony");
@@ -245,7 +245,7 @@ class DelegatingIntroductionInterceptorTests {
// Test when target implements the interface: should get interceptor by preference.
@Test
void introductionMasksTargetImplementation() {
void testIntroductionMasksTargetImplementation() {
final long t = 1001L;
@SuppressWarnings("serial")
class TestII extends DelegatingIntroductionInterceptor implements TimeStamped {
@@ -56,19 +56,19 @@ class MethodMatchersTests {
@Test
void defaultMatchesAll() {
void testDefaultMatchesAll() {
MethodMatcher defaultMm = MethodMatcher.TRUE;
assertThat(defaultMm.matches(EXCEPTION_GETMESSAGE, Exception.class)).isTrue();
assertThat(defaultMm.matches(ITESTBEAN_SETAGE, TestBean.class)).isTrue();
}
@Test
void methodMatcherTrueSerializable() throws Exception {
void testMethodMatcherTrueSerializable() throws Exception {
assertThat(MethodMatcher.TRUE).isSameAs(SerializationTestUtils.serializeAndDeserialize(MethodMatcher.TRUE));
}
@Test
void single() {
void testSingle() {
MethodMatcher defaultMm = MethodMatcher.TRUE;
assertThat(defaultMm.matches(EXCEPTION_GETMESSAGE, Exception.class)).isTrue();
assertThat(defaultMm.matches(ITESTBEAN_SETAGE, TestBean.class)).isTrue();
@@ -80,7 +80,7 @@ class MethodMatchersTests {
@Test
void dynamicAndStaticMethodMatcherIntersection() {
void testDynamicAndStaticMethodMatcherIntersection() {
MethodMatcher mm1 = MethodMatcher.TRUE;
MethodMatcher mm2 = new TestDynamicMethodMatcherWhichMatches();
MethodMatcher intersection = MethodMatchers.intersection(mm1, mm2);
@@ -95,7 +95,7 @@ class MethodMatchersTests {
}
@Test
void staticMethodMatcherUnion() {
void testStaticMethodMatcherUnion() {
MethodMatcher getterMatcher = new StartsWithMatcher("get");
MethodMatcher setterMatcher = new StartsWithMatcher("set");
MethodMatcher union = MethodMatchers.union(getterMatcher, setterMatcher);
@@ -107,7 +107,7 @@ class MethodMatchersTests {
}
@Test
void unionEquals() {
void testUnionEquals() {
MethodMatcher first = MethodMatchers.union(MethodMatcher.TRUE, MethodMatcher.TRUE);
MethodMatcher second = new ComposablePointcut(MethodMatcher.TRUE).union(new ComposablePointcut(MethodMatcher.TRUE)).getMethodMatcher();
assertThat(first).isEqualTo(second);
@@ -120,7 +120,7 @@ class PointcutsTests {
@Test
void trueCase() {
void testTrue() {
assertThat(Pointcuts.matches(Pointcut.TRUE, TEST_BEAN_SET_AGE, TestBean.class, 6)).isTrue();
assertThat(Pointcuts.matches(Pointcut.TRUE, TEST_BEAN_GET_AGE, TestBean.class)).isTrue();
assertThat(Pointcuts.matches(Pointcut.TRUE, TEST_BEAN_ABSQUATULATE, TestBean.class)).isTrue();
@@ -130,7 +130,7 @@ class PointcutsTests {
}
@Test
void matches() {
void testMatches() {
assertThat(Pointcuts.matches(allClassSetterPointcut, TEST_BEAN_SET_AGE, TestBean.class, 6)).isTrue();
assertThat(Pointcuts.matches(allClassSetterPointcut, TEST_BEAN_GET_AGE, TestBean.class)).isFalse();
assertThat(Pointcuts.matches(allClassSetterPointcut, TEST_BEAN_ABSQUATULATE, TestBean.class)).isFalse();
@@ -143,7 +143,7 @@ class PointcutsTests {
* Should match all setters and getters on any class
*/
@Test
void unionOfSettersAndGetters() {
void testUnionOfSettersAndGetters() {
Pointcut union = Pointcuts.union(allClassGetterPointcut, allClassSetterPointcut);
assertThat(Pointcuts.matches(union, TEST_BEAN_SET_AGE, TestBean.class, 6)).isTrue();
assertThat(Pointcuts.matches(union, TEST_BEAN_GET_AGE, TestBean.class)).isTrue();
@@ -151,7 +151,7 @@ class PointcutsTests {
}
@Test
void unionOfSpecificGetters() {
void testUnionOfSpecificGetters() {
Pointcut union = Pointcuts.union(allClassGetAgePointcut, allClassGetNamePointcut);
assertThat(Pointcuts.matches(union, TEST_BEAN_SET_AGE, TestBean.class, 6)).isFalse();
assertThat(Pointcuts.matches(union, TEST_BEAN_GET_AGE, TestBean.class)).isTrue();
@@ -175,7 +175,7 @@ class PointcutsTests {
* Second one matches all getters in the MyTestBean class. TestBean getters shouldn't pass.
*/
@Test
void unionOfAllSettersAndSubclassSetters() {
void testUnionOfAllSettersAndSubclassSetters() {
assertThat(Pointcuts.matches(myTestBeanSetterPointcut, TEST_BEAN_SET_AGE, TestBean.class, 6)).isFalse();
assertThat(Pointcuts.matches(myTestBeanSetterPointcut, TEST_BEAN_SET_AGE, MyTestBean.class, 6)).isTrue();
assertThat(Pointcuts.matches(myTestBeanSetterPointcut, TEST_BEAN_GET_AGE, TestBean.class)).isFalse();
@@ -193,7 +193,7 @@ class PointcutsTests {
* it's the union of allClassGetAge and subclass getters
*/
@Test
void intersectionOfSpecificGettersAndSubclassGetters() {
void testIntersectionOfSpecificGettersAndSubclassGetters() {
assertThat(Pointcuts.matches(allClassGetAgePointcut, TEST_BEAN_GET_AGE, TestBean.class)).isTrue();
assertThat(Pointcuts.matches(allClassGetAgePointcut, TEST_BEAN_GET_AGE, MyTestBean.class)).isTrue();
assertThat(Pointcuts.matches(myTestBeanGetterPointcut, TEST_BEAN_GET_NAME, TestBean.class)).isFalse();
@@ -239,7 +239,7 @@ class PointcutsTests {
* The intersection of these two pointcuts leaves nothing.
*/
@Test
void simpleIntersection() {
void testSimpleIntersection() {
Pointcut intersection = Pointcuts.intersection(allClassGetterPointcut, allClassSetterPointcut);
assertThat(Pointcuts.matches(intersection, TEST_BEAN_SET_AGE, TestBean.class, 6)).isFalse();
assertThat(Pointcuts.matches(intersection, TEST_BEAN_GET_AGE, TestBean.class)).isFalse();
@@ -43,7 +43,7 @@ class RegexpMethodPointcutAdvisorIntegrationTests {
@Test
void singlePattern() throws Throwable {
void testSinglePattern() throws Throwable {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(CONTEXT);
ITestBean advised = (ITestBean) bf.getBean("settersAdvised");
@@ -62,7 +62,7 @@ class RegexpMethodPointcutAdvisorIntegrationTests {
}
@Test
void multiplePatterns() throws Throwable {
void testMultiplePatterns() throws Throwable {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(CONTEXT);
// This is a CGLIB proxy, so we can proxy it to the target class
@@ -86,7 +86,7 @@ class RegexpMethodPointcutAdvisorIntegrationTests {
}
@Test
void serialization() throws Throwable {
void testSerialization() throws Throwable {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(CONTEXT);
// This is a CGLIB proxy, so we can proxy it to the target class
@@ -44,19 +44,19 @@ class RootClassFilterTests {
}
@Test
void equals() {
void testEquals() {
assertThat(filter1).isEqualTo(filter2);
assertThat(filter1).isNotEqualTo(filter3);
}
@Test
void hashCodeBehavior() {
void testHashCode() {
assertThat(filter1.hashCode()).isEqualTo(filter2.hashCode());
assertThat(filter1.hashCode()).isNotEqualTo(filter3.hashCode());
}
@Test
void toStringOutput() {
void testToString() {
assertThat(filter1.toString()).isEqualTo("org.springframework.aop.support.RootClassFilter: java.lang.Exception");
assertThat(filter1.toString()).isEqualTo(filter2.toString());
}
@@ -36,7 +36,7 @@ class CommonsPool2TargetSourceProxyTests {
qualifiedResource(CommonsPool2TargetSourceProxyTests.class, "context.xml");
@Test
void proxy() {
void testProxy() {
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
reader.loadBeanDefinitions(CONTEXT);
@@ -48,7 +48,7 @@ class HotSwappableTargetSourceTests {
@BeforeEach
void setup() {
public void setup() {
this.beanFactory = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(this.beanFactory).loadBeanDefinitions(
qualifiedResource(HotSwappableTargetSourceTests.class, "context.xml"));
@@ -58,7 +58,7 @@ class HotSwappableTargetSourceTests {
* We must simulate container shutdown, which should clear threads.
*/
@AfterEach
void close() {
public void close() {
// Will call pool.close()
this.beanFactory.destroySingletons();
}
@@ -68,7 +68,7 @@ class HotSwappableTargetSourceTests {
* Check it works like a normal invoker
*/
@Test
void basicFunctionality() {
void testBasicFunctionality() {
SideEffectBean proxied = (SideEffectBean) beanFactory.getBean("swappable");
assertThat(proxied.getCount()).isEqualTo(INITIAL_COUNT);
proxied.doWork();
@@ -80,7 +80,7 @@ class HotSwappableTargetSourceTests {
}
@Test
void validSwaps() {
void testValidSwaps() {
SideEffectBean target1 = (SideEffectBean) beanFactory.getBean("target1");
SideEffectBean target2 = (SideEffectBean) beanFactory.getBean("target2");
@@ -107,17 +107,17 @@ class HotSwappableTargetSourceTests {
}
@Test
void rejectsSwapToNull() {
void testRejectsSwapToNull() {
HotSwappableTargetSource swapper = (HotSwappableTargetSource) beanFactory.getBean("swapper");
assertThatIllegalArgumentException().as("Shouldn't be able to swap to invalid value").isThrownBy(() ->
swapper.swap(null))
.withMessageContaining("null");
// It shouldn't be corrupted, it should still work
basicFunctionality();
testBasicFunctionality();
}
@Test
void serialization() throws Exception {
void testSerialization() throws Exception {
SerializablePerson sp1 = new SerializablePerson();
sp1.setName("Tony");
SerializablePerson sp2 = new SerializablePerson();
@@ -31,7 +31,7 @@ import static org.assertj.core.api.Assertions.assertThat;
class LazyCreationTargetSourceTests {
@Test
void createLazy() {
void testCreateLazy() {
TargetSource targetSource = new AbstractLazyCreationTargetSource() {
@Override
protected Object createObject() {
@@ -39,7 +39,7 @@ import static org.assertj.core.api.Assertions.assertThat;
class PrototypeBasedTargetSourceTests {
@Test
void serializability() throws Exception {
void testSerializability() throws Exception {
MutablePropertyValues tsPvs = new MutablePropertyValues();
tsPvs.add("targetBeanName", "person");
RootBeanDefinition tsBd = new RootBeanDefinition(TestTargetSource.class);
@@ -39,7 +39,7 @@ class PrototypeTargetSourceTests {
@BeforeEach
void setup() {
public void setup() {
this.beanFactory = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(this.beanFactory).loadBeanDefinitions(
qualifiedResource(PrototypeTargetSourceTests.class, "context.xml"));
@@ -52,7 +52,7 @@ class PrototypeTargetSourceTests {
* With the singleton, there will be change.
*/
@Test
void prototypeAndSingletonBehaveDifferently() {
void testPrototypeAndSingletonBehaveDifferently() {
SideEffectBean singleton = (SideEffectBean) beanFactory.getBean("singleton");
assertThat(singleton.getCount()).isEqualTo(INITIAL_COUNT);
singleton.doWork();
@@ -40,7 +40,7 @@ class ThreadLocalTargetSourceTests {
@BeforeEach
void setup() {
public void setup() {
this.beanFactory = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(this.beanFactory).loadBeanDefinitions(
qualifiedResource(ThreadLocalTargetSourceTests.class, "context.xml"));
@@ -60,7 +60,7 @@ class ThreadLocalTargetSourceTests {
* with one another.
*/
@Test
void useDifferentManagedInstancesInSameThread() {
void testUseDifferentManagedInstancesInSameThread() {
SideEffectBean apartment = (SideEffectBean) beanFactory.getBean("apartment");
assertThat(apartment.getCount()).isEqualTo(INITIAL_COUNT);
apartment.doWork();
@@ -72,7 +72,7 @@ class ThreadLocalTargetSourceTests {
}
@Test
void reuseInSameThread() {
void testReuseInSameThread() {
SideEffectBean apartment = (SideEffectBean) beanFactory.getBean("apartment");
assertThat(apartment.getCount()).isEqualTo(INITIAL_COUNT);
apartment.doWork();
@@ -86,7 +86,7 @@ class ThreadLocalTargetSourceTests {
* Relies on introduction.
*/
@Test
void canGetStatsViaMixin() {
void testCanGetStatsViaMixin() {
ThreadLocalTargetSourceStats stats = (ThreadLocalTargetSourceStats) beanFactory.getBean("apartment");
// +1 because creating target for stats call counts
assertThat(stats.getInvocationCount()).isEqualTo(1);
@@ -104,7 +104,7 @@ class ThreadLocalTargetSourceTests {
}
@Test
void newThreadHasOwnInstance() throws InterruptedException {
void testNewThreadHasOwnInstance() throws InterruptedException {
SideEffectBean apartment = (SideEffectBean) beanFactory.getBean("apartment");
assertThat(apartment.getCount()).isEqualTo(INITIAL_COUNT);
apartment.doWork();
@@ -144,7 +144,7 @@ class ThreadLocalTargetSourceTests {
* Test for SPR-1442. Destroyed target should re-associated with thread and not throw NPE.
*/
@Test
void reuseDestroyedTarget() {
void testReuseDestroyedTarget() {
ThreadLocalTargetSource source = (ThreadLocalTargetSource)this.beanFactory.getBean("threadLocalTs");
// try first time
@@ -33,7 +33,7 @@ class RefreshableTargetSourceTests {
* Test what happens when checking for refresh but not refreshing object.
*/
@Test
void refreshCheckWithNonRefresh() throws Exception {
void testRefreshCheckWithNonRefresh() throws Exception {
CountingRefreshableTargetSource ts = new CountingRefreshableTargetSource();
ts.setRefreshCheckDelay(0);
@@ -49,7 +49,7 @@ class RefreshableTargetSourceTests {
* Test what happens when checking for refresh and refresh occurs.
*/
@Test
void refreshCheckWithRefresh() throws Exception {
void testRefreshCheckWithRefresh() throws Exception {
CountingRefreshableTargetSource ts = new CountingRefreshableTargetSource(true);
ts.setRefreshCheckDelay(0);
@@ -65,7 +65,7 @@ class RefreshableTargetSourceTests {
* Test what happens when no refresh occurs.
*/
@Test
void withNoRefreshCheck() {
void testWithNoRefreshCheck() {
CountingRefreshableTargetSource ts = new CountingRefreshableTargetSource(true);
ts.setRefreshCheckDelay(-1);
@@ -78,7 +78,7 @@ class RefreshableTargetSourceTests {
@Test
@EnabledForTestGroups(LONG_RUNNING)
void refreshOverTime() throws Exception {
public void testRefreshOverTime() throws Exception {
CountingRefreshableTargetSource ts = new CountingRefreshableTargetSource(true);
ts.setRefreshCheckDelay(100);
@@ -95,7 +95,7 @@ class RefreshableTargetSourceTests {
Object d = ts.getTarget();
assertThat(d).as("D should not be null").isNotNull();
assertThat(a).as("A and D should not be equal").isNotEqualTo(d);
assertThat(a.equals(d)).as("A and D should not be equal").isFalse();
Object e = ts.getTarget();
assertThat(e).as("D and E should be equal").isEqualTo(d);
@@ -103,7 +103,7 @@ class RefreshableTargetSourceTests {
Thread.sleep(110);
Object f = ts.getTarget();
assertThat(e).as("E and F should be different").isNotEqualTo(f);
assertThat(e.equals(f)).as("E and F should be different").isFalse();
}
@@ -49,7 +49,7 @@ import static org.assertj.core.api.Assertions.assertThatIOException;
* @author Phillip Webb
* @author Stephane Nicoll
*/
abstract class AbstractCacheAnnotationTests {
public abstract class AbstractCacheAnnotationTests {
protected ConfigurableApplicationContext ctx;
@@ -67,7 +67,7 @@ abstract class AbstractCacheAnnotationTests {
@BeforeEach
void setup() {
public void setup() {
this.ctx = getApplicationContext();
this.cs = ctx.getBean("service", CacheableService.class);
this.ccs = ctx.getBean("classService", CacheableService.class);
@@ -78,7 +78,7 @@ abstract class AbstractCacheAnnotationTests {
}
@AfterEach
void close() {
public void close() {
if (this.ctx != null) {
this.ctx.close();
}
@@ -555,134 +555,133 @@ abstract class AbstractCacheAnnotationTests {
assertThat(secondary.get(key2)).isNull();
}
@Test
void cacheable() {
void testCacheable() {
testCacheable(this.cs);
}
@Test
void cacheableNull() {
void testCacheableNull() {
testCacheableNull(this.cs);
}
@Test
void cacheableSync() {
void testCacheableSync() {
testCacheableSync(this.cs);
}
@Test
void cacheableSyncNull() {
void testCacheableSyncNull() {
testCacheableSyncNull(this.cs);
}
@Test
void evict() {
void testEvict() {
testEvict(this.cs, true);
}
@Test
void evictEarly() {
void testEvictEarly() {
testEvictEarly(this.cs);
}
@Test
void evictWithException() {
void testEvictWithException() {
testEvictException(this.cs);
}
@Test
void evictAll() {
void testEvictAll() {
testEvictAll(this.cs, true);
}
@Test
void evictAllEarly() {
void testEvictAllEarly() {
testEvictAllEarly(this.cs);
}
@Test
void evictWithKey() {
void testEvictWithKey() {
testEvictWithKey(this.cs);
}
@Test
void evictWithKeyEarly() {
void testEvictWithKeyEarly() {
testEvictWithKeyEarly(this.cs);
}
@Test
void conditionalExpression() {
void testConditionalExpression() {
testConditionalExpression(this.cs);
}
@Test
void conditionalExpressionSync() {
void testConditionalExpressionSync() {
testConditionalExpressionSync(this.cs);
}
@Test
void unlessExpression() {
void testUnlessExpression() {
testUnlessExpression(this.cs);
}
@Test
void classCacheUnlessExpression() {
void testClassCacheUnlessExpression() {
testUnlessExpression(this.cs);
}
@Test
void keyExpression() {
void testKeyExpression() {
testKeyExpression(this.cs);
}
@Test
void varArgsKey() {
void testVarArgsKey() {
testVarArgsKey(this.cs);
}
@Test
void classCacheCacheable() {
void testClassCacheCacheable() {
testCacheable(this.ccs);
}
@Test
void classCacheEvict() {
void testClassCacheEvict() {
testEvict(this.ccs, true);
}
@Test
void classEvictEarly() {
void testClassEvictEarly() {
testEvictEarly(this.ccs);
}
@Test
void classEvictAll() {
void testClassEvictAll() {
testEvictAll(this.ccs, true);
}
@Test
void classEvictWithException() {
void testClassEvictWithException() {
testEvictException(this.ccs);
}
@Test
void classCacheEvictWithWKey() {
void testClassCacheEvictWithWKey() {
testEvictWithKey(this.ccs);
}
@Test
void classEvictWithKeyEarly() {
void testClassEvictWithKeyEarly() {
testEvictWithKeyEarly(this.ccs);
}
@Test
void nullValue() {
void testNullValue() {
testNullValue(this.cs);
}
@Test
void classNullValue() {
void testClassNullValue() {
Object key = new Object();
assertThat(this.ccs.nullValue(key)).isNull();
int nr = this.ccs.nullInvocations().intValue();
@@ -695,27 +694,27 @@ abstract class AbstractCacheAnnotationTests {
}
@Test
void methodName() {
void testMethodName() {
testMethodName(this.cs, "name");
}
@Test
void classMethodName() {
void testClassMethodName() {
testMethodName(this.ccs, "nametestCache");
}
@Test
void rootVars() {
void testRootVars() {
testRootVars(this.cs);
}
@Test
void classRootVars() {
void testClassRootVars() {
testRootVars(this.ccs);
}
@Test
void customKeyGenerator() {
void testCustomKeyGenerator() {
Object param = new Object();
Object r1 = this.cs.customKeyGenerator(param);
assertThat(this.cs.customKeyGenerator(param)).isSameAs(r1);
@@ -726,14 +725,14 @@ abstract class AbstractCacheAnnotationTests {
}
@Test
void unknownCustomKeyGenerator() {
void testUnknownCustomKeyGenerator() {
Object param = new Object();
assertThatExceptionOfType(NoSuchBeanDefinitionException.class).isThrownBy(() ->
this.cs.unknownCustomKeyGenerator(param));
}
@Test
void customCacheManager() {
void testCustomCacheManager() {
CacheManager customCm = this.ctx.getBean("customCacheManager", CacheManager.class);
Object key = new Object();
Object r1 = this.cs.customCacheManager(key);
@@ -744,139 +743,139 @@ abstract class AbstractCacheAnnotationTests {
}
@Test
void unknownCustomCacheManager() {
void testUnknownCustomCacheManager() {
Object param = new Object();
assertThatExceptionOfType(NoSuchBeanDefinitionException.class).isThrownBy(() ->
this.cs.unknownCustomCacheManager(param));
}
@Test
void nullArg() {
void testNullArg() {
testNullArg(this.cs);
}
@Test
void classNullArg() {
void testClassNullArg() {
testNullArg(this.ccs);
}
@Test
void checkedException() {
void testCheckedException() {
testCheckedThrowable(this.cs);
}
@Test
void classCheckedException() {
void testClassCheckedException() {
testCheckedThrowable(this.ccs);
}
@Test
void checkedExceptionSync() {
void testCheckedExceptionSync() {
testCheckedThrowableSync(this.cs);
}
@Test
void classCheckedExceptionSync() {
void testClassCheckedExceptionSync() {
testCheckedThrowableSync(this.ccs);
}
@Test
void uncheckedException() {
void testUncheckedException() {
testUncheckedThrowable(this.cs);
}
@Test
void classUncheckedException() {
void testClassUncheckedException() {
testUncheckedThrowable(this.ccs);
}
@Test
void uncheckedExceptionSync() {
void testUncheckedExceptionSync() {
testUncheckedThrowableSync(this.cs);
}
@Test
void classUncheckedExceptionSync() {
void testClassUncheckedExceptionSync() {
testUncheckedThrowableSync(this.ccs);
}
@Test
void update() {
void testUpdate() {
testCacheUpdate(this.cs);
}
@Test
void classUpdate() {
void testClassUpdate() {
testCacheUpdate(this.ccs);
}
@Test
void conditionalUpdate() {
void testConditionalUpdate() {
testConditionalCacheUpdate(this.cs);
}
@Test
void classConditionalUpdate() {
void testClassConditionalUpdate() {
testConditionalCacheUpdate(this.ccs);
}
@Test
void multiCache() {
void testMultiCache() {
testMultiCache(this.cs);
}
@Test
void classMultiCache() {
void testClassMultiCache() {
testMultiCache(this.ccs);
}
@Test
void multiEvict() {
void testMultiEvict() {
testMultiEvict(this.cs);
}
@Test
void classMultiEvict() {
void testClassMultiEvict() {
testMultiEvict(this.ccs);
}
@Test
void multiPut() {
void testMultiPut() {
testMultiPut(this.cs);
}
@Test
void classMultiPut() {
void testClassMultiPut() {
testMultiPut(this.ccs);
}
@Test
void putRefersToResult() {
void testPutRefersToResult() {
testPutRefersToResult(this.cs);
}
@Test
void classPutRefersToResult() {
void testClassPutRefersToResult() {
testPutRefersToResult(this.ccs);
}
@Test
void multiCacheAndEvict() {
void testMultiCacheAndEvict() {
testMultiCacheAndEvict(this.cs);
}
@Test
void classMultiCacheAndEvict() {
void testClassMultiCacheAndEvict() {
testMultiCacheAndEvict(this.ccs);
}
@Test
void multiConditionalCacheAndEvict() {
void testMultiConditionalCacheAndEvict() {
testMultiConditionalCacheAndEvict(this.cs);
}
@Test
void classMultiConditionalCacheAndEvict() {
void testClassMultiConditionalCacheAndEvict() {
testMultiConditionalCacheAndEvict(this.ccs);
}
@@ -37,7 +37,7 @@ class AspectJCacheAnnotationTests extends AbstractCacheAnnotationTests {
}
@Test
void keyStrategy() {
void testKeyStrategy() {
AnnotationCacheAspect aspect = ctx.getBean(
"org.springframework.cache.config.internalCacheAspect", AnnotationCacheAspect.class);
assertThat(aspect.getKeyGenerator()).isSameAs(ctx.getBean("keyGenerator"));
@@ -16,7 +16,7 @@
package org.springframework.cache.aspectj;
import org.junit.jupiter.api.AutoClose;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -51,7 +51,6 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
class AspectJEnableCachingIsolatedTests {
@AutoClose
private ConfigurableApplicationContext ctx;
@@ -59,16 +58,23 @@ class AspectJEnableCachingIsolatedTests {
this.ctx = new AnnotationConfigApplicationContext(config);
}
@AfterEach
public void closeContext() {
if (this.ctx != null) {
this.ctx.close();
}
}
@Test
void keyStrategy() {
void testKeyStrategy() {
load(EnableCachingConfig.class);
AnnotationCacheAspect aspect = this.ctx.getBean(AnnotationCacheAspect.class);
assertThat(aspect.getKeyGenerator()).isSameAs(this.ctx.getBean("keyGenerator", KeyGenerator.class));
}
@Test
void cacheErrorHandler() {
void testCacheErrorHandler() {
load(EnableCachingConfig.class);
AnnotationCacheAspect aspect = this.ctx.getBean(AnnotationCacheAspect.class);
assertThat(aspect.getErrorHandler()).isSameAs(this.ctx.getBean("errorHandler", CacheErrorHandler.class));
@@ -122,7 +128,7 @@ class AspectJEnableCachingIsolatedTests {
@Test
@Disabled("AspectJ has some sort of caching that makes this one fail")
void emptyConfigSupport() {
public void emptyConfigSupport() {
load(EmptyConfigSupportConfig.class);
AnnotationCacheAspect aspect = this.ctx.getBean(AnnotationCacheAspect.class);
assertThat(aspect.getCacheResolver()).isNotNull();
@@ -277,5 +283,4 @@ class AspectJEnableCachingIsolatedTests {
return new NamedCacheResolver(cacheManager(), "foo");
}
}
}
@@ -47,7 +47,7 @@ import static org.springframework.core.testfixture.TestGroup.LONG_RUNNING;
* @author Stephane Nicoll
*/
@EnabledForTestGroups(LONG_RUNNING)
class AnnotationAsyncExecutionAspectTests {
public class AnnotationAsyncExecutionAspectTests {
private static final long WAIT_TIME = 1000; //milliseconds
@@ -57,7 +57,7 @@ class AnnotationAsyncExecutionAspectTests {
@BeforeEach
void setUp() {
public void setUp() {
executor = new CountingExecutor();
AnnotationAsyncExecutionAspect.aspectOf().setExecutor(executor);
}
@@ -37,13 +37,13 @@ class AnnotationDrivenBeanDefinitionParserTests {
private ConfigurableApplicationContext context;
@BeforeEach
void setup() {
public void setup() {
this.context = new ClassPathXmlApplicationContext(
"annotationDrivenContext.xml", AnnotationDrivenBeanDefinitionParserTests.class);
}
@AfterEach
void after() {
public void after() {
if (this.context != null) {
this.context.close();
}
@@ -56,7 +56,7 @@ class AnnotationDrivenBeanDefinitionParserTests {
@Test
@SuppressWarnings("rawtypes")
void asyncPostProcessorExecutorReference() {
public void asyncPostProcessorExecutorReference() {
Object executor = context.getBean("testExecutor");
Object aspect = context.getBean(TaskManagementConfigUtils.ASYNC_EXECUTION_ASPECT_BEAN_NAME);
assertThat(((Supplier) new DirectFieldAccessor(aspect).getPropertyValue("defaultExecutor")).get()).isSameAs(executor);
@@ -64,7 +64,7 @@ class AnnotationDrivenBeanDefinitionParserTests {
@Test
@SuppressWarnings("rawtypes")
void asyncPostProcessorExceptionHandlerReference() {
public void asyncPostProcessorExceptionHandlerReference() {
Object exceptionHandler = context.getBean("testExceptionHandler");
Object aspect = context.getBean(TaskManagementConfigUtils.ASYNC_EXECUTION_ASPECT_BEAN_NAME);
assertThat(((Supplier) new DirectFieldAccessor(aspect).getPropertyValue("exceptionHandler")).get()).isSameAs(exceptionHandler);
@@ -36,13 +36,13 @@ import static org.assertj.core.api.Assertions.assertThatIOException;
* @author Stephane Nicoll
*/
@SpringJUnitConfig(JtaTransactionAspectsTests.Config.class)
class JtaTransactionAspectsTests {
public class JtaTransactionAspectsTests {
@Autowired
private CallCountingTransactionManager txManager;
@BeforeEach
void setUp() {
public void setUp() {
this.txManager.clear();
}
@@ -50,13 +50,13 @@ class TransactionAspectTests {
@BeforeEach
void initContext() {
public void initContext() {
AnnotationTransactionAspect.aspectOf().setTransactionManager(txManager);
}
@Test
void commitOnAnnotatedClass() throws Throwable {
void testCommitOnAnnotatedClass() throws Throwable {
txManager.clear();
assertThat(txManager.begun).isEqualTo(0);
annotationOnlyOnClassWithNoInterface.echo(null);
@@ -213,7 +213,7 @@ public class XmlBeanDefinitionReader extends AbstractBeanDefinitionReader {
/**
* Specify which {@link org.springframework.beans.factory.parsing.ProblemReporter} to use.
* <p>The default implementation is {@link org.springframework.beans.factory.parsing.FailFastProblemReporter}
* which exhibits fail fast behavior. External tools can provide an alternative implementation
* which exhibits fail fast behaviour. External tools can provide an alternative implementation
* that collates errors and warnings for display in the tool UI.
*/
public void setProblemReporter(@Nullable ProblemReporter problemReporter) {
@@ -375,7 +375,7 @@ abstract class AbstractPropertyAccessorTests {
}
@Test
void errorMessageOfNestedProperty() {
void testErrorMessageOfNestedProperty() {
ITestBean target = new TestBean();
ITestBean child = new DifferentTestBean();
child.setName("test");
@@ -599,11 +599,11 @@ abstract class AbstractPropertyAccessorTests {
AbstractPropertyAccessor accessor = createAccessor(target);
accessor.setPropertyValue("bool2", "true");
assertThat(accessor.getPropertyValue("bool2")).as("Correct bool2 value").isEqualTo(Boolean.TRUE);
assertThat(Boolean.TRUE.equals(accessor.getPropertyValue("bool2"))).as("Correct bool2 value").isTrue();
assertThat(target.getBool2()).as("Correct bool2 value").isTrue();
accessor.setPropertyValue("bool2", "false");
assertThat(accessor.getPropertyValue("bool2")).as("Correct bool2 value").isEqualTo(Boolean.FALSE);
assertThat(Boolean.FALSE.equals(accessor.getPropertyValue("bool2"))).as("Correct bool2 value").isTrue();
assertThat(target.getBool2()).as("Correct bool2 value").isFalse();
}
@@ -628,7 +628,7 @@ abstract class AbstractPropertyAccessorTests {
assertThat(new BigInteger("3")).as("Correct bigInteger value").isEqualTo(target.getBigInteger());
assertThat(Float.valueOf("8.1")).as("Correct float2 value").isEqualTo(accessor.getPropertyValue("float2"));
assertThat(Float.valueOf("8.1")).as("Correct float2 value").isEqualTo(target.getFloat2());
assertThat(Double.valueOf("6.1")).as("Correct double2 value").isEqualTo(accessor.getPropertyValue("double2"));
assertThat(Double.valueOf("6.1").equals(accessor.getPropertyValue("double2"))).as("Correct double2 value").isTrue();
assertThat(Double.valueOf("6.1")).as("Correct double2 value").isEqualTo(target.getDouble2());
assertThat(new BigDecimal("4.0")).as("Correct bigDecimal value").isEqualTo(accessor.getPropertyValue("bigDecimal"));
assertThat(new BigDecimal("4.0")).as("Correct bigDecimal value").isEqualTo(target.getBigDecimal());
@@ -651,7 +651,7 @@ abstract class AbstractPropertyAccessorTests {
assertThat(Integer.valueOf("8")).as("Correct int2 value").isEqualTo(target.getInt2());
assertThat(Long.valueOf("6")).as("Correct long2 value").isEqualTo(accessor.getPropertyValue("long2"));
assertThat(Long.valueOf("6")).as("Correct long2 value").isEqualTo(target.getLong2());
assertThat(new BigInteger("3")).as("Correct bigInteger value").isEqualTo(accessor.getPropertyValue("bigInteger"));
assertThat(new BigInteger("3").equals(accessor.getPropertyValue("bigInteger"))).as("Correct bigInteger value").isTrue();
assertThat(new BigInteger("3")).as("Correct bigInteger value").isEqualTo(target.getBigInteger());
assertThat(Float.valueOf("8.1")).as("Correct float2 value").isEqualTo(accessor.getPropertyValue("float2"));
assertThat(Float.valueOf("8.1")).as("Correct float2 value").isEqualTo(target.getFloat2());
@@ -1495,15 +1495,15 @@ abstract class AbstractPropertyAccessorTests {
accessor.setPropertyValues(pvs);
assertThat(target.getArray()[0]).isEqualTo(tb5);
assertThat(target.getArray()[1]).isEqualTo(tb4);
assertThat(target.getList().get(0)).isEqualTo(tb3);
assertThat(target.getList().get(1)).isEqualTo(tb2);
assertThat(target.getList().get(2)).isEqualTo(tb0);
assertThat(target.getList().get(3)).isNull();
assertThat(target.getList().get(4)).isEqualTo(tb1);
assertThat(target.getMap().get("key1")).isEqualTo(tb1);
assertThat(target.getMap().get("key2")).isEqualTo(tb0);
assertThat(target.getMap().get("key5")).isEqualTo(tb4);
assertThat(target.getMap().get("key9")).isEqualTo(tb5);
assertThat((target.getList().get(0))).isEqualTo(tb3);
assertThat((target.getList().get(1))).isEqualTo(tb2);
assertThat((target.getList().get(2))).isEqualTo(tb0);
assertThat((target.getList().get(3))).isNull();
assertThat((target.getList().get(4))).isEqualTo(tb1);
assertThat((target.getMap().get("key1"))).isEqualTo(tb1);
assertThat((target.getMap().get("key2"))).isEqualTo(tb0);
assertThat((target.getMap().get("key5"))).isEqualTo(tb4);
assertThat((target.getMap().get("key9"))).isEqualTo(tb5);
assertThat(accessor.getPropertyValue("array[0]")).isEqualTo(tb5);
assertThat(accessor.getPropertyValue("array[1]")).isEqualTo(tb4);
assertThat(accessor.getPropertyValue("list[0]")).isEqualTo(tb3);
@@ -34,7 +34,7 @@ import static org.assertj.core.api.Assertions.assertThat;
class BeanWrapperEnumTests {
@Test
void customEnum() {
void testCustomEnum() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnum", "VALUE_1");
@@ -42,7 +42,7 @@ class BeanWrapperEnumTests {
}
@Test
void customEnumWithNull() {
void testCustomEnumWithNull() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnum", null);
@@ -50,7 +50,7 @@ class BeanWrapperEnumTests {
}
@Test
void customEnumWithEmptyString() {
void testCustomEnumWithEmptyString() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnum", "");
@@ -58,7 +58,7 @@ class BeanWrapperEnumTests {
}
@Test
void customEnumArrayWithSingleValue() {
void testCustomEnumArrayWithSingleValue() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnumArray", "VALUE_1");
@@ -67,7 +67,7 @@ class BeanWrapperEnumTests {
}
@Test
void customEnumArrayWithMultipleValues() {
void testCustomEnumArrayWithMultipleValues() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnumArray", new String[] {"VALUE_1", "VALUE_2"});
@@ -77,7 +77,7 @@ class BeanWrapperEnumTests {
}
@Test
void customEnumArrayWithMultipleValuesAsCsv() {
void testCustomEnumArrayWithMultipleValuesAsCsv() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnumArray", "VALUE_1,VALUE_2");
@@ -87,7 +87,7 @@ class BeanWrapperEnumTests {
}
@Test
void customEnumSetWithSingleValue() {
void testCustomEnumSetWithSingleValue() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnumSet", "VALUE_1");
@@ -96,7 +96,7 @@ class BeanWrapperEnumTests {
}
@Test
void customEnumSetWithMultipleValues() {
void testCustomEnumSetWithMultipleValues() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnumSet", new String[] {"VALUE_1", "VALUE_2"});
@@ -106,7 +106,7 @@ class BeanWrapperEnumTests {
}
@Test
void customEnumSetWithMultipleValuesAsCsv() {
void testCustomEnumSetWithMultipleValuesAsCsv() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnumSet", "VALUE_1,VALUE_2");
@@ -116,7 +116,7 @@ class BeanWrapperEnumTests {
}
@Test
void customEnumSetWithGetterSetterMismatch() {
void testCustomEnumSetWithGetterSetterMismatch() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("customEnumSetMismatch", new String[] {"VALUE_1", "VALUE_2"});
@@ -126,7 +126,7 @@ class BeanWrapperEnumTests {
}
@Test
void standardEnumSetWithMultipleValues() {
void testStandardEnumSetWithMultipleValues() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setConversionService(new DefaultConversionService());
@@ -138,7 +138,7 @@ class BeanWrapperEnumTests {
}
@Test
void standardEnumSetWithAutoGrowing() {
void testStandardEnumSetWithAutoGrowing() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setAutoGrowNestedPaths(true);
@@ -148,7 +148,7 @@ class BeanWrapperEnumTests {
}
@Test
void standardEnumMapWithMultipleValues() {
void testStandardEnumMapWithMultipleValues() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setConversionService(new DefaultConversionService());
@@ -163,7 +163,7 @@ class BeanWrapperEnumTests {
}
@Test
void standardEnumMapWithAutoGrowing() {
void testStandardEnumMapWithAutoGrowing() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setAutoGrowNestedPaths(true);
@@ -174,7 +174,7 @@ class BeanWrapperEnumTests {
}
@Test
void nonPublicEnum() {
void testNonPublicEnum() {
NonPublicEnumHolder holder = new NonPublicEnumHolder();
BeanWrapper bw = new BeanWrapperImpl(holder);
bw.setPropertyValue("nonPublicEnum", "VALUE_1");
@@ -52,7 +52,7 @@ import static org.assertj.core.api.InstanceOfAssertFactories.LIST;
class BeanWrapperGenericsTests {
@Test
void genericSet() {
void testGenericSet() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
Set<String> input = new HashSet<>();
@@ -64,7 +64,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericLowerBoundedSet() {
void testGenericLowerBoundedSet() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.registerCustomEditor(Number.class, new CustomNumberEditor(Integer.class, true));
@@ -77,7 +77,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericSetWithConversionFailure() {
void testGenericSetWithConversionFailure() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
Set<TestBean> input = new HashSet<>();
@@ -88,7 +88,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericList() throws Exception {
void testGenericList() throws Exception {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
List<String> input = new ArrayList<>();
@@ -100,7 +100,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericListElement() throws Exception {
void testGenericListElement() throws Exception {
GenericBean<?> gb = new GenericBean<>();
gb.setResourceList(new ArrayList<>());
BeanWrapper bw = new BeanWrapperImpl(gb);
@@ -109,7 +109,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMap() {
void testGenericMap() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
Map<String, String> input = new HashMap<>();
@@ -121,7 +121,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapElement() {
void testGenericMapElement() {
GenericBean<?> gb = new GenericBean<>();
gb.setShortMap(new HashMap<>());
BeanWrapper bw = new BeanWrapperImpl(gb);
@@ -131,7 +131,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapWithKeyType() {
void testGenericMapWithKeyType() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
Map<String, String> input = new HashMap<>();
@@ -143,7 +143,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapElementWithKeyType() {
void testGenericMapElementWithKeyType() {
GenericBean<?> gb = new GenericBean<>();
gb.setLongMap(new HashMap<>());
BeanWrapper bw = new BeanWrapperImpl(gb);
@@ -153,7 +153,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapWithCollectionValue() {
void testGenericMapWithCollectionValue() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.registerCustomEditor(Number.class, new CustomNumberEditor(Integer.class, false));
@@ -170,7 +170,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapElementWithCollectionValue() {
void testGenericMapElementWithCollectionValue() {
GenericBean<?> gb = new GenericBean<>();
gb.setCollectionMap(new HashMap<>());
BeanWrapper bw = new BeanWrapperImpl(gb);
@@ -182,7 +182,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapFromProperties() {
void testGenericMapFromProperties() {
GenericBean<?> gb = new GenericBean<>();
BeanWrapper bw = new BeanWrapperImpl(gb);
Properties input = new Properties();
@@ -194,7 +194,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericListOfLists() {
void testGenericListOfLists() {
GenericBean<String> gb = new GenericBean<>();
List<List<Integer>> list = new ArrayList<>();
list.add(new ArrayList<>());
@@ -206,7 +206,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericListOfListsWithElementConversion() {
void testGenericListOfListsWithElementConversion() {
GenericBean<String> gb = new GenericBean<>();
List<List<Integer>> list = new ArrayList<>();
list.add(new ArrayList<>());
@@ -218,7 +218,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericListOfArrays() {
void testGenericListOfArrays() {
GenericBean<String> gb = new GenericBean<>();
ArrayList<String[]> list = new ArrayList<>();
list.add(new String[] {"str1", "str2"});
@@ -230,7 +230,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericListOfArraysWithElementConversion() {
void testGenericListOfArraysWithElementConversion() {
GenericBean<String> gb = new GenericBean<>();
ArrayList<String[]> list = new ArrayList<>();
list.add(new String[] {"str1", "str2"});
@@ -243,7 +243,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericListOfMaps() {
void testGenericListOfMaps() {
GenericBean<String> gb = new GenericBean<>();
List<Map<Integer, Long>> list = new ArrayList<>();
list.add(new HashMap<>());
@@ -255,7 +255,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericListOfMapsWithElementConversion() {
void testGenericListOfMapsWithElementConversion() {
GenericBean<String> gb = new GenericBean<>();
List<Map<Integer, Long>> list = new ArrayList<>();
list.add(new HashMap<>());
@@ -267,7 +267,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapOfMaps() {
void testGenericMapOfMaps() {
GenericBean<String> gb = new GenericBean<>();
Map<String, Map<Integer, Long>> map = new HashMap<>();
map.put("mykey", new HashMap<>());
@@ -279,7 +279,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapOfMapsWithElementConversion() {
void testGenericMapOfMapsWithElementConversion() {
GenericBean<String> gb = new GenericBean<>();
Map<String, Map<Integer, Long>> map = new HashMap<>();
map.put("mykey", new HashMap<>());
@@ -291,7 +291,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapOfLists() {
void testGenericMapOfLists() {
GenericBean<String> gb = new GenericBean<>();
Map<Integer, List<Integer>> map = new HashMap<>();
map.put(1, new ArrayList<>());
@@ -303,7 +303,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericMapOfListsWithElementConversion() {
void testGenericMapOfListsWithElementConversion() {
GenericBean<String> gb = new GenericBean<>();
Map<Integer, List<Integer>> map = new HashMap<>();
map.put(1, new ArrayList<>());
@@ -315,7 +315,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericTypeNestingMapOfInteger() {
void testGenericTypeNestingMapOfInteger() {
Map<String, String> map = new HashMap<>();
map.put("testKey", "100");
@@ -328,7 +328,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericTypeNestingMapOfListOfInteger() {
void testGenericTypeNestingMapOfListOfInteger() {
Map<String, List<String>> map = new HashMap<>();
List<String> list = Arrays.asList("1", "2", "3");
map.put("testKey", list);
@@ -343,7 +343,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericTypeNestingListOfMapOfInteger() {
void testGenericTypeNestingListOfMapOfInteger() {
List<Map<String, String>> list = new ArrayList<>();
Map<String, String> map = new HashMap<>();
map.put("testKey", "5");
@@ -359,7 +359,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericTypeNestingMapOfListOfListOfInteger() {
void testGenericTypeNestingMapOfListOfListOfInteger() {
Map<String, List<List<String>>> map = new HashMap<>();
List<String> list = Arrays.asList("1", "2", "3");
map.put("testKey", Collections.singletonList(list));
@@ -374,7 +374,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexGenericMap() {
void testComplexGenericMap() {
Map<List<String>, List<String>> inputMap = new HashMap<>();
List<String> inputKey = new ArrayList<>();
inputKey.add("1");
@@ -390,7 +390,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexGenericMapWithCollectionConversion() {
void testComplexGenericMapWithCollectionConversion() {
Map<Set<String>, Set<String>> inputMap = new HashMap<>();
Set<String> inputKey = new HashSet<>();
inputKey.add("1");
@@ -406,7 +406,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexGenericIndexedMapEntry() {
void testComplexGenericIndexedMapEntry() {
List<String> inputValue = new ArrayList<>();
inputValue.add("10");
@@ -418,7 +418,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexGenericIndexedMapEntryWithCollectionConversion() {
void testComplexGenericIndexedMapEntryWithCollectionConversion() {
Set<String> inputValue = new HashSet<>();
inputValue.add("10");
@@ -430,7 +430,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexGenericIndexedMapEntryWithPlainValue() {
void testComplexGenericIndexedMapEntryWithPlainValue() {
String inputValue = "10";
ComplexMapHolder holder = new ComplexMapHolder();
@@ -441,7 +441,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexDerivedIndexedMapEntry() {
void testComplexDerivedIndexedMapEntry() {
List<String> inputValue = new ArrayList<>();
inputValue.add("10");
@@ -453,7 +453,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexDerivedIndexedMapEntryWithCollectionConversion() {
void testComplexDerivedIndexedMapEntryWithCollectionConversion() {
Set<String> inputValue = new HashSet<>();
inputValue.add("10");
@@ -465,7 +465,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexDerivedIndexedMapEntryWithPlainValue() {
void testComplexDerivedIndexedMapEntryWithPlainValue() {
String inputValue = "10";
ComplexMapHolder holder = new ComplexMapHolder();
@@ -476,7 +476,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexMultiValueMapEntry() {
void testComplexMultiValueMapEntry() {
List<String> inputValue = new ArrayList<>();
inputValue.add("10");
@@ -488,7 +488,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexMultiValueMapEntryWithCollectionConversion() {
void testComplexMultiValueMapEntryWithCollectionConversion() {
Set<String> inputValue = new HashSet<>();
inputValue.add("10");
@@ -500,7 +500,7 @@ class BeanWrapperGenericsTests {
}
@Test
void complexMultiValueMapEntryWithPlainValue() {
void testComplexMultiValueMapEntryWithPlainValue() {
String inputValue = "10";
ComplexMapHolder holder = new ComplexMapHolder();
@@ -511,7 +511,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericallyTypedIntegerBean() {
void testGenericallyTypedIntegerBean() {
GenericIntegerBean gb = new GenericIntegerBean();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("genericProperty", "10");
@@ -521,7 +521,7 @@ class BeanWrapperGenericsTests {
}
@Test
void genericallyTypedSetOfIntegerBean() {
void testGenericallyTypedSetOfIntegerBean() {
GenericSetOfIntegerBean gb = new GenericSetOfIntegerBean();
BeanWrapper bw = new BeanWrapperImpl(gb);
bw.setPropertyValue("genericProperty", "10");
@@ -532,7 +532,7 @@ class BeanWrapperGenericsTests {
}
@Test
void settingGenericPropertyWithReadOnlyInterface() {
void testSettingGenericPropertyWithReadOnlyInterface() {
Bar bar = new Bar();
BeanWrapper bw = new BeanWrapperImpl(bar);
bw.setPropertyValue("version", "10");
@@ -540,7 +540,7 @@ class BeanWrapperGenericsTests {
}
@Test
void settingLongPropertyWithGenericInterface() {
void testSettingLongPropertyWithGenericInterface() {
Promotion bean = new Promotion();
BeanWrapper bw = new BeanWrapperImpl(bean);
bw.setPropertyValue("id", "10");
@@ -548,7 +548,7 @@ class BeanWrapperGenericsTests {
}
@Test
void untypedPropertyWithMapAtRuntime() {
void testUntypedPropertyWithMapAtRuntime() {
class Holder<D> {
private final D data;
public Holder(D data) {
@@ -264,7 +264,7 @@ class BeanWrapperTests extends AbstractPropertyAccessorTests {
accessor.setPropertyValue("object", tb);
assertThat(target.value).isSameAs(tb);
assertThat(target.getObject()).containsSame(tb);
assertThat((Optional<TestBean>) accessor.getPropertyValue("object")).containsSame(tb);
assertThat(((Optional<TestBean>) accessor.getPropertyValue("object"))).containsSame(tb);
assertThat(target.value.getName()).isEqualTo("x");
assertThat(target.getObject().get().getName()).isEqualTo("x");
assertThat(accessor.getPropertyValue("object.name")).isEqualTo("x");
@@ -272,7 +272,7 @@ class BeanWrapperTests extends AbstractPropertyAccessorTests {
accessor.setPropertyValue("object.name", "y");
assertThat(target.value).isSameAs(tb);
assertThat(target.getObject()).containsSame(tb);
assertThat((Optional<TestBean>) accessor.getPropertyValue("object")).containsSame(tb);
assertThat(((Optional<TestBean>) accessor.getPropertyValue("object"))).containsSame(tb);
assertThat(target.value.getName()).isEqualTo("y");
assertThat(target.getObject().get().getName()).isEqualTo("y");
assertThat(accessor.getPropertyValue("object.name")).isEqualTo("y");
@@ -45,12 +45,12 @@ class ConcurrentBeanWrapperTests {
private Throwable ex = null;
@RepeatedTest(100)
void singleThread() {
void testSingleThread() {
performSet();
}
@Test
void concurrent() {
void testConcurrent() {
for (int i = 0; i < 10; i++) {
TestRun run = new TestRun(this);
set.add(run);
@@ -40,12 +40,12 @@ class MutablePropertyValuesTests {
pvs.addPropertyValue(new PropertyValue("forname", "Tony"));
pvs.addPropertyValue(new PropertyValue("surname", "Blair"));
pvs.addPropertyValue(new PropertyValue("age", "50"));
assertPropertyValuesForTony(pvs);
doTestTony(pvs);
MutablePropertyValues deepCopy = new MutablePropertyValues(pvs);
assertPropertyValuesForTony(deepCopy);
doTestTony(deepCopy);
deepCopy.setPropertyValueAt(new PropertyValue("name", "Gordon"), 0);
assertPropertyValuesForTony(pvs);
doTestTony(pvs);
assertThat(deepCopy.getPropertyValue("name").getValue()).isEqualTo("Gordon");
}
@@ -55,7 +55,7 @@ class MutablePropertyValuesTests {
pvs.addPropertyValue(new PropertyValue("forname", "Tony"));
pvs.addPropertyValue(new PropertyValue("surname", "Blair"));
pvs.addPropertyValue(new PropertyValue("age", "50"));
assertPropertyValuesForTony(pvs);
doTestTony(pvs);
PropertyValue addedPv = new PropertyValue("rod", "Rod");
pvs.addPropertyValue(addedPv);
assertThat(pvs.getPropertyValue("rod")).isEqualTo(addedPv);
@@ -149,7 +149,7 @@ class MutablePropertyValuesTests {
/**
* Must contain: forname=Tony surname=Blair age=50
*/
private static void assertPropertyValuesForTony(PropertyValues pvs) {
protected void doTestTony(PropertyValues pvs) {
PropertyValue[] propertyValues = pvs.getPropertyValues();
assertThat(propertyValues).hasSize(3);
@@ -81,7 +81,7 @@ class BeanFactoryUtilsTests {
@Test
void hierarchicalCountBeansWithNonHierarchicalFactory() {
void testHierarchicalCountBeansWithNonHierarchicalFactory() {
StaticListableBeanFactory lbf = new StaticListableBeanFactory();
lbf.addBean("t1", new TestBean());
lbf.addBean("t2", new TestBean());
@@ -92,7 +92,7 @@ class BeanFactoryUtilsTests {
* Check that override doesn't count as two separate beans.
*/
@Test
void hierarchicalCountBeansWithOverride() {
void testHierarchicalCountBeansWithOverride() {
// Leaf count
assertThat(this.listableBeanFactory.getBeanDefinitionCount()).isEqualTo(1);
// Count minus duplicate
@@ -101,14 +101,14 @@ class BeanFactoryUtilsTests {
}
@Test
void hierarchicalNamesWithNoMatch() {
void testHierarchicalNamesWithNoMatch() {
List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.listableBeanFactory, NoOp.class));
assertThat(names).isEmpty();
}
@Test
void hierarchicalNamesWithMatchOnlyInRoot() {
void testHierarchicalNamesWithMatchOnlyInRoot() {
List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.listableBeanFactory, IndexedTestBean.class));
assertThat(names).hasSize(1);
@@ -118,7 +118,7 @@ class BeanFactoryUtilsTests {
}
@Test
void getBeanNamesForTypeWithOverride() {
void testGetBeanNamesForTypeWithOverride() {
List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForTypeIncludingAncestors(this.listableBeanFactory, ITestBean.class));
// includes 2 TestBeans from FactoryBeans (DummyFactory definitions)
@@ -130,7 +130,7 @@ class BeanFactoryUtilsTests {
}
@Test
void noBeansOfType() {
void testNoBeansOfType() {
StaticListableBeanFactory lbf = new StaticListableBeanFactory();
lbf.addBean("foo", new Object());
Map<String, ?> beans = BeanFactoryUtils.beansOfTypeIncludingAncestors(lbf, ITestBean.class, true, false);
@@ -138,7 +138,7 @@ class BeanFactoryUtilsTests {
}
@Test
void findsBeansOfTypeWithStaticFactory() {
void testFindsBeansOfTypeWithStaticFactory() {
StaticListableBeanFactory lbf = new StaticListableBeanFactory();
TestBean t1 = new TestBean();
TestBean t2 = new TestBean();
@@ -169,7 +169,7 @@ class BeanFactoryUtilsTests {
}
@Test
void findsBeansOfTypeWithDefaultFactory() {
void testFindsBeansOfTypeWithDefaultFactory() {
Object test3 = this.listableBeanFactory.getBean("test3");
Object test = this.listableBeanFactory.getBean("test");
@@ -232,7 +232,7 @@ class BeanFactoryUtilsTests {
}
@Test
void hierarchicalResolutionWithOverride() {
void testHierarchicalResolutionWithOverride() {
Object test3 = this.listableBeanFactory.getBean("test3");
Object test = this.listableBeanFactory.getBean("test");
@@ -271,14 +271,14 @@ class BeanFactoryUtilsTests {
}
@Test
void hierarchicalNamesForAnnotationWithNoMatch() {
void testHierarchicalNamesForAnnotationWithNoMatch() {
List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForAnnotationIncludingAncestors(this.listableBeanFactory, Override.class));
assertThat(names).isEmpty();
}
@Test
void hierarchicalNamesForAnnotationWithMatchOnlyInRoot() {
void testHierarchicalNamesForAnnotationWithMatchOnlyInRoot() {
List<String> names = Arrays.asList(
BeanFactoryUtils.beanNamesForAnnotationIncludingAncestors(this.listableBeanFactory, TestAnnotation.class));
assertThat(names).hasSize(1);
@@ -288,7 +288,7 @@ class BeanFactoryUtilsTests {
}
@Test
void getBeanNamesForAnnotationWithOverride() {
void testGetBeanNamesForAnnotationWithOverride() {
AnnotatedBean annotatedBean = new AnnotatedBean();
this.listableBeanFactory.registerSingleton("anotherAnnotatedBean", annotatedBean);
List<String> names = Arrays.asList(
@@ -299,27 +299,27 @@ class BeanFactoryUtilsTests {
}
@Test
void aDependencies() {
void testADependencies() {
String[] deps = this.dependentBeansFactory.getDependentBeans("a");
assertThat(ObjectUtils.isEmpty(deps)).isTrue();
}
@Test
void bDependencies() {
void testBDependencies() {
String[] deps = this.dependentBeansFactory.getDependentBeans("b");
assertThat(deps).containsExactly("c");
assertThat(Arrays.equals(new String[] { "c" }, deps)).isTrue();
}
@Test
void cDependencies() {
void testCDependencies() {
String[] deps = this.dependentBeansFactory.getDependentBeans("c");
assertThat(deps).containsExactly("int", "long");
assertThat(Arrays.equals(new String[] { "int", "long" }, deps)).isTrue();
}
@Test
void intDependencies() {
void testIntDependencies() {
String[] deps = this.dependentBeansFactory.getDependentBeans("int");
assertThat(deps).containsExactly("buffer");
assertThat(Arrays.equals(new String[] { "buffer" }, deps)).isTrue();
}
@Test
@@ -330,7 +330,7 @@ class BeanFactoryUtilsTests {
}
@Test // gh-25520
void findAnnotationOnBeanWithStaticFactory() {
public void findAnnotationOnBeanWithStaticFactory() {
StaticListableBeanFactory lbf = new StaticListableBeanFactory();
lbf.addBean("controllerAdvice", new ControllerAdviceClass());
lbf.addBean("restControllerAdvice", new RestControllerAdviceClass());
@@ -30,7 +30,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
* @author Juergen Hoeller
* @since 6.2
*/
class CustomObjectProviderTests {
public class CustomObjectProviderTests {
@Test
void getObject() {
@@ -516,11 +516,11 @@ class DefaultListableBeanFactoryTests {
String[] names = lbf.getBeanDefinitionNames();
assertThat(names != lbf.getBeanDefinitionNames()).isTrue();
assertThat(names.length == 1).as("Array length == 1").isTrue();
assertThat(names[0]).as("0th element == test").isEqualTo("test");
assertThat(names[0].equals("test")).as("0th element == test").isTrue();
TestBean tb = (TestBean) lbf.getBean("test");
assertThat(tb != null).as("Test is non null").isTrue();
assertThat("Tony").as("Test bean name is Tony").isEqualTo(tb.getName());
assertThat("Tony".equals(tb.getName())).as("Test bean name is Tony").isTrue();
assertThat(tb.getAge() == 48).as("Test bean age is 48").isTrue();
}
@@ -48,7 +48,7 @@ class FactoryBeanTests {
@Test
void factoryBeanReturnsNull() {
void testFactoryBeanReturnsNull() {
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(factory).loadBeanDefinitions(RETURNS_NULL_CONTEXT);
@@ -56,7 +56,7 @@ class FactoryBeanTests {
}
@Test
void factoryBeansWithAutowiring() {
void testFactoryBeansWithAutowiring() {
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(factory).loadBeanDefinitions(WITH_AUTOWIRING_CONTEXT);
@@ -77,7 +77,7 @@ class FactoryBeanTests {
}
@Test
void factoryBeansWithIntermediateFactoryBeanAutowiringFailure() {
void testFactoryBeansWithIntermediateFactoryBeanAutowiringFailure() {
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(factory).loadBeanDefinitions(WITH_AUTOWIRING_CONTEXT);
@@ -92,21 +92,21 @@ class FactoryBeanTests {
}
@Test
void abstractFactoryBeanViaAnnotation() {
void testAbstractFactoryBeanViaAnnotation() {
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(factory).loadBeanDefinitions(ABSTRACT_CONTEXT);
factory.getBeansWithAnnotation(Component.class);
}
@Test
void abstractFactoryBeanViaType() {
void testAbstractFactoryBeanViaType() {
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(factory).loadBeanDefinitions(ABSTRACT_CONTEXT);
factory.getBeansOfType(AbstractFactoryBean.class);
}
@Test
void circularReferenceWithPostProcessor() {
void testCircularReferenceWithPostProcessor() {
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(factory).loadBeanDefinitions(CIRCULAR_CONTEXT);
@@ -30,27 +30,27 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
class AnnotationBeanWiringInfoResolverTests {
@Test
void resolveWiringInfo() {
void testResolveWiringInfo() {
assertThatIllegalArgumentException().isThrownBy(() ->
new AnnotationBeanWiringInfoResolver().resolveWiringInfo(null));
}
@Test
void resolveWiringInfoWithAnInstanceOfANonAnnotatedClass() {
void testResolveWiringInfoWithAnInstanceOfANonAnnotatedClass() {
AnnotationBeanWiringInfoResolver resolver = new AnnotationBeanWiringInfoResolver();
BeanWiringInfo info = resolver.resolveWiringInfo("java.lang.String is not @Configurable");
assertThat(info).as("Must be returning null for a non-@Configurable class instance").isNull();
}
@Test
void resolveWiringInfoWithAnInstanceOfAnAnnotatedClass() {
void testResolveWiringInfoWithAnInstanceOfAnAnnotatedClass() {
AnnotationBeanWiringInfoResolver resolver = new AnnotationBeanWiringInfoResolver();
BeanWiringInfo info = resolver.resolveWiringInfo(new Soap());
assertThat(info).as("Must *not* be returning null for a non-@Configurable class instance").isNotNull();
}
@Test
void resolveWiringInfoWithAnInstanceOfAnAnnotatedClassWithAutowiringTurnedOffExplicitly() {
void testResolveWiringInfoWithAnInstanceOfAnAnnotatedClassWithAutowiringTurnedOffExplicitly() {
AnnotationBeanWiringInfoResolver resolver = new AnnotationBeanWiringInfoResolver();
BeanWiringInfo info = resolver.resolveWiringInfo(new WirelessSoap());
assertThat(info).as("Must *not* be returning null for an @Configurable class instance even when autowiring is NO").isNotNull();
@@ -59,7 +59,7 @@ class AnnotationBeanWiringInfoResolverTests {
}
@Test
void resolveWiringInfoWithAnInstanceOfAnAnnotatedClassWithAutowiringTurnedOffExplicitlyAndCustomBeanName() {
void testResolveWiringInfoWithAnInstanceOfAnAnnotatedClassWithAutowiringTurnedOffExplicitlyAndCustomBeanName() {
AnnotationBeanWiringInfoResolver resolver = new AnnotationBeanWiringInfoResolver();
BeanWiringInfo info = resolver.resolveWiringInfo(new NamedWirelessSoap());
assertThat(info).as("Must *not* be returning null for an @Configurable class instance even when autowiring is NO").isNotNull();
@@ -37,7 +37,7 @@ import static org.springframework.core.testfixture.io.ResourceTestUtils.qualifie
class CustomAutowireConfigurerTests {
@Test
void customResolver() {
void testCustomResolver() {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
qualifiedResource(CustomAutowireConfigurerTests.class, "context.xml"));
@@ -80,7 +80,7 @@ class InjectAnnotationBeanPostProcessorTests {
@Test
void incompleteBeanDefinition() {
void testIncompleteBeanDefinition() {
bf.registerBeanDefinition("testBean", new GenericBeanDefinition());
try {
bf.getBean("testBean");
@@ -91,7 +91,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void resourceInjection() {
void testResourceInjection() {
RootBeanDefinition bd = new RootBeanDefinition(ResourceInjectionBean.class);
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd);
@@ -108,7 +108,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void extendedResourceInjection() {
void testExtendedResourceInjection() {
RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd);
@@ -135,7 +135,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void extendedResourceInjectionWithOverriding() {
void testExtendedResourceInjectionWithOverriding() {
RootBeanDefinition annotatedBd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
TestBean tb2 = new TestBean();
annotatedBd.getPropertyValues().add("testBean2", tb2);
@@ -155,7 +155,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void constructorResourceInjection() {
void testConstructorResourceInjection() {
RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class);
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd);
@@ -182,7 +182,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void constructorResourceInjectionWithMultipleCandidatesAsCollection() {
void testConstructorResourceInjectionWithMultipleCandidatesAsCollection() {
bf.registerBeanDefinition("annotatedBean",
new RootBeanDefinition(ConstructorsCollectionResourceInjectionBean.class));
TestBean tb = new TestBean();
@@ -199,7 +199,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void constructorResourceInjectionWithMultipleCandidatesAndFallback() {
void testConstructorResourceInjectionWithMultipleCandidatesAndFallback() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ConstructorsResourceInjectionBean.class));
TestBean tb = new TestBean();
bf.registerSingleton("testBean", tb);
@@ -210,7 +210,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void constructorInjectionWithMap() {
void testConstructorInjectionWithMap() {
RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class);
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd);
@@ -235,7 +235,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void fieldInjectionWithMap() {
void testFieldInjectionWithMap() {
RootBeanDefinition bd = new RootBeanDefinition(MapFieldInjectionBean.class);
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd);
@@ -260,7 +260,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void methodInjectionWithMap() {
void testMethodInjectionWithMap() {
RootBeanDefinition bd = new RootBeanDefinition(MapMethodInjectionBean.class);
bd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", bd);
@@ -281,7 +281,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void methodInjectionWithMapAndMultipleMatches() {
void testMethodInjectionWithMapAndMultipleMatches() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(MapMethodInjectionBean.class));
bf.registerBeanDefinition("testBean1", new RootBeanDefinition(TestBean.class));
bf.registerBeanDefinition("testBean2", new RootBeanDefinition(TestBean.class));
@@ -290,7 +290,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void methodInjectionWithMapAndMultipleMatchesButOnlyOneAutowireCandidate() {
void testMethodInjectionWithMapAndMultipleMatchesButOnlyOneAutowireCandidate() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(MapMethodInjectionBean.class));
bf.registerBeanDefinition("testBean1", new RootBeanDefinition(TestBean.class));
RootBeanDefinition rbd2 = new RootBeanDefinition(TestBean.class);
@@ -306,7 +306,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryInjection() {
void testObjectFactoryInjection() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryQualifierFieldInjectionBean.class));
RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
bd.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "testBean"));
@@ -318,7 +318,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryQualifierInjection() {
void testObjectFactoryQualifierInjection() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryQualifierFieldInjectionBean.class));
RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
bd.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "testBean"));
@@ -329,7 +329,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryFieldInjectionIntoPrototypeBean() {
void testObjectFactoryFieldInjectionIntoPrototypeBean() {
RootBeanDefinition annotatedBeanDefinition = new RootBeanDefinition(ObjectFactoryQualifierFieldInjectionBean.class);
annotatedBeanDefinition.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", annotatedBeanDefinition);
@@ -346,7 +346,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryMethodInjectionIntoPrototypeBean() {
void testObjectFactoryMethodInjectionIntoPrototypeBean() {
RootBeanDefinition annotatedBeanDefinition = new RootBeanDefinition(ObjectFactoryQualifierMethodInjectionBean.class);
annotatedBeanDefinition.setScope(BeanDefinition.SCOPE_PROTOTYPE);
bf.registerBeanDefinition("annotatedBean", annotatedBeanDefinition);
@@ -363,7 +363,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryWithBeanField() throws Exception {
void testObjectFactoryWithBeanField() throws Exception {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryFieldInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
bf.setSerializationId("test");
@@ -375,7 +375,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryWithBeanMethod() throws Exception {
void testObjectFactoryWithBeanMethod() throws Exception {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryMethodInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
bf.setSerializationId("test");
@@ -387,7 +387,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryWithTypedListField() throws Exception {
void testObjectFactoryWithTypedListField() throws Exception {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryListFieldInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
bf.setSerializationId("test");
@@ -399,7 +399,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryWithTypedListMethod() throws Exception {
void testObjectFactoryWithTypedListMethod() throws Exception {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryListMethodInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
bf.setSerializationId("test");
@@ -411,7 +411,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryWithTypedMapField() throws Exception {
void testObjectFactoryWithTypedMapField() throws Exception {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryMapFieldInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
bf.setSerializationId("test");
@@ -423,7 +423,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void objectFactoryWithTypedMapMethod() throws Exception {
void testObjectFactoryWithTypedMapMethod() throws Exception {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryMapMethodInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
bf.setSerializationId("test");
@@ -440,7 +440,7 @@ class InjectAnnotationBeanPostProcessorTests {
* specifically addressing SPR-4040.
*/
@Test
void beanAutowiredWithFactoryBean() {
void testBeanAutowiredWithFactoryBean() {
bf.registerBeanDefinition("factoryBeanDependentBean", new RootBeanDefinition(FactoryBeanDependentBean.class));
bf.registerSingleton("stringFactoryBean", new StringFactoryBean());
@@ -453,7 +453,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void nullableFieldInjectionWithBeanAvailable() {
void testNullableFieldInjectionWithBeanAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableFieldInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
@@ -462,7 +462,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void nullableFieldInjectionWithBeanNotAvailable() {
void testNullableFieldInjectionWithBeanNotAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableFieldInjectionBean.class));
NullableFieldInjectionBean bean = (NullableFieldInjectionBean) bf.getBean("annotatedBean");
@@ -470,7 +470,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void nullableMethodInjectionWithBeanAvailable() {
void testNullableMethodInjectionWithBeanAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableMethodInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
@@ -479,7 +479,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void nullableMethodInjectionWithBeanNotAvailable() {
void testNullableMethodInjectionWithBeanNotAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableMethodInjectionBean.class));
NullableMethodInjectionBean bean = (NullableMethodInjectionBean) bf.getBean("annotatedBean");
@@ -487,7 +487,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void optionalFieldInjectionWithBeanAvailable() {
void testOptionalFieldInjectionWithBeanAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalFieldInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
@@ -497,7 +497,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void optionalFieldInjectionWithBeanNotAvailable() {
void testOptionalFieldInjectionWithBeanNotAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalFieldInjectionBean.class));
OptionalFieldInjectionBean bean = (OptionalFieldInjectionBean) bf.getBean("annotatedBean");
@@ -505,7 +505,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void optionalMethodInjectionWithBeanAvailable() {
void testOptionalMethodInjectionWithBeanAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalMethodInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
@@ -515,7 +515,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void optionalMethodInjectionWithBeanNotAvailable() {
void testOptionalMethodInjectionWithBeanNotAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalMethodInjectionBean.class));
OptionalMethodInjectionBean bean = (OptionalMethodInjectionBean) bf.getBean("annotatedBean");
@@ -523,7 +523,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void optionalListFieldInjectionWithBeanAvailable() {
void testOptionalListFieldInjectionWithBeanAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListFieldInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
@@ -533,7 +533,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void optionalListFieldInjectionWithBeanNotAvailable() {
void testOptionalListFieldInjectionWithBeanNotAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListFieldInjectionBean.class));
OptionalListFieldInjectionBean bean = (OptionalListFieldInjectionBean) bf.getBean("annotatedBean");
@@ -541,7 +541,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void optionalListMethodInjectionWithBeanAvailable() {
void testOptionalListMethodInjectionWithBeanAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListMethodInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
@@ -551,7 +551,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void optionalListMethodInjectionWithBeanNotAvailable() {
void testOptionalListMethodInjectionWithBeanNotAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListMethodInjectionBean.class));
OptionalListMethodInjectionBean bean = (OptionalListMethodInjectionBean) bf.getBean("annotatedBean");
@@ -559,7 +559,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void providerOfOptionalFieldInjectionWithBeanAvailable() {
void testProviderOfOptionalFieldInjectionWithBeanAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalFieldInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
@@ -569,7 +569,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void providerOfOptionalFieldInjectionWithBeanNotAvailable() {
void testProviderOfOptionalFieldInjectionWithBeanNotAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalFieldInjectionBean.class));
ProviderOfOptionalFieldInjectionBean bean = (ProviderOfOptionalFieldInjectionBean) bf.getBean("annotatedBean");
@@ -577,7 +577,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void providerOfOptionalMethodInjectionWithBeanAvailable() {
void testProviderOfOptionalMethodInjectionWithBeanAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalMethodInjectionBean.class));
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
@@ -587,7 +587,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void providerOfOptionalMethodInjectionWithBeanNotAvailable() {
void testProviderOfOptionalMethodInjectionWithBeanNotAvailable() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalMethodInjectionBean.class));
ProviderOfOptionalMethodInjectionBean bean = (ProviderOfOptionalMethodInjectionBean) bf.getBean("annotatedBean");
@@ -595,7 +595,7 @@ class InjectAnnotationBeanPostProcessorTests {
}
@Test
void annotatedDefaultConstructor() {
void testAnnotatedDefaultConstructor() {
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(AnnotatedDefaultConstructorBean.class));
assertThat(bf.getBean("annotatedBean")).isNotNull();
@@ -33,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
class LookupAnnotationTests {
@Test
void withoutConstructorArg() {
void testWithoutConstructorArg() {
DefaultListableBeanFactory beanFactory = configureBeanFactory();
AbstractBean bean = (AbstractBean) beanFactory.getBean("abstractBean");
Object expected = bean.get();
@@ -42,7 +42,7 @@ class LookupAnnotationTests {
}
@Test
void withOverloadedArg() {
void testWithOverloadedArg() {
DefaultListableBeanFactory beanFactory = configureBeanFactory();
AbstractBean bean = (AbstractBean) beanFactory.getBean("abstractBean");
TestBean expected = bean.get("haha");
@@ -52,7 +52,7 @@ class LookupAnnotationTests {
}
@Test
void withOneConstructorArg() {
void testWithOneConstructorArg() {
DefaultListableBeanFactory beanFactory = configureBeanFactory();
AbstractBean bean = (AbstractBean) beanFactory.getBean("abstractBean");
TestBean expected = bean.getOneArgument("haha");
@@ -62,7 +62,7 @@ class LookupAnnotationTests {
}
@Test
void withTwoConstructorArg() {
void testWithTwoConstructorArg() {
DefaultListableBeanFactory beanFactory = configureBeanFactory();
AbstractBean bean = (AbstractBean) beanFactory.getBean("abstractBean");
TestBean expected = bean.getTwoArguments("haha", 72);
@@ -73,7 +73,7 @@ class LookupAnnotationTests {
}
@Test
void withThreeArgsShouldFail() {
void testWithThreeArgsShouldFail() {
DefaultListableBeanFactory beanFactory = configureBeanFactory();
AbstractBean bean = (AbstractBean) beanFactory.getBean("abstractBean");
assertThatExceptionOfType(AbstractMethodError.class).as("TestBean has no three arg constructor").isThrownBy(() ->
@@ -82,7 +82,7 @@ class LookupAnnotationTests {
}
@Test
void withEarlyInjection() {
void testWithEarlyInjection() {
DefaultListableBeanFactory beanFactory = configureBeanFactory();
AbstractBean bean = beanFactory.getBean("beanConsumer", BeanConsumer.class).abstractBean;
Object expected = bean.get();
@@ -91,7 +91,7 @@ class LookupAnnotationTests {
}
@Test // gh-25806
void withNullBean() {
public void testWithNullBean() {
RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class, () -> null);
tbd.setScope(BeanDefinition.SCOPE_PROTOTYPE);
DefaultListableBeanFactory beanFactory = configureBeanFactory(tbd);
@@ -103,7 +103,7 @@ class LookupAnnotationTests {
}
@Test
void withGenericBean() {
void testWithGenericBean() {
DefaultListableBeanFactory beanFactory = configureBeanFactory();
beanFactory.registerBeanDefinition("numberBean", new RootBeanDefinition(NumberBean.class));
beanFactory.registerBeanDefinition("doubleStore", new RootBeanDefinition(DoubleStore.class));
@@ -115,7 +115,7 @@ class LookupAnnotationTests {
}
@Test
void singletonWithoutMetadataCaching() {
void testSingletonWithoutMetadataCaching() {
DefaultListableBeanFactory beanFactory = configureBeanFactory();
beanFactory.setCacheBeanMetadata(false);
@@ -129,7 +129,7 @@ class LookupAnnotationTests {
}
@Test
void prototypeWithoutMetadataCaching() {
void testPrototypeWithoutMetadataCaching() {
DefaultListableBeanFactory beanFactory = configureBeanFactory();
beanFactory.setCacheBeanMetadata(false);
@@ -67,7 +67,7 @@ class DefaultBeanRegistrationCodeFragmentsTests {
private final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
@Test
void getTargetWithInstanceSupplier() {
public void getTargetWithInstanceSupplier() {
RootBeanDefinition beanDefinition = new RootBeanDefinition(SimpleBean.class);
beanDefinition.setInstanceSupplier(SimpleBean::new);
RegisteredBean registeredBean = registerTestBean(beanDefinition);
@@ -78,7 +78,7 @@ class DefaultBeanRegistrationCodeFragmentsTests {
}
@Test
void getTargetWithInstanceSupplierAndResourceDescription() {
public void getTargetWithInstanceSupplierAndResourceDescription() {
RootBeanDefinition beanDefinition = new RootBeanDefinition(SimpleBean.class);
beanDefinition.setInstanceSupplier(SimpleBean::new);
beanDefinition.setResourceDescription("my test resource");
@@ -44,7 +44,7 @@ import static org.assertj.core.api.Assertions.assertThat;
class CustomEditorConfigurerTests {
@Test
void customEditorConfigurerWithPropertyEditorRegistrar() throws ParseException {
void testCustomEditorConfigurerWithPropertyEditorRegistrar() throws ParseException {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
CustomEditorConfigurer cec = new CustomEditorConfigurer();
final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.GERMAN);
@@ -70,7 +70,7 @@ class CustomEditorConfigurerTests {
}
@Test
void customEditorConfigurerWithEditorAsClass() throws ParseException {
void testCustomEditorConfigurerWithEditorAsClass() throws ParseException {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
CustomEditorConfigurer cec = new CustomEditorConfigurer();
Map<Class<?>, Class<? extends PropertyEditor>> editors = new HashMap<>();
@@ -90,7 +90,7 @@ class CustomEditorConfigurerTests {
}
@Test
void customEditorConfigurerWithRequiredTypeArray() {
void testCustomEditorConfigurerWithRequiredTypeArray() {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
CustomEditorConfigurer cec = new CustomEditorConfigurer();
Map<Class<?>, Class<? extends PropertyEditor>> editors = new HashMap<>();
@@ -43,13 +43,13 @@ class CustomScopeConfigurerTests {
@Test
void withNoScopes() {
void testWithNoScopes() {
CustomScopeConfigurer figurer = new CustomScopeConfigurer();
figurer.postProcessBeanFactory(factory);
}
@Test
void sunnyDayWithBonaFideScopeInstance() {
void testSunnyDayWithBonaFideScopeInstance() {
Scope scope = mock();
factory.registerScope(FOO_SCOPE, scope);
Map<String, Object> scopes = new HashMap<>();
@@ -60,7 +60,7 @@ class CustomScopeConfigurerTests {
}
@Test
void sunnyDayWithBonaFideScopeClass() {
void testSunnyDayWithBonaFideScopeClass() {
Map<String, Object> scopes = new HashMap<>();
scopes.put(FOO_SCOPE, NoOpScope.class);
CustomScopeConfigurer figurer = new CustomScopeConfigurer();
@@ -70,7 +70,7 @@ class CustomScopeConfigurerTests {
}
@Test
void sunnyDayWithBonaFideScopeClassName() {
void testSunnyDayWithBonaFideScopeClassName() {
Map<String, Object> scopes = new HashMap<>();
scopes.put(FOO_SCOPE, NoOpScope.class.getName());
CustomScopeConfigurer figurer = new CustomScopeConfigurer();
@@ -80,7 +80,7 @@ class CustomScopeConfigurerTests {
}
@Test
void whereScopeMapHasNullScopeValueInEntrySet() {
void testWhereScopeMapHasNullScopeValueInEntrySet() {
Map<String, Object> scopes = new HashMap<>();
scopes.put(FOO_SCOPE, null);
CustomScopeConfigurer figurer = new CustomScopeConfigurer();
@@ -90,7 +90,7 @@ class CustomScopeConfigurerTests {
}
@Test
void whereScopeMapHasNonScopeInstanceInEntrySet() {
void testWhereScopeMapHasNonScopeInstanceInEntrySet() {
Map<String, Object> scopes = new HashMap<>();
scopes.put(FOO_SCOPE, this); // <-- not a valid value...
CustomScopeConfigurer figurer = new CustomScopeConfigurer();
@@ -101,7 +101,7 @@ class CustomScopeConfigurerTests {
@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
void whereScopeMapHasNonStringTypedScopeNameInKeySet() {
void testWhereScopeMapHasNonStringTypedScopeNameInKeySet() {
Map scopes = new HashMap();
scopes.put(this, new NoOpScope()); // <-- not a valid value (the key)...
CustomScopeConfigurer figurer = new CustomScopeConfigurer();
@@ -35,7 +35,7 @@ class DeprecatedBeanWarnerTests {
@Test
@SuppressWarnings("deprecation")
void postProcess() {
public void postProcess() {
DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory();
BeanDefinition def = new RootBeanDefinition(MyDeprecatedBean.class);
String beanName = "deprecated";
@@ -37,7 +37,7 @@ import static org.springframework.core.testfixture.io.ResourceTestUtils.qualifie
class FieldRetrievingFactoryBeanTests {
@Test
void staticField() throws Exception {
void testStaticField() throws Exception {
FieldRetrievingFactoryBean fr = new FieldRetrievingFactoryBean();
fr.setStaticField("java.sql.Connection.TRANSACTION_SERIALIZABLE");
fr.afterPropertiesSet();
@@ -45,7 +45,7 @@ class FieldRetrievingFactoryBeanTests {
}
@Test
void staticFieldWithWhitespace() throws Exception {
void testStaticFieldWithWhitespace() throws Exception {
FieldRetrievingFactoryBean fr = new FieldRetrievingFactoryBean();
fr.setStaticField(" java.sql.Connection.TRANSACTION_SERIALIZABLE ");
fr.afterPropertiesSet();
@@ -53,7 +53,7 @@ class FieldRetrievingFactoryBeanTests {
}
@Test
void staticFieldViaClassAndFieldName() throws Exception {
void testStaticFieldViaClassAndFieldName() throws Exception {
FieldRetrievingFactoryBean fr = new FieldRetrievingFactoryBean();
fr.setTargetClass(Connection.class);
fr.setTargetField("TRANSACTION_SERIALIZABLE");
@@ -62,7 +62,7 @@ class FieldRetrievingFactoryBeanTests {
}
@Test
void nonStaticField() throws Exception {
void testNonStaticField() throws Exception {
FieldRetrievingFactoryBean fr = new FieldRetrievingFactoryBean();
PublicFieldHolder target = new PublicFieldHolder();
fr.setTargetObject(target);
@@ -72,7 +72,7 @@ class FieldRetrievingFactoryBeanTests {
}
@Test
void nothingButBeanName() throws Exception {
void testNothingButBeanName() throws Exception {
FieldRetrievingFactoryBean fr = new FieldRetrievingFactoryBean();
fr.setBeanName("java.sql.Connection.TRANSACTION_SERIALIZABLE");
fr.afterPropertiesSet();
@@ -80,7 +80,7 @@ class FieldRetrievingFactoryBeanTests {
}
@Test
void justTargetField() throws Exception {
void testJustTargetField() throws Exception {
FieldRetrievingFactoryBean fr = new FieldRetrievingFactoryBean();
fr.setTargetField("TRANSACTION_SERIALIZABLE");
try {
@@ -91,7 +91,7 @@ class FieldRetrievingFactoryBeanTests {
}
@Test
void justTargetClass() throws Exception {
void testJustTargetClass() throws Exception {
FieldRetrievingFactoryBean fr = new FieldRetrievingFactoryBean();
fr.setTargetClass(Connection.class);
try {
@@ -102,7 +102,7 @@ class FieldRetrievingFactoryBeanTests {
}
@Test
void justTargetObject() throws Exception {
void testJustTargetObject() throws Exception {
FieldRetrievingFactoryBean fr = new FieldRetrievingFactoryBean();
fr.setTargetObject(new PublicFieldHolder());
try {
@@ -113,7 +113,7 @@ class FieldRetrievingFactoryBeanTests {
}
@Test
void withConstantOnClassWithPackageLevelVisibility() throws Exception {
void testWithConstantOnClassWithPackageLevelVisibility() throws Exception {
FieldRetrievingFactoryBean fr = new FieldRetrievingFactoryBean();
fr.setBeanName("org.springframework.beans.testfixture.beans.PackageLevelVisibleBean.CONSTANT");
fr.afterPropertiesSet();
@@ -121,7 +121,7 @@ class FieldRetrievingFactoryBeanTests {
}
@Test
void beanNameSyntaxWithBeanFactory() {
void testBeanNameSyntaxWithBeanFactory() {
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
new XmlBeanDefinitionReader(bf).loadBeanDefinitions(
qualifiedResource(FieldRetrievingFactoryBeanTests.class, "context.xml"));
@@ -41,7 +41,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
class MethodInvokingFactoryBeanTests {
@Test
void parameterValidation() throws Exception {
void testParameterValidation() throws Exception {
// assert that only static OR non-static are set, but not both or none
MethodInvokingFactoryBean mcfb = new MethodInvokingFactoryBean();
@@ -91,14 +91,14 @@ class MethodInvokingFactoryBeanTests {
}
@Test
void getObjectType() throws Exception {
void testGetObjectType() throws Exception {
TestClass1 tc1 = new TestClass1();
MethodInvokingFactoryBean mcfb = new MethodInvokingFactoryBean();
mcfb = new MethodInvokingFactoryBean();
mcfb.setTargetObject(tc1);
mcfb.setTargetMethod("method1");
mcfb.afterPropertiesSet();
assertThat(int.class).isEqualTo(mcfb.getObjectType());
assertThat(int.class.equals(mcfb.getObjectType())).isTrue();
mcfb = new MethodInvokingFactoryBean();
mcfb.setTargetClass(TestClass1.class);
@@ -127,7 +127,7 @@ class MethodInvokingFactoryBeanTests {
}
@Test
void getObject() throws Exception {
void testGetObject() throws Exception {
// singleton, non-static
TestClass1 tc1 = new TestClass1();
MethodInvokingFactoryBean mcfb = new MethodInvokingFactoryBean();
@@ -190,7 +190,7 @@ class MethodInvokingFactoryBeanTests {
}
@Test
void argumentConversion() throws Exception {
void testArgumentConversion() throws Exception {
MethodInvokingFactoryBean mcfb = new MethodInvokingFactoryBean();
mcfb.setTargetClass(TestClass1.class);
mcfb.setTargetMethod("supertypes");
@@ -224,7 +224,7 @@ class MethodInvokingFactoryBeanTests {
}
@Test
void invokeWithNullArgument() throws Exception {
void testInvokeWithNullArgument() throws Exception {
MethodInvoker methodInvoker = new MethodInvoker();
methodInvoker.setTargetClass(TestClass1.class);
methodInvoker.setTargetMethod("nullArgument");
@@ -234,7 +234,7 @@ class MethodInvokingFactoryBeanTests {
}
@Test
void invokeWithIntArgument() throws Exception {
void testInvokeWithIntArgument() throws Exception {
ArgumentConvertingMethodInvoker methodInvoker = new ArgumentConvertingMethodInvoker();
methodInvoker.setTargetClass(TestClass1.class);
methodInvoker.setTargetMethod("intArgument");
@@ -251,7 +251,7 @@ class MethodInvokingFactoryBeanTests {
}
@Test
void invokeWithIntArguments() throws Exception {
void testInvokeWithIntArguments() throws Exception {
MethodInvokingBean methodInvoker = new MethodInvokingBean();
methodInvoker.setTargetClass(TestClass1.class);
methodInvoker.setTargetMethod("intArguments");

Some files were not shown because too many files have changed in this diff Show More