1/* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5package org.mockito.internal.configuration; 6 7import org.mockito.Mock; 8import org.mockito.MockSettings; 9import org.mockito.Mockito; 10 11import java.lang.reflect.Field; 12 13/** 14 * Instantiates a mock on a field annotated by {@link Mock} 15 */ 16public class MockAnnotationProcessor implements FieldAnnotationProcessor<Mock> { 17 public Object process(Mock annotation, Field field) { 18 MockSettings mockSettings = Mockito.withSettings(); 19 if (annotation.extraInterfaces().length > 0) { // never null 20 mockSettings.extraInterfaces(annotation.extraInterfaces()); 21 } 22 if ("".equals(annotation.name())) { 23 mockSettings.name(field.getName()); 24 } else { 25 mockSettings.name(annotation.name()); 26 } 27 if(annotation.serializable()){ 28 mockSettings.serializable(); 29 } 30 31 // see @Mock answer default value 32 mockSettings.defaultAnswer(annotation.answer().get()); 33 return Mockito.mock(field.getType(), mockSettings); 34 } 35} 36