/* * Copyright (c) 2007 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.mockito.verification; import org.mockito.exceptions.Reporter; import org.mockito.exceptions.misusing.FriendlyReminderException; import org.mockito.internal.verification.VerificationModeFactory; import org.mockito.internal.verification.VerificationWithTimeoutImpl; import org.mockito.internal.verification.api.VerificationData; /** * See the javadoc for {@link VerificationWithTimeout} *

* Typically, you won't use this class explicitly. Instead use timeout() method on Mockito class. * See javadoc for {@link VerificationWithTimeout} */ public class Timeout implements VerificationWithTimeout { VerificationWithTimeoutImpl impl; /** * See the javadoc for {@link VerificationWithTimeout} *

* Typically, you won't use this class explicitly. Instead use timeout() method on Mockito class. * See javadoc for {@link VerificationWithTimeout} */ public Timeout(int millis, VerificationMode delegate) { this(10, millis, delegate); } /** * See the javadoc for {@link VerificationWithTimeout} */ Timeout(int treshhold, int millis, VerificationMode delegate) { this.impl = new VerificationWithTimeoutImpl(treshhold, millis, delegate); } /** * See the javadoc for {@link VerificationWithTimeout} */ public void verify(VerificationData data) { impl.verify(data); } /** * See the javadoc for {@link VerificationWithTimeout} */ public VerificationMode atLeast(int minNumberOfInvocations) { return new Timeout(impl.getTreshhold(), impl.getTimeout(), VerificationModeFactory.atLeast(minNumberOfInvocations)); } /** * See the javadoc for {@link VerificationWithTimeout} */ public VerificationMode atLeastOnce() { return new Timeout(impl.getTreshhold(), impl.getTimeout(), VerificationModeFactory.atLeastOnce()); } /** * See the javadoc for {@link VerificationWithTimeout} */ public VerificationMode atMost(int maxNumberOfInvocations) { new Reporter().atMostShouldNotBeUsedWithTimeout(); return null; } /** * See the javadoc for {@link VerificationWithTimeout} */ public VerificationMode never() { return new Timeout(impl.getTreshhold(), impl.getTimeout(), VerificationModeFactory.times(0)); } /** * See the javadoc for {@link VerificationWithTimeout} */ public VerificationMode only() { return new Timeout(impl.getTreshhold(), impl.getTimeout(), VerificationModeFactory.only()); } /** * See the javadoc for {@link VerificationWithTimeout} */ public VerificationMode times(int wantedNumberOfInvocations) { return new Timeout(impl.getTreshhold(), impl.getTimeout(), VerificationModeFactory.times(wantedNumberOfInvocations)); } }