|
36 | 36 | import org.springframework.context.annotation.Configuration;
|
37 | 37 | import org.springframework.context.annotation.Primary;
|
38 | 38 | import org.springframework.core.Ordered;
|
| 39 | +import org.springframework.core.ResolvableType; |
39 | 40 | import org.springframework.test.util.ReflectionTestUtils;
|
40 | 41 | import org.springframework.util.Assert;
|
41 | 42 |
|
@@ -84,6 +85,31 @@ void canMockBeanProducedByFactoryBeanWithObjectTypeAttribute() {
|
84 | 85 | assertThat(Mockito.mockingDetails(context.getBean("beanToBeMocked")).isMock()).isTrue();
|
85 | 86 | }
|
86 | 87 |
|
| 88 | + @Test |
| 89 | + void canMockBeanProducedByFactoryBeanWithClassAttribute() { |
| 90 | + AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); |
| 91 | + MockitoPostProcessor.register(context); |
| 92 | + RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition(TestFactoryBean.class); |
| 93 | + factoryBeanDefinition.setAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE, SomeInterface.class); |
| 94 | + context.registerBeanDefinition("beanToBeMocked", factoryBeanDefinition); |
| 95 | + context.register(MockedFactoryBean.class); |
| 96 | + context.refresh(); |
| 97 | + assertThat(Mockito.mockingDetails(context.getBean("beanToBeMocked")).isMock()).isTrue(); |
| 98 | + } |
| 99 | + |
| 100 | + @Test |
| 101 | + void canMockBeanProducedByFactoryBeanWithResolvableTypeAttribute() { |
| 102 | + AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); |
| 103 | + MockitoPostProcessor.register(context); |
| 104 | + RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition(TestFactoryBean.class); |
| 105 | + ResolvableType objectType = ResolvableType.forClass(SomeInterface.class); |
| 106 | + factoryBeanDefinition.setAttribute(FactoryBean.OBJECT_TYPE_ATTRIBUTE, objectType); |
| 107 | + context.registerBeanDefinition("beanToBeMocked", factoryBeanDefinition); |
| 108 | + context.register(MockedFactoryBean.class); |
| 109 | + context.refresh(); |
| 110 | + assertThat(Mockito.mockingDetails(context.getBean("beanToBeMocked")).isMock()).isTrue(); |
| 111 | + } |
| 112 | + |
87 | 113 | @Test
|
88 | 114 | void canMockPrimaryBean() {
|
89 | 115 | AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
|
0 commit comments