@ -1666,6 +1666,36 @@ public class DefaultListableBeanFactoryTests {
@@ -1666,6 +1666,36 @@ public class DefaultListableBeanFactoryTests {
assertNull ( lbf . getType ( "factoryBean" ) ) ;
}
@Test
public void testGetBeanNamesForTypeBeforeFactoryBeanCreation ( ) {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ( ) ;
lbf . registerBeanDefinition ( "factoryBean" , new RootBeanDefinition ( FactoryBeanThatShouldntBeCalled . class . getName ( ) ) ) ;
assertFalse ( lbf . containsSingleton ( "factoryBean" ) ) ;
String [ ] beanNames = lbf . getBeanNamesForType ( Runnable . class , false , false ) ;
assertEquals ( 1 , beanNames . length ) ;
assertEquals ( "&factoryBean" , beanNames [ 0 ] ) ;
beanNames = lbf . getBeanNamesForType ( FactoryBean . class , false , false ) ;
assertEquals ( 1 , beanNames . length ) ;
assertEquals ( "&factoryBean" , beanNames [ 0 ] ) ;
}
@Test
public void testGetBeanNamesForTypeAfterFactoryBeanCreation ( ) {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ( ) ;
lbf . registerBeanDefinition ( "factoryBean" , new RootBeanDefinition ( FactoryBeanThatShouldntBeCalled . class . getName ( ) ) ) ;
lbf . getBean ( "&factoryBean" ) ;
String [ ] beanNames = lbf . getBeanNamesForType ( Runnable . class , false , false ) ;
assertEquals ( 1 , beanNames . length ) ;
assertEquals ( "&factoryBean" , beanNames [ 0 ] ) ;
beanNames = lbf . getBeanNamesForType ( FactoryBean . class , false , false ) ;
assertEquals ( 1 , beanNames . length ) ;
assertEquals ( "&factoryBean" , beanNames [ 0 ] ) ;
}
/ * *
* Verifies that a dependency on a { @link FactoryBean } can < strong > not < / strong >
* be autowired < em > by name < / em > , as & amp ; is an illegal character in
@ -2862,7 +2892,7 @@ public class DefaultListableBeanFactoryTests {
@@ -2862,7 +2892,7 @@ public class DefaultListableBeanFactoryTests {
}
public static class FactoryBeanThatShouldntBeCalled implements FactoryBean < Object > {
public static class FactoryBeanThatShouldntBeCalled implements FactoryBean < Object > , Runnable {
@Override
public Object getObject ( ) {
@ -2878,6 +2908,11 @@ public class DefaultListableBeanFactoryTests {
@@ -2878,6 +2908,11 @@ public class DefaultListableBeanFactoryTests {
public boolean isSingleton ( ) {
return false ;
}
@Override
public void run ( ) {
throw new IllegalStateException ( ) ;
}
}
@ -2993,7 +3028,6 @@ public class DefaultListableBeanFactoryTests {
@@ -2993,7 +3028,6 @@ public class DefaultListableBeanFactoryTests {
private FactoryBean < ? > factoryBean ;
public final FactoryBean < ? > getFactoryBean ( ) {
return this . factoryBean ;
}