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.invocation;
7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport java.io.Serializable;
9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport java.lang.reflect.Method;
10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/**
12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * An invocation on a mock
13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p>
14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * A placeholder for mock, the method that was called and the arguments that were passed.
15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */
16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic interface InvocationOnMock extends Serializable {
17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    /**
19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * returns the mock object
20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     *
21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @return mock object
22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     */
23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    Object getMock();
24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    /**
26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * returns the method
27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     *
28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @return method
29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     */
30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    Method getMethod();
31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    /**
33e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * returns arguments passed to the method
34e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     *
35e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @return arguments
36e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     */
37e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    Object[] getArguments();
38e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
39e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    /**
40e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * calls real method
41e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * <p>
42e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * <b>Warning:</b> depending on the real implementation it might throw exceptions
43e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     *
44e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @return whatever the real method returns / throws
45e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @throws Throwable in case real method throws
46e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     */
47e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    Object callRealMethod() throws Throwable;
48e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson}
49