org.mockito.internal.verification.AtLeast Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of securemock Show documentation
Show all versions of securemock Show documentation
Libraries for Elasticsearch
The newest version!
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.verification;
import static org.mockito.internal.verification.checkers.AtLeastXNumberOfInvocationsChecker.checkAtLeastNumberOfInvocations;
import static org.mockito.internal.verification.checkers.MissingInvocationChecker.checkMissingInvocation;
import org.mockito.exceptions.base.MockitoException;
import org.mockito.internal.verification.api.VerificationData;
import org.mockito.internal.verification.api.VerificationDataInOrder;
import org.mockito.internal.verification.api.VerificationInOrderMode;
import org.mockito.verification.VerificationMode;
public class AtLeast implements VerificationInOrderMode, VerificationMode {
final int wantedCount;
public AtLeast(int wantedNumberOfInvocations) {
if (wantedNumberOfInvocations < 0) {
throw new MockitoException("Negative value is not allowed here");
}
this.wantedCount = wantedNumberOfInvocations;
}
@Override
public void verify(VerificationData data) {
if (wantedCount == 1) {
checkMissingInvocation(data.getAllInvocations(), data.getTarget());
}
checkAtLeastNumberOfInvocations(data.getAllInvocations(), data.getTarget(), wantedCount);
}
@Override
public void verifyInOrder(VerificationDataInOrder data) {
if (wantedCount == 1) {
checkMissingInvocation(data.getAllInvocations(), data.getWanted(), data.getOrderingContext());
}
checkAtLeastNumberOfInvocations(data.getAllInvocations(), data.getWanted(), wantedCount, data.getOrderingContext());
}
@Override
public String toString() {
return "Wanted invocations count: at least " + wantedCount;
}
@Override
public VerificationMode description(String description) {
return VerificationModeFactory.description(this, description);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy