|
5 | 5 | package org.mockito.testng; |
6 | 6 |
|
7 | 7 | import java.lang.annotation.Annotation; |
| 8 | +import java.lang.reflect.Field; |
| 9 | +import java.util.ArrayList; |
8 | 10 | import java.util.Arrays; |
9 | 11 | import java.util.HashMap; |
| 12 | +import java.util.List; |
10 | 13 | import java.util.Map; |
11 | 14 | import java.util.Optional; |
12 | 15 | import java.util.stream.Stream; |
13 | 16 |
|
14 | 17 | import org.mockito.InjectMocks; |
15 | 18 | import org.mockito.Mockito; |
16 | 19 | import org.mockito.MockitoSession; |
17 | | -import org.mockito.internal.util.reflection.Fields; |
18 | 20 | import org.mockito.internal.util.reflection.InstanceField; |
19 | 21 | import org.mockito.quality.Strictness; |
20 | 22 | import org.testng.IInvokedMethod; |
@@ -91,7 +93,7 @@ public void beforeInvocation(IInvokedMethod method, ITestResult testResult) { |
91 | 93 | // in order to restore state before next tests |
92 | 94 | // https://github.com/mockito/mockito-testng/issues/28 |
93 | 95 | injectMocksFieldsValues.computeIfAbsent(testResult.getInstance(), testInstance -> |
94 | | - Fields.allDeclaredFieldsOf(testInstance).instanceFields() |
| 96 | + allDeclaredFieldsOf(testInstance) |
95 | 97 | .stream() |
96 | 98 | .filter(field -> field.isAnnotatedBy(InjectMocks.class)) |
97 | 99 | .collect(HashMap::new, (m, v) -> m.put(v, v.read()), HashMap::putAll)); |
@@ -157,4 +159,14 @@ <A extends Annotation> Optional<A> findAnnotation(ITestResult testResult, Class< |
157 | 159 |
|
158 | 160 | return Optional.empty(); |
159 | 161 | } |
| 162 | + |
| 163 | + private static List<InstanceField> allDeclaredFieldsOf(Object testInstance) { |
| 164 | + List<InstanceField> result = new ArrayList<>(); |
| 165 | + for (Class<?> clazz = testInstance.getClass(); clazz != Object.class; clazz = clazz.getSuperclass()) { |
| 166 | + for (Field field : clazz.getDeclaredFields()) { |
| 167 | + result.add(new InstanceField(field, testInstance)); |
| 168 | + } |
| 169 | + } |
| 170 | + return result; |
| 171 | + } |
160 | 172 | } |
0 commit comments