|
|
@ -36,6 +36,7 @@ import org.springframework.context.annotation.Bean;
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
import org.springframework.context.annotation.Primary;
|
|
|
|
import org.springframework.context.annotation.Primary;
|
|
|
|
import org.springframework.core.Ordered;
|
|
|
|
import org.springframework.core.Ordered;
|
|
|
|
|
|
|
|
import org.springframework.core.ResolvableType;
|
|
|
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
|
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
|
|
import org.springframework.util.Assert;
|
|
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
|
|
|
|
|
@ -73,7 +74,7 @@ class MockitoPostProcessorTests {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
void canMockBeanProducedByFactoryBeanWithObjectTypeAttribute() {
|
|
|
|
void canMockBeanProducedByFactoryBeanWithStringObjectTypeAttribute() {
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
|
|
|
MockitoPostProcessor.register(context);
|
|
|
|
MockitoPostProcessor.register(context);
|
|
|
|
RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition(TestFactoryBean.class);
|
|
|
|
RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition(TestFactoryBean.class);
|
|
|
@ -84,6 +85,31 @@ class MockitoPostProcessorTests {
|
|
|
|
assertThat(Mockito.mockingDetails(context.getBean("beanToBeMocked")).isMock()).isTrue();
|
|
|
|
assertThat(Mockito.mockingDetails(context.getBean("beanToBeMocked")).isMock()).isTrue();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
void canMockBeanProducedByFactoryBeanWithClassObjectTypeAttribute() {
|
|
|
|
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
|
|
|
|
|
|
|
MockitoPostProcessor.register(context);
|
|
|
|
|
|
|
|
RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition(TestFactoryBean.class);
|
|
|
|
|
|
|
|
factoryBeanDefinition.setAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE, SomeInterface.class);
|
|
|
|
|
|
|
|
context.registerBeanDefinition("beanToBeMocked", factoryBeanDefinition);
|
|
|
|
|
|
|
|
context.register(MockedFactoryBean.class);
|
|
|
|
|
|
|
|
context.refresh();
|
|
|
|
|
|
|
|
assertThat(Mockito.mockingDetails(context.getBean("beanToBeMocked")).isMock()).isTrue();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
|
|
|
void canMockBeanProducedByFactoryBeanWithResolvableTypeObjectTypeAttribute() {
|
|
|
|
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
|
|
|
|
|
|
|
MockitoPostProcessor.register(context);
|
|
|
|
|
|
|
|
RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition(TestFactoryBean.class);
|
|
|
|
|
|
|
|
ResolvableType objectType = ResolvableType.forClass(SomeInterface.class);
|
|
|
|
|
|
|
|
factoryBeanDefinition.setAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE, objectType);
|
|
|
|
|
|
|
|
context.registerBeanDefinition("beanToBeMocked", factoryBeanDefinition);
|
|
|
|
|
|
|
|
context.register(MockedFactoryBean.class);
|
|
|
|
|
|
|
|
context.refresh();
|
|
|
|
|
|
|
|
assertThat(Mockito.mockingDetails(context.getBean("beanToBeMocked")).isMock()).isTrue();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
void canMockPrimaryBean() {
|
|
|
|
void canMockPrimaryBean() {
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
|
|
|