/* * Copyright (c) 2007 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.mockito.internal.configuration; import org.mockito.*; import org.mockito.configuration.AnnotationEngine; import org.mockito.internal.configuration.injection.scanner.InjectMocksScanner; import org.mockito.internal.configuration.injection.scanner.MockScanner; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.util.HashSet; import java.util.Set; import static org.mockito.internal.util.collections.Sets.newMockSafeHashSet; /** * See {@link MockitoAnnotations} */ @SuppressWarnings({"deprecation", "unchecked"}) public class InjectingAnnotationEngine implements AnnotationEngine { private AnnotationEngine delegate = new DefaultAnnotationEngine(); private AnnotationEngine spyAnnotationEngine = new SpyAnnotationEngine(); /*** * Create a mock using {@link DefaultAnnotationEngine} * * @see org.mockito.internal.configuration.DefaultAnnotationEngine * @see org.mockito.configuration.AnnotationEngine#createMockFor(java.lang.annotation.Annotation, java.lang.reflect.Field) */ @Deprecated public Object createMockFor(Annotation annotation, Field field) { return delegate.createMockFor(annotation, field); } /** * Process the fields of the test instance and create Mocks, Spies, Captors and inject them on fields * annotated @InjectMocks. * *
* This code process the test class and the super classes. *
* See examples in javadoc for {@link MockitoAnnotations} class.
*
* @param testClassInstance
* Test class, usually this
*/
public void injectMocks(final Object testClassInstance) {
Class> clazz = testClassInstance.getClass();
Set