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