private FieldInitializationReport initializeInjectMocksField(Field field, Object fieldOwner) { try { return new FieldInitializer(fieldOwner, field).initialize(); } catch (MockitoException e) { if(e.getCause() instanceof InvocationTargetException) { Throwable realCause = e.getCause().getCause(); throw fieldInitialisationThrewException(field, realCause); } throw cannotInitializeForInjectMocksAnnotation(field.getName(),e.getMessage()); } }
/** * Initialize field if not initialized and return the actual instance. * * @return Actual field instance. */ public FieldInitializationReport initialize() { final AccessibilityChanger changer = new AccessibilityChanger(); changer.enableAccess(field); try { return acquireFieldInstance(); } catch(IllegalAccessException e) { throw new MockitoException("Problems initializing field '" + field.getName() + "' of type '" + field.getType().getSimpleName() + "'", e); } finally { changer.safelyDisableAccess(field); } }
private FieldInitializer(Object fieldOwner, Field field, ConstructorInstantiator instantiator) { if(new FieldReader(fieldOwner, field).isNull()) { checkNotLocal(field); checkNotInner(field); checkNotInterface(field); checkNotEnum(field); checkNotAbstract(field); } this.fieldOwner = fieldOwner; this.field = field; this.instantiator = instantiator; }
private FieldInitializer(Object fieldOwner, Field field, ConstructorInstantiator instantiator) { if(new FieldReader(fieldOwner, field).isNull()) { checkNotLocal(field); checkNotInner(field); checkNotInterface(field); checkNotAbstract(field); } this.fieldOwner = fieldOwner; this.field = field; this.instantiator = instantiator; }
public boolean processInjection(Field field, Object fieldOwner, Set<Object> mockCandidates) { try { SimpleArgumentResolver simpleArgumentResolver = new SimpleArgumentResolver(mockCandidates); FieldInitializationReport report = new FieldInitializer(fieldOwner, field, simpleArgumentResolver).initialize(); return report.fieldWasInitializedUsingContructorArgs(); } catch (MockitoException e) { if(e.getCause() instanceof InvocationTargetException) { Throwable realCause = e.getCause().getCause(); throw fieldInitialisationThrewException(field, realCause); } // other causes should be fine return false; } }
/** * Initialize field if not initialized and return the actual instance. * * @return Actual field instance. */ public FieldInitializationReport initialize() { final AccessibilityChanger changer = new AccessibilityChanger(); changer.enableAccess(field); try { return acquireFieldInstance(); } catch(IllegalAccessException e) { throw new MockitoException("Problems initializing field '" + field.getName() + "' of type '" + field.getType().getSimpleName() + "'", e); } finally { changer.safelyDisableAccess(field); } }
private FieldInitializer(Object fieldOwner, Field field, ConstructorInstantiator instantiator) { if(new FieldReader(fieldOwner, field).isNull()) { checkNotLocal(field); checkNotInner(field); checkNotInterface(field); checkNotAbstract(field); } this.fieldOwner = fieldOwner; this.field = field; this.instantiator = instantiator; }
private FieldInitializationReport initializeInjectMocksField(Field field, Object fieldOwner) { FieldInitializationReport report = null; try { report = new FieldInitializer(fieldOwner, field).initialize(); } catch (MockitoException e) { if(e.getCause() instanceof InvocationTargetException) { Throwable realCause = e.getCause().getCause(); new Reporter().fieldInitialisationThrewException(field, realCause); } new Reporter().cannotInitializeForInjectMocksAnnotation(field.getName(), e); } return report; // never null }
/** * Initialize field if no initialized and return the actual instance. * * @return Actual field instance. */ public FieldInitializationReport initialize() { final AccessibilityChanger changer = new AccessibilityChanger(); changer.enableAccess(field); try { return acquireFieldInstance(); } catch(IllegalAccessException e) { throw new MockitoException("Problems initializing field '" + field.getName() + "' of type '" + field.getType().getSimpleName() + "'", e); } finally { changer.safelyDisableAccess(field); } }
public boolean processInjection(Field field, Object fieldOwner, Set<Object> mockCandidates) { try { SimpleArgumentResolver simpleArgumentResolver = new SimpleArgumentResolver(mockCandidates); FieldInitializationReport report = new FieldInitializer(fieldOwner, field, simpleArgumentResolver).initialize(); return report.fieldWasInitializedUsingContructorArgs(); } catch (MockitoException e) { if(e.getCause() instanceof InvocationTargetException) { Throwable realCause = e.getCause().getCause(); new Reporter().fieldInitialisationThrewException(field, realCause); } // other causes should be fine return false; } }
Object instance = null; try { FieldInitializationReport report = new FieldInitializer(testInstance, field).initialize(); instance = report.fieldInstance(); } catch (MockitoException e) {
public boolean processInjection(Field field, Object fieldOwner, Set<Object> mockCandidates) { try { SimpleArgumentResolver simpleArgumentResolver = new SimpleArgumentResolver(mockCandidates); FieldInitializationReport report = new FieldInitializer(fieldOwner, field, simpleArgumentResolver).initialize(); return report.fieldWasInitialized(); } catch (MockitoException e) { if(e.getCause() instanceof InvocationTargetException) { Throwable realCause = e.getCause().getCause(); new Reporter().fieldInitialisationThrewException(field, realCause); } return false; } }
Object instance = null; try { FieldInitializationReport report = new FieldInitializer(testInstance, field).initialize(); instance = report.fieldInstance(); } catch (MockitoException e) {
public boolean processInjection(Field field, Object fieldOwner, Set<Object> mockCandidates) { Set<Object> mocksToBeInjected = new HashSet<Object>(mockCandidates); FieldInitializationReport report = null; try { report = new FieldInitializer(fieldOwner, field).initialize(); } catch (MockitoException e) { if(e.getCause() instanceof InvocationTargetException) { Throwable realCause = e.getCause().getCause(); new Reporter().fieldInitialisationThrewException(field, realCause); } new Reporter().cannotInitializeForInjectMocksAnnotation(field.getName(), e); } // for each field in the class hierarchy boolean injectionOccurred = false; Class<?> fieldClass = report.fieldClass(); Object fieldInstanceNeedingInjection = report.fieldInstance(); while (fieldClass != Object.class) { injectionOccurred |= injectMockCandidate(fieldClass, mocksToBeInjected, fieldInstanceNeedingInjection); fieldClass = fieldClass.getSuperclass(); } return injectionOccurred; }