|
|
|
@ -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(); |
|
|
|
|