1
1
/*
2
- * Copyright 2002-2014 the original author or authors.
2
+ * Copyright 2002-2016 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
@@ -41,6 +41,7 @@ public void setUp() {
41
41
aabpp .setBeanFactory (beanFactory );
42
42
beanFactory .addBeanPostProcessor (aabpp );
43
43
beanFactory .registerBeanDefinition ("abstractBean" , new RootBeanDefinition (AbstractBean .class ));
44
+ beanFactory .registerBeanDefinition ("beanConsumer" , new RootBeanDefinition (BeanConsumer .class ));
44
45
RootBeanDefinition tbd = new RootBeanDefinition (TestBean .class );
45
46
tbd .setScope (RootBeanDefinition .SCOPE_PROTOTYPE );
46
47
beanFactory .registerBeanDefinition ("testBean" , tbd );
@@ -53,6 +54,7 @@ public void testWithoutConstructorArg() {
53
54
assertNotNull (bean );
54
55
Object expected = bean .get ();
55
56
assertEquals (TestBean .class , expected .getClass ());
57
+ assertSame (bean , beanFactory .getBean (BeanConsumer .class ).abstractBean );
56
58
}
57
59
58
60
@ Test
@@ -62,6 +64,7 @@ public void testWithOverloadedArg() {
62
64
TestBean expected = bean .get ("haha" );
63
65
assertEquals (TestBean .class , expected .getClass ());
64
66
assertEquals ("haha" , expected .getName ());
67
+ assertSame (bean , beanFactory .getBean (BeanConsumer .class ).abstractBean );
65
68
}
66
69
67
70
@ Test
@@ -71,6 +74,7 @@ public void testWithOneConstructorArg() {
71
74
TestBean expected = bean .getOneArgument ("haha" );
72
75
assertEquals (TestBean .class , expected .getClass ());
73
76
assertEquals ("haha" , expected .getName ());
77
+ assertSame (bean , beanFactory .getBean (BeanConsumer .class ).abstractBean );
74
78
}
75
79
76
80
@ Test
@@ -81,6 +85,7 @@ public void testWithTwoConstructorArg() {
81
85
assertEquals (TestBean .class , expected .getClass ());
82
86
assertEquals ("haha" , expected .getName ());
83
87
assertEquals (72 , expected .getAge ());
88
+ assertSame (bean , beanFactory .getBean (BeanConsumer .class ).abstractBean );
84
89
}
85
90
86
91
@ Test
@@ -93,6 +98,16 @@ public void testWithThreeArgsShouldFail() {
93
98
}
94
99
catch (AbstractMethodError ex ) {
95
100
}
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 );
96
111
}
97
112
98
113
@@ -113,4 +128,11 @@ public static abstract class AbstractBean {
113
128
public abstract TestBean getThreeArguments (String name , int age , int anotherArg );
114
129
}
115
130
131
+
132
+ public static class BeanConsumer {
133
+
134
+ @ Autowired
135
+ AbstractBean abstractBean ;
136
+ }
137
+
116
138
}
0 commit comments