• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2007 Mockito contributors
3  * This program is made available under the terms of the MIT License.
4  */
5 
6 package org.mockito.verification;
7 
8 import org.mockito.Mockito;
9 
10 /**
11  * VerificationWithTimeout is a {@link VerificationMode} that allows combining existing verification modes with 'timeout'. E.g:
12  *
13  * <pre class="code"><code class="java">
14  * verify(mock, timeout(100).times(5)).foo();
15  *
16  * verify(mock, timeout(100).never()).bar();
17  *
18  * verify(mock, timeout(200).atLeastOnce()).baz();
19  * </code></pre>
20  *
21  * This is similar to {@link VerificationAfterDelay after()} except this assertion will immediately pass if it becomes true at any point,
22  * whereas after() will wait the full period. Assertions which are consistently expected to be initially true and potentially become false
23  * are deprecated below, and after() should be used instead.
24  *
25  * <p>
26  * See examples in javadoc for {@link Mockito#verify(Object, VerificationMode)}
27  */
28 public interface VerificationWithTimeout extends VerificationMode {
29 
30     /**
31      * Allows verifying exact number of invocations within given timeout
32      * <pre class="code"><code class="java">
33      *   verify(mock, timeout(100).times(2)).someMethod("some arg");
34      * </code></pre>
35      *
36      * See examples in javadoc for {@link Mockito} class
37      *
38      * @param wantedNumberOfInvocations wanted number of invocations
39      *
40      * @return verification mode
41      */
times(int wantedNumberOfInvocations)42     VerificationMode times(int wantedNumberOfInvocations);
43 
44     /**
45      * Allows at-least-once verification within given timeout. E.g:
46      * <pre class="code"><code class="java">
47      *   verify(mock, timeout(100).atLeastOnce()).someMethod("some arg");
48      * </code></pre>
49      * Alias to atLeast(1)
50      * <p>
51      * See examples in javadoc for {@link Mockito} class
52      *
53      * @return verification mode
54      */
atLeastOnce()55     VerificationMode atLeastOnce();
56 
57     /**
58      * Allows at-least-x verification within given timeout. E.g:
59      * <pre class="code"><code class="java">
60      *   verify(mock, timeout(100).atLeast(3)).someMethod("some arg");
61      * </code></pre>
62      *
63      * See examples in javadoc for {@link Mockito} class
64      *
65      * @param minNumberOfInvocations minimum number of invocations
66      *
67      * @return verification mode
68      */
atLeast(int minNumberOfInvocations)69     VerificationMode atLeast(int minNumberOfInvocations);
70 
71     /**
72      * Allows checking if given method was the only one invoked. E.g:
73      * <pre class="code"><code class="java">
74      *   verify(mock, only()).someMethod();
75      *   //above is a shorthand for following 2 lines of code:
76      *   verify(mock).someMethod();
77      *   verifyNoMoreInteractions(mock);
78      * </code></pre>
79      *
80      * <p>
81      * See also {@link Mockito#verifyNoMoreInteractions(Object...)}
82      * <p>
83      * See examples in javadoc for {@link Mockito} class
84      *
85      * @return verification mode
86      */
only()87     VerificationMode only();
88 }
89