/* * 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(); }