|
|
|
|
@ -48,6 +48,7 @@ import org.springframework.lang.Nullable;
@@ -48,6 +48,7 @@ import org.springframework.lang.Nullable;
|
|
|
|
|
import org.springframework.util.ReflectionUtils; |
|
|
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
|
import static org.assertj.core.api.Assertions.assertThatIllegalStateException; |
|
|
|
|
import static org.mockito.Mockito.never; |
|
|
|
|
import static org.mockito.Mockito.spy; |
|
|
|
|
import static org.mockito.Mockito.verify; |
|
|
|
|
@ -65,6 +66,28 @@ class DefaultBeanRegistrationCodeFragmentsTests {
@@ -65,6 +66,28 @@ class DefaultBeanRegistrationCodeFragmentsTests {
|
|
|
|
|
|
|
|
|
|
private final DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void getTargetWithInstanceSupplier() { |
|
|
|
|
RootBeanDefinition beanDefinition = new RootBeanDefinition(SimpleBean.class); |
|
|
|
|
beanDefinition.setInstanceSupplier(SimpleBean::new); |
|
|
|
|
RegisteredBean registeredBean = registerTestBean(beanDefinition); |
|
|
|
|
BeanRegistrationCodeFragments codeFragments = createInstance(registeredBean); |
|
|
|
|
assertThatIllegalStateException().isThrownBy(() -> codeFragments.getTarget(registeredBean)) |
|
|
|
|
.withMessageContaining("Error processing bean with name 'testBean': instance supplier is not supported"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void getTargetWithInstanceSupplierAndResourceDescription() { |
|
|
|
|
RootBeanDefinition beanDefinition = new RootBeanDefinition(SimpleBean.class); |
|
|
|
|
beanDefinition.setInstanceSupplier(SimpleBean::new); |
|
|
|
|
beanDefinition.setResourceDescription("my test resource"); |
|
|
|
|
RegisteredBean registeredBean = registerTestBean(beanDefinition); |
|
|
|
|
BeanRegistrationCodeFragments codeFragments = createInstance(registeredBean); |
|
|
|
|
assertThatIllegalStateException().isThrownBy(() -> codeFragments.getTarget(registeredBean)) |
|
|
|
|
.withMessageContaining("Error processing bean with name 'testBean' defined in my test resource: " |
|
|
|
|
+ "instance supplier is not supported"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void getTargetOnConstructor() { |
|
|
|
|
RegisteredBean registeredBean = registerTestBean(SimpleBean.class, |
|
|
|
|
@ -257,13 +280,16 @@ class DefaultBeanRegistrationCodeFragmentsTests {
@@ -257,13 +280,16 @@ class DefaultBeanRegistrationCodeFragmentsTests {
|
|
|
|
|
return RegisteredBean.of(this.beanFactory, "testBean"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private RegisteredBean registerTestBean(ResolvableType beanType, |
|
|
|
|
@Nullable Executable constructorOrFactoryMethod) { |
|
|
|
|
RootBeanDefinition beanDefinition = new RootBeanDefinition(); |
|
|
|
|
beanDefinition.setTargetType(beanType); |
|
|
|
|
this.beanFactory.registerBeanDefinition("testBean", |
|
|
|
|
applyConstructorOrFactoryMethod(beanDefinition, constructorOrFactoryMethod)); |
|
|
|
|
return registerTestBean(applyConstructorOrFactoryMethod( |
|
|
|
|
beanDefinition, constructorOrFactoryMethod)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private RegisteredBean registerTestBean(RootBeanDefinition beanDefinition) { |
|
|
|
|
this.beanFactory.registerBeanDefinition("testBean", beanDefinition); |
|
|
|
|
return RegisteredBean.of(this.beanFactory, "testBean"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|