@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2018 the original author or authors .
* Copyright 2002 - 2019 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 .
@ -811,26 +811,24 @@ public class DefaultListableBeanFactoryTests {
@@ -811,26 +811,24 @@ public class DefaultListableBeanFactoryTests {
}
@Test
public void testBeanDefinitionOverrid ing ( ) {
public void testAliasChain ing ( ) {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ( ) ;
lbf . registerBeanDefinition ( "test" , new RootBeanDefinition ( TestBean . class ) ) ;
lbf . registerBeanDefinition ( "test" , new RootBeanDefinition ( NestedTestBean . class ) ) ;
lbf . registerAlias ( "otherTest" , "test2" ) ;
lbf . registerAlias ( "test" , "test2" ) ;
assertTrue ( lbf . getBean ( "test" ) instanceof NestedTestBean ) ;
assertTrue ( lbf . getBean ( "test2" ) instanceof NestedTestBean ) ;
lbf . registerAlias ( "test" , "testAlias" ) ;
lbf . registerAlias ( "testAlias" , "testAlias2" ) ;
lbf . registerAlias ( "testAlias2" , "testAlias3" ) ;
Object bean = lbf . getBean ( "test" ) ;
assertSame ( bean , lbf . getBean ( "testAlias" ) ) ;
assertSame ( bean , lbf . getBean ( "testAlias2" ) ) ;
assertSame ( bean , lbf . getBean ( "testAlias3" ) ) ;
}
@Test
public void testBeanDefinitionRemoval ( ) {
public void testBeanDefinitionOverriding ( ) {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ( ) ;
lbf . setAllowBeanDefinitionOverriding ( false ) ;
lbf . registerBeanDefinition ( "test" , new RootBeanDefinition ( TestBean . class ) ) ;
lbf . registerAlias ( "test" , "test2" ) ;
lbf . preInstantiateSingletons ( ) ;
lbf . removeBeanDefinition ( "test" ) ;
lbf . removeAlias ( "test2" ) ;
lbf . registerBeanDefinition ( "test" , new RootBeanDefinition ( NestedTestBean . class ) ) ;
lbf . registerAlias ( "otherTest" , "test2" ) ;
lbf . registerAlias ( "test" , "test2" ) ;
assertTrue ( lbf . getBean ( "test" ) instanceof NestedTestBean ) ;
assertTrue ( lbf . getBean ( "test2" ) instanceof NestedTestBean ) ;
@ -863,16 +861,31 @@ public class DefaultListableBeanFactoryTests {
@@ -863,16 +861,31 @@ public class DefaultListableBeanFactoryTests {
}
@Test
public void testAliasChaining ( ) {
public void beanDefinitionOverridingWithConstructorArgumentMismatch ( ) {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ( ) ;
RootBeanDefinition bd1 = new RootBeanDefinition ( NestedTestBean . class ) ;
bd1 . getConstructorArgumentValues ( ) . addIndexedArgumentValue ( 1 , "value1" ) ;
lbf . registerBeanDefinition ( "test" , bd1 ) ;
RootBeanDefinition bd2 = new RootBeanDefinition ( NestedTestBean . class ) ;
bd2 . getConstructorArgumentValues ( ) . addIndexedArgumentValue ( 0 , "value0" ) ;
lbf . registerBeanDefinition ( "test" , bd2 ) ;
assertTrue ( lbf . getBean ( "test" ) instanceof NestedTestBean ) ;
assertEquals ( "value0" , lbf . getBean ( "test" , NestedTestBean . class ) . getCompany ( ) ) ;
}
@Test
public void testBeanDefinitionRemoval ( ) {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ( ) ;
lbf . setAllowBeanDefinitionOverriding ( false ) ;
lbf . registerBeanDefinition ( "test" , new RootBeanDefinition ( TestBean . class ) ) ;
lbf . registerAlias ( "test" , "test2" ) ;
lbf . preInstantiateSingletons ( ) ;
lbf . removeBeanDefinition ( "test" ) ;
lbf . removeAlias ( "test2" ) ;
lbf . registerBeanDefinition ( "test" , new RootBeanDefinition ( NestedTestBean . class ) ) ;
lbf . registerAlias ( "test" , "testAlias" ) ;
lbf . registerAlias ( "testAlias" , "testAlias2" ) ;
lbf . registerAlias ( "testAlias2" , "testAlias3" ) ;
Object bean = lbf . getBean ( "test" ) ;
assertSame ( bean , lbf . getBean ( "testAlias" ) ) ;
assertSame ( bean , lbf . getBean ( "testAlias2" ) ) ;
assertSame ( bean , lbf . getBean ( "testAlias3" ) ) ;
lbf . registerAlias ( "test" , "test2" ) ;
assertTrue ( lbf . getBean ( "test" ) instanceof NestedTestBean ) ;
assertTrue ( lbf . getBean ( "test2" ) instanceof NestedTestBean ) ;
}
@Test