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 Parkinsonpackage org.mockito.listeners;
6e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
7e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.exceptions.PrintableInvocation;
8e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonimport org.mockito.invocation.DescribedInvocation;
9e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
10e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/**
11e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Represent a method call on a mock.
12e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson *
13e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * <p>
14e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson *     Contains the information on the mock, the location of the stub
15e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson *     the return value if it returned something (maybe null), or an
16e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson *     exception if one was thrown when the method was invoked.
17e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * </p>
18e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */
19e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinsonpublic interface MethodInvocationReport {
20e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    /**
21e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * The return type is deprecated, please assign the return value from this method
22e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * to the {@link DescribedInvocation} type. Sorry for inconvenience but we had to move
23e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * {@link PrintableInvocation} to better place to keep the API consistency.
24e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     *
25e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @return Information on the method call, never {@code null}
26e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     */
27e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    DescribedInvocation getInvocation();
28e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
29e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    /**
30e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @return The resulting value of the method invocation, may be <code>null</code>
31e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     */
32e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    Object getReturnedValue();
33e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
34e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    /**
35e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @return The throwable raised by the method invocation, maybe <code>null</code>
36e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     */
37e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    Throwable getThrowable();
38e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
39e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    /**
40e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @return <code>true</code> if an exception was raised, <code>false</code> otherwise
41e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     */
42e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    boolean threwException();
43e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson
44e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    /**
45e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     * @return Location of the stub invocation
46e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson     */
47e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson    String getLocationOfStubbing();
48e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson}
49