public class PropertyAndSetterInjection extends MockInjectionStrategy
Algorithm :
for each field annotated by @InjectMocks
Note: If the field needing injection is not initialized, the strategy tries to create one using a no-arg constructor of the field type.
Modifier and Type | Field and Description |
---|---|
private MockCandidateFilter |
mockCandidateFilter |
private ListUtil.Filter<java.lang.reflect.Field> |
notFinalOrStatic |
Constructor and Description |
---|
PropertyAndSetterInjection() |
Modifier and Type | Method and Description |
---|---|
private FieldInitializationReport |
initializeInjectMocksField(java.lang.reflect.Field field,
java.lang.Object fieldOwner) |
private boolean |
injectMockCandidates(java.lang.Class<?> awaitingInjectionClazz,
java.lang.Object injectee,
java.util.Set<java.lang.Object> mocks) |
private boolean |
injectMockCandidatesOnFields(java.util.Set<java.lang.Object> mocks,
java.lang.Object injectee,
boolean injectionOccurred,
java.util.List<java.lang.reflect.Field> orderedCandidateInjecteeFields) |
private java.util.List<java.lang.reflect.Field> |
orderedInstanceFieldsFrom(java.lang.Class<?> awaitingInjectionClazz) |
boolean |
processInjection(java.lang.reflect.Field injectMocksField,
java.lang.Object injectMocksFieldOwner,
java.util.Set<java.lang.Object> mockCandidates)
Process actual injection.
|
nop, process, thenTry
private final MockCandidateFilter mockCandidateFilter
private final ListUtil.Filter<java.lang.reflect.Field> notFinalOrStatic
public boolean processInjection(java.lang.reflect.Field injectMocksField, java.lang.Object injectMocksFieldOwner, java.util.Set<java.lang.Object> mockCandidates)
MockInjectionStrategy
Don't call this method directly, instead call MockInjectionStrategy.process(Field, Object, Set)
processInjection
in class MockInjectionStrategy
injectMocksField
- Field needing injectioninjectMocksFieldOwner
- Field owner instance.mockCandidates
- Pool of mocks to inject.true
if injection occurred, false
otherwiseprivate FieldInitializationReport initializeInjectMocksField(java.lang.reflect.Field field, java.lang.Object fieldOwner)
private boolean injectMockCandidates(java.lang.Class<?> awaitingInjectionClazz, java.lang.Object injectee, java.util.Set<java.lang.Object> mocks)
private boolean injectMockCandidatesOnFields(java.util.Set<java.lang.Object> mocks, java.lang.Object injectee, boolean injectionOccurred, java.util.List<java.lang.reflect.Field> orderedCandidateInjecteeFields)
private java.util.List<java.lang.reflect.Field> orderedInstanceFieldsFrom(java.lang.Class<?> awaitingInjectionClazz)