1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/* 2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Copyright (c) 2007 Mockito contributors 3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * This program is made available under the terms of the MIT License. 4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 5e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpackage org.mockito.mock; 7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.Incubating; 9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.listeners.InvocationListener; 10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.stubbing.Answer; 11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport java.util.List; 13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport java.util.Set; 14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/** 16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Informs about the mock settings. An immutable view of {@link org.mockito.MockSettings}. 17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson@Incubating 19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic interface MockCreationSettings<T> { 20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Mocked type. An interface or class the mock should implement / extend. 23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson Class<T> getTypeToMock(); 25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * the extra interfaces the mock object should implement. 28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson Set<Class> getExtraInterfaces(); 30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * the name of this mock, as printed on verification errors; see {@link org.mockito.MockSettings#name}. 33e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 34e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson MockName getMockName(); 35e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 36e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 37e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * the default answer for this mock, see {@link org.mockito.MockSettings#defaultAnswer}. 38e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 39e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson Answer getDefaultAnswer(); 40e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 41e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 42e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * the spied instance - needed for spies. 43e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 44e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson Object getSpiedInstance(); 45e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 46e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 47e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * if the mock is serializable, see {@link org.mockito.MockSettings#serializable}. 48e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 49e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson boolean isSerializable(); 50e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 51e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 52e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Whether the mock is only for stubbing, i.e. does not remember 53e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * parameters on its invocation and therefore cannot 54e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * be used for verification 55e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 56e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson boolean isStubOnly(); 57e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson 58e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson /** 59e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * the invocation listeners attached to this mock, see {@link org.mockito.MockSettings#invocationListeners}. 60e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 61e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson List<InvocationListener> getInvocationListeners(); 62e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson}