Skip to content

Commit ad8ebba

Browse files
committed
Test injection for @Lookup-declaring bean
Issue: SPR-14550 (cherry picked from commit d128830)
1 parent 4854989 commit ad8ebba

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

spring-beans/src/test/java/org/springframework/beans/factory/annotation/LookupAnnotationTests.java

+23-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2014 the original author or authors.
2+
* Copyright 2002-2016 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -41,6 +41,7 @@ public void setUp() {
4141
aabpp.setBeanFactory(beanFactory);
4242
beanFactory.addBeanPostProcessor(aabpp);
4343
beanFactory.registerBeanDefinition("abstractBean", new RootBeanDefinition(AbstractBean.class));
44+
beanFactory.registerBeanDefinition("beanConsumer", new RootBeanDefinition(BeanConsumer.class));
4445
RootBeanDefinition tbd = new RootBeanDefinition(TestBean.class);
4546
tbd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
4647
beanFactory.registerBeanDefinition("testBean", tbd);
@@ -53,6 +54,7 @@ public void testWithoutConstructorArg() {
5354
assertNotNull(bean);
5455
Object expected = bean.get();
5556
assertEquals(TestBean.class, expected.getClass());
57+
assertSame(bean, beanFactory.getBean(BeanConsumer.class).abstractBean);
5658
}
5759

5860
@Test
@@ -62,6 +64,7 @@ public void testWithOverloadedArg() {
6264
TestBean expected = bean.get("haha");
6365
assertEquals(TestBean.class, expected.getClass());
6466
assertEquals("haha", expected.getName());
67+
assertSame(bean, beanFactory.getBean(BeanConsumer.class).abstractBean);
6568
}
6669

6770
@Test
@@ -71,6 +74,7 @@ public void testWithOneConstructorArg() {
7174
TestBean expected = bean.getOneArgument("haha");
7275
assertEquals(TestBean.class, expected.getClass());
7376
assertEquals("haha", expected.getName());
77+
assertSame(bean, beanFactory.getBean(BeanConsumer.class).abstractBean);
7478
}
7579

7680
@Test
@@ -81,6 +85,7 @@ public void testWithTwoConstructorArg() {
8185
assertEquals(TestBean.class, expected.getClass());
8286
assertEquals("haha", expected.getName());
8387
assertEquals(72, expected.getAge());
88+
assertSame(bean, beanFactory.getBean(BeanConsumer.class).abstractBean);
8489
}
8590

8691
@Test
@@ -93,6 +98,16 @@ public void testWithThreeArgsShouldFail() {
9398
}
9499
catch (AbstractMethodError ex) {
95100
}
101+
assertSame(bean, beanFactory.getBean(BeanConsumer.class).abstractBean);
102+
}
103+
104+
@Test
105+
public void testWithEarlyInjection() {
106+
AbstractBean bean = beanFactory.getBean("beanConsumer", BeanConsumer.class).abstractBean;
107+
assertNotNull(bean);
108+
Object expected = bean.get();
109+
assertEquals(TestBean.class, expected.getClass());
110+
assertSame(bean, beanFactory.getBean(BeanConsumer.class).abstractBean);
96111
}
97112

98113

@@ -113,4 +128,11 @@ public static abstract class AbstractBean {
113128
public abstract TestBean getThreeArguments(String name, int age, int anotherArg);
114129
}
115130

131+
132+
public static class BeanConsumer {
133+
134+
@Autowired
135+
AbstractBean abstractBean;
136+
}
137+
116138
}

0 commit comments

Comments
 (0)