Skip to content

Commit 373f0bc

Browse files
reinhapaslawekjaranowski
authored andcommitted
Fixes #135 by replacing mockito internal functions
Signed-off-by: Patrick Reinhart <[email protected]>
1 parent 078481e commit 373f0bc

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

src/main/java/org/simplify4u/slf4jmock/mockito/LoggerAnnotationEngine.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.mockito.Mockito;
2222
import org.mockito.Spy;
2323
import org.mockito.internal.configuration.InjectingAnnotationEngine;
24-
import org.mockito.internal.util.reflection.Fields;
2524
import org.mockito.internal.util.reflection.InstanceField;
2625
import org.simplify4u.slf4jmock.LoggerMock;
2726
import org.simplify4u.slf4jmock.MDCMock;
@@ -30,6 +29,8 @@
3029
import org.slf4j.Logger;
3130
import org.slf4j.spi.MDCAdapter;
3231

32+
import java.lang.reflect.Field;
33+
import java.util.ArrayList;
3334
import java.util.List;
3435
import java.util.Map;
3536
import java.util.Optional;
@@ -66,9 +67,19 @@ public AutoCloseable process(Class<?> clazz, Object testInstance) {
6667
};
6768
}
6869

70+
private static List<InstanceField> allDeclaredFieldsOf(Object testInstance) {
71+
List<InstanceField> result = new ArrayList<>();
72+
for (Class<?> clazz = testInstance.getClass(); clazz != Object.class; clazz = clazz.getSuperclass()) {
73+
for (Field field : clazz.getDeclaredFields()) {
74+
result.add(new InstanceField(field, testInstance));
75+
}
76+
}
77+
return result;
78+
}
79+
6980
private static InstanceField prepareSpyLogger(Object testInstance) {
7081

71-
List<InstanceField> spyMocks = Fields.allDeclaredFieldsOf(testInstance).instanceFields()
82+
List<InstanceField> spyMocks = allDeclaredFieldsOf(testInstance)
7283
.stream()
7384
.filter(field -> field.jdkField().getType() == Logger.class)
7485
.filter(field -> field.isAnnotatedBy(Spy.class))
@@ -87,7 +98,7 @@ private static InstanceField prepareSpyLogger(Object testInstance) {
8798
}
8899

89100
private static Optional<MDCAdapter> findMDCMock(Object testInstance) {
90-
List<InstanceField> mdcFields = Fields.allDeclaredFieldsOf(testInstance).instanceFields()
101+
List<InstanceField> mdcFields = allDeclaredFieldsOf(testInstance)
91102
.stream()
92103
.filter(instanceField -> instanceField.jdkField().getType() == MDCAdapter.class)
93104
.filter(instanceField -> instanceField.isAnnotatedBy(Mock.class))
@@ -107,15 +118,15 @@ private static Optional<MDCAdapter> findMDCMock(Object testInstance) {
107118
}
108119

109120
private static List<InstanceField> findClassUnderTest(Object testInstance) {
110-
return Fields.allDeclaredFieldsOf(testInstance).instanceFields()
121+
return allDeclaredFieldsOf(testInstance)
111122
.stream()
112123
.filter(instanceField -> instanceField.isAnnotatedBy(InjectMocks.class))
113124
.collect(Collectors.toList());
114125
}
115126

116127
private static Map<String, Logger> findLoggersMocks(Object testInstance, InstanceField spyToSet) {
117128

118-
Map<String, Logger> loggerMocks = Fields.allDeclaredFieldsOf(testInstance).instanceFields()
129+
Map<String, Logger> loggerMocks = allDeclaredFieldsOf(testInstance)
119130
.stream()
120131
.filter(field -> field.jdkField().getType() == Logger.class)
121132
.filter(field -> field.isAnnotatedBy(Mock.class) || field.isAnnotatedBy(Spy.class))
@@ -137,8 +148,7 @@ private static Map<String, Logger> findLoggersMocks(Object testInstance, Instanc
137148

138149
List<InstanceField> loggersUnderTest = classesUnderTest.stream()
139150
.map(InstanceField::read)
140-
.map(Fields::allDeclaredFieldsOf)
141-
.map(Fields.InstanceFields::instanceFields)
151+
.map(LoggerAnnotationEngine::allDeclaredFieldsOf)
142152
.flatMap(List::stream)
143153
.filter(field -> field.jdkField().getType() == Logger.class)
144154
.collect(Collectors.toList());

0 commit comments

Comments
 (0)