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