…lines 1–12 unchanged (12 lines)
13import org.mockito.Spy;
14import org.mockito.configuration.AnnotationEngine;
15import org.mockito.exceptions.Reporter;
16import org.mockito.exceptions.base.MockitoException;
17import org.mockito.internal.util.MockUtil;
18
19import static org.mockito.Mockito.withSettings;
20
21@SuppressWarnings({"unchecked"})
22public class SpyAnnotationEngine implements AnnotationEngine {
23
24 public Object createMockFor(Annotation annotation, Field field) {
25 return null;
…lines 26–43 unchanged (18 lines)
44
45 }
46 if (new MockUtil().isMock(instance)) {
47 // instance has been spied earlier
48 Mockito.reset(instance);
49 } else {
50 field.set(testClass, Mockito.mock(instance.getClass(), withSettings()
51 .spiedInstance(instance)
52 .defaultAnswer(Mockito.CALLS_REAL_METHODS)
53 .name(field.getName())));
54 }
55 } catch (IllegalAccessException e) {
56 throw new MockitoException("Problems initiating spied field " + field.getName(), e);
57 } finally {
58 field.setAccessible(wasAccessible);
59 }
…lines 60–73 unchanged (14 lines)