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