@ -1430,6 +1430,29 @@ class DefaultListableBeanFactoryTests {
@@ -1430,6 +1430,29 @@ class DefaultListableBeanFactoryTests {
lbf . getBean ( TestBean . class ) ) ;
}
@Test
void getBeanByTypeWithLateRegistration ( ) {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ( ) ;
assertThatExceptionOfType ( NoSuchBeanDefinitionException . class ) . isThrownBy ( ( ) - >
lbf . getBean ( TestBean . class ) ) ;
RootBeanDefinition bd1 = new RootBeanDefinition ( TestBean . class ) ;
lbf . registerBeanDefinition ( "bd1" , bd1 ) ;
TestBean bean = lbf . getBean ( TestBean . class ) ;
assertThat ( bean . getBeanName ( ) ) . isEqualTo ( "bd1" ) ;
}
@Test
void getBeanByTypeWithLateRegistrationAgainstFrozen ( ) {
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory ( ) ;
lbf . freezeConfiguration ( ) ;
assertThatExceptionOfType ( NoSuchBeanDefinitionException . class ) . isThrownBy ( ( ) - >
lbf . getBean ( TestBean . class ) ) ;
RootBeanDefinition bd1 = new RootBeanDefinition ( TestBean . class ) ;
lbf . registerBeanDefinition ( "bd1" , bd1 ) ;
TestBean bean = lbf . getBean ( TestBean . class ) ;
assertThat ( bean . getBeanName ( ) ) . isEqualTo ( "bd1" ) ;
}
@Test
void getBeanByTypeDefinedInParent ( ) {
DefaultListableBeanFactory parent = new DefaultListableBeanFactory ( ) ;