1
2
3
4
5 package mockit.integration.springframework;
6
7 import edu.umd.cs.findbugs.annotations.NonNull;
8 import edu.umd.cs.findbugs.annotations.Nullable;
9
10 import mockit.Injectable;
11 import mockit.Invocation;
12 import mockit.Mock;
13 import mockit.MockUp;
14 import mockit.Tested;
15 import mockit.internal.injection.BeanExporter;
16 import mockit.internal.injection.TestedClassInstantiations;
17 import mockit.internal.state.TestRun;
18
19 import org.springframework.beans.factory.support.AbstractBeanFactory;
20 import org.springframework.beans.factory.support.DefaultListableBeanFactory;
21
22
23
24
25
26
27
28
29
30
31
32
33 public final class FakeBeanFactory extends MockUp<DefaultListableBeanFactory> {
34 @Mock
35 public static Object getBean(@NonNull Invocation invocation, @NonNull String name) {
36 TestedClassInstantiations testedClasses = TestRun.getTestedClassInstantiations();
37
38 if (testedClasses == null) {
39 return invocation.proceed();
40 }
41
42 BeanExporter beanExporter = testedClasses.getBeanExporter();
43 return BeanLookup.getBean(beanExporter, name);
44 }
45
46 @Mock
47 public static <T> T getBean(@NonNull Invocation invocation, @NonNull String name, @Nullable Class<T> requiredType) {
48 TestedClassInstantiations testedClasses = TestRun.getTestedClassInstantiations();
49
50 if (testedClasses == null) {
51 return invocation.proceed();
52 }
53
54 BeanExporter beanExporter = testedClasses.getBeanExporter();
55 return BeanLookup.getBean(beanExporter, name, requiredType);
56 }
57
58 @Mock
59 public static <T> T getBean(@NonNull Invocation invocation, @NonNull Class<T> requiredType) {
60 TestedClassInstantiations testedClasses = TestRun.getTestedClassInstantiations();
61
62 if (testedClasses == null) {
63 return invocation.proceed();
64 }
65
66 BeanExporter beanExporter = testedClasses.getBeanExporter();
67 return BeanLookup.getBean(beanExporter, requiredType);
68 }
69 }