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
@@ -73,7 +74,7 @@ void cannotMockMultipleQualifiedBeans() {
73
74
}
74
75
75
76
@ Test
76
- void canMockBeanProducedByFactoryBeanWithObjectTypeAttribute () {
77
+ void canMockBeanProducedByFactoryBeanWithStringObjectTypeAttribute () {
77
78
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext ();
78
79
MockitoPostProcessor .register (context );
79
80
RootBeanDefinition factoryBeanDefinition = new RootBeanDefinition (TestFactoryBean .class );
@@ -84,6 +85,31 @@ void canMockBeanProducedByFactoryBeanWithObjectTypeAttribute() {
84
85
assertThat (Mockito .mockingDetails (context .getBean ("beanToBeMocked" )).isMock ()).isTrue ();
85
86
}
86
87
88
+ @ Test
89
+ void canMockBeanProducedByFactoryBeanWithClassObjectTypeAttribute () {
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 canMockBeanProducedByFactoryBeanWithResolvableTypeObjectTypeAttribute () {
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