blob: 0a4f533907322580a5ad1f501f0b53e35412a086 [file] [log] [blame]
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.verification;
import org.mockito.Mockito;
/**
* VerificationWithTimeout is a {@link VerificationMode} that allows combining existing verification modes with 'timeout'. E.g:
*
* <pre class="code"><code class="java">
* verify(mock, timeout(100).times(5)).foo();
*
* verify(mock, timeout(100).never()).bar();
*
* verify(mock, timeout(200).atLeastOnce()).baz();
* </code></pre>
*
* This is similar to {@link VerificationAfterDelay after()} except this assertion will immediately pass if it becomes true at any point,
* whereas after() will wait the full period. Assertions which are consistently expected to be initially true and potentially become false
* are deprecated below, and after() should be used instead.
*
* <p>
* See examples in javadoc for {@link Mockito#verify(Object, VerificationMode)}
*/
public interface VerificationWithTimeout extends VerificationMode {
/**
* Allows verifying exact number of invocations within given timeout
* <pre class="code"><code class="java">
* verify(mock, timeout(100).times(2)).someMethod("some arg");
* </code></pre>
*
* See examples in javadoc for {@link Mockito} class
*
* @param wantedNumberOfInvocations wanted number of invocations
*
* @return verification mode
*/
VerificationMode times(int wantedNumberOfInvocations);
/**
* Allows at-least-once verification within given timeout. E.g:
* <pre class="code"><code class="java">
* verify(mock, timeout(100).atLeastOnce()).someMethod("some arg");
* </code></pre>
* Alias to atLeast(1)
* <p>
* See examples in javadoc for {@link Mockito} class
*
* @return verification mode
*/
VerificationMode atLeastOnce();
/**
* Allows at-least-x verification within given timeout. E.g:
* <pre class="code"><code class="java">
* verify(mock, timeout(100).atLeast(3)).someMethod("some arg");
* </code></pre>
*
* See examples in javadoc for {@link Mockito} class
*
* @param minNumberOfInvocations minimum number of invocations
*
* @return verification mode
*/
VerificationMode atLeast(int minNumberOfInvocations);
/**
* Allows checking if given method was the only one invoked. E.g:
* <pre class="code"><code class="java">
* verify(mock, only()).someMethod();
* //above is a shorthand for following 2 lines of code:
* verify(mock).someMethod();
* verifyNoMoreInteractions(mock);
* </code></pre>
*
* <p>
* See also {@link Mockito#verifyNoMoreInteractions(Object...)}
* <p>
* See examples in javadoc for {@link Mockito} class
*
* @return verification mode
*/
VerificationMode only();
}