1/* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5package org.mockito.invocation; 6 7import org.mockito.Incubating; 8 9/** 10 * A method call on a mock object. Contains all information and state needed for the Mockito framework to operate. 11 * This API might be useful for developers who extend Mockito. 12 * <p> 13 * The javadoc does not have lots of examples or documentation because its audience is different. 14 * Vast majority of users don't need to use the Invocation. It's mostly useful for other framework authors 15 * that extend Mockito. 16 * 17 * @since 1.9.5 18 */ 19@Incubating 20public interface Invocation extends InvocationOnMock, DescribedInvocation { 21 22 /** 23 * @return whether the invocation has been already verified. 24 * Needed for {@link org.mockito.Mockito#verifyNoMoreInteractions(Object...)} 25 */ 26 boolean isVerified(); 27 28 /** 29 * @return the sequence number of the Invocation. Useful to determine the order of invocations. 30 * Used by verification in order. 31 */ 32 int getSequenceNumber(); 33 34 /** 35 * @return the location in code of this invocation. 36 */ 37 Location getLocation(); 38 39 /** 40 * Returns unprocessed arguments whereas {@link #getArguments()} returns 41 * arguments already processed (e.g. varargs expended, etc.). 42 * 43 * @return unprocessed arguments, exactly as provided to this invocation. 44 */ 45 Object[] getRawArguments(); 46 47 /** 48 * Marks this invocation as verified so that it will not cause verification error at 49 * {@link org.mockito.Mockito#verifyNoMoreInteractions(Object...)} 50 */ 51 void markVerified(); 52 53 /** 54 * @return the stubbing information for this invocation. May return null - this means 55 * the invocation was not stubbed. 56 */ 57 StubInfo stubInfo(); 58 59 /** 60 * Marks this invocation as stubbed. 61 * 62 * @param stubInfo the information about stubbing. 63 */ 64 void markStubbed(StubInfo stubInfo); 65 66 /** 67 * Informs if the invocation participates in verify-no-more-invocations or verification in order. 68 * 69 * @return whether this invocation should be ignored for the purposes of 70 * verify-no-more-invocations or verification in order. 71 */ 72 boolean isIgnoredForVerification(); 73 74 /** 75 * Configures this invocation to be ignored for verify-no-more-invocations or verification in order. 76 * See also {@link #isIgnoredForVerification()} 77 */ 78 void ignoreForVerification(); 79} 80