Skip to content

Commit f4c996b

Browse files
committed
Polish "Check for Class and ResolvableType object type attributes"
See gh-36224
1 parent 3a71852 commit f4c996b

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed

spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/mock/mockito/MockitoPostProcessor.java

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -248,29 +248,22 @@ private Set<String> getExistingBeans(ConfigurableListableBeanFactory beanFactory
248248
return candidates;
249249
}
250250

251-
private Set<String> getExistingBeans(ConfigurableListableBeanFactory beanFactory, ResolvableType type) {
252-
Set<String> beans = new LinkedHashSet<>(Arrays.asList(beanFactory.getBeanNamesForType(type, true, false)));
253-
String typeName = type.resolve(Object.class).getName();
251+
private Set<String> getExistingBeans(ConfigurableListableBeanFactory beanFactory, ResolvableType resolvableType) {
252+
Set<String> beans = new LinkedHashSet<>(
253+
Arrays.asList(beanFactory.getBeanNamesForType(resolvableType, true, false)));
254+
Class<?> type = resolvableType.resolve(Object.class);
255+
String typeName = type.getName();
254256
for (String beanName : beanFactory.getBeanNamesForType(FactoryBean.class, true, false)) {
255257
beanName = BeanFactoryUtils.transformedBeanName(beanName);
256258
BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName);
257259
Object attribute = beanDefinition.getAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE);
258-
if(attribute instanceof Class) {
259-
Class<?> attributeClass = (Class<?>) attribute;
260-
if (typeName.equals(attributeClass.getName())) {
261-
beans.add(beanName);
262-
}
263-
} else if (attribute instanceof ResolvableType) {
264-
ResolvableType resolvableType = (ResolvableType) attribute;
265-
if (typeName.equals(resolvableType.resolve(Object.class).getName())) {
266-
beans.add(beanName);
267-
}
268-
} else if (typeName.equals(attribute)){
260+
if (resolvableType.equals(attribute) || type.equals(attribute) || typeName.equals(attribute)) {
269261
beans.add(beanName);
270262
}
271263
}
272264
beans.removeIf(this::isScopedTarget);
273265
return beans;
266+
274267
}
275268

276269
private boolean isScopedTarget(String beanName) {

spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/mock/mockito/MockitoPostProcessorTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ void cannotMockMultipleQualifiedBeans() {
7474
}
7575

7676
@Test
77-
void canMockBeanProducedByFactoryBeanWithObjectTypeAttribute() {
77+
void canMockBeanProducedByFactoryBeanWithStringObjectTypeAttribute() {
7878
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
7979
MockitoPostProcessor.register(context);
8080
RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition(TestFactoryBean.class);
@@ -86,7 +86,7 @@ void canMockBeanProducedByFactoryBeanWithObjectTypeAttribute() {
8686
}
8787

8888
@Test
89-
void canMockBeanProducedByFactoryBeanWithClassAttribute() {
89+
void canMockBeanProducedByFactoryBeanWithClassObjectTypeAttribute() {
9090
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
9191
MockitoPostProcessor.register(context);
9292
RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition(TestFactoryBean.class);
@@ -98,7 +98,7 @@ void canMockBeanProducedByFactoryBeanWithClassAttribute() {
9898
}
9999

100100
@Test
101-
void canMockBeanProducedByFactoryBeanWithResolvableTypeAttribute() {
101+
void canMockBeanProducedByFactoryBeanWithResolvableTypeObjectTypeAttribute() {
102102
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
103103
MockitoPostProcessor.register(context);
104104
RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition(TestFactoryBean.class);

0 commit comments

Comments
 (0)