Home | History | Annotate | Download | only in verification
      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 /**
     12  * VerificationAfterDelay is a {@link VerificationMode} that allows combining existing verification modes with an initial delay, e.g.
     13  * <pre class="code"><code class="java">
     14  * verify(mock, after(100).atMost(5)).foo();
     15  *
     16  * verify(mock, after(100).never()).bar();
     17  *
     18  * verify(mock, after(200).atLeastOnce()).baz();
     19  * </code></pre>
     20  *
     21  * This is similar to {@link VerificationWithTimeout timeout()} except the assertion will not terminate until either the condition is
     22  * definitively failed, or the full time has elapsed (whereas timeout() will also stop if the conditions is true at any point, as is
     23  * typically the case with never() etc initially).
     24  *
     25  * <p>
     26  * See examples in javadoc for {@link Mockito#verify(Object, VerificationMode)}
     27  *
     28  */
     29 public interface VerificationAfterDelay extends VerificationMode {
     30 
     31     /**
     32      * Verifies that there are exactly N invocations during the given period. This will wait the full period given.
     33      */
     34     VerificationMode times(int wantedNumberOfInvocations);
     35 
     36     /**
     37      * Allows verification that there are no invocations at any point during the given period. This will wait the
     38      * full period given, unless an invocation occurs (in which case there will be immediate failure)
     39      */
     40     VerificationMode never();
     41 
     42     /**
     43      * Verifies that there is at least 1 invocation during the given period. This will wait the full period given.
     44      */
     45     VerificationMode atLeastOnce();
     46 
     47     /**
     48      * Verifies that there is are least N invocations during the given period. This will wait the full period given.
     49      */
     50     VerificationMode atLeast(int minNumberOfInvocations);
     51 
     52     /**
     53      * Verifies that there is are most N invocations during the given period. This will wait the full period given,
     54      * unless too many invocations occur (in which case there will be an immediate failure)
     55      */
     56     VerificationMode atMost(int maxNumberOfInvocations);
     57 
     58     /**
     59      * Verifies that there the given method is invoked and is the only method invoked. This will wait the full
     60      * period given, unless another method is invoked (in which case there will be an immediate failure)
     61      */
     62     VerificationMode only();
     63 
     64 }
     65