org.mockito.internal.verification.checkers.NonGreedyNumberOfInvocationsInOrderChecker Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mockito-all Show documentation
Show all versions of mockito-all Show documentation
Mock objects library for java
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.verification.checkers;
import org.mockito.exceptions.Reporter;
import org.mockito.internal.invocation.InvocationMarker;
import org.mockito.internal.invocation.InvocationMatcher;
import org.mockito.internal.invocation.InvocationsFinder;
import org.mockito.internal.reporting.Discrepancy;
import org.mockito.internal.verification.api.InOrderContext;
import org.mockito.invocation.Invocation;
import org.mockito.invocation.Location;
import java.util.List;
public class NonGreedyNumberOfInvocationsInOrderChecker {
private final InvocationsFinder finder;
private final Reporter reporter;
private final InvocationMarker marker;
public NonGreedyNumberOfInvocationsInOrderChecker() {
this(new InvocationsFinder(), new Reporter(), new InvocationMarker());
}
NonGreedyNumberOfInvocationsInOrderChecker(InvocationsFinder finder, Reporter reporter, InvocationMarker marker ) {
this.finder = finder;
this.reporter = reporter;
this.marker = marker;
}
public void check(List invocations, InvocationMatcher wanted, int wantedCount, InOrderContext context) {
int actualCount = 0;
Location lastLocation = null;
while( actualCount < wantedCount ){
Invocation next = finder.findFirstMatchingUnverifiedInvocation( invocations, wanted, context );
if( next == null ){
reporter.tooLittleActualInvocationsInOrder(new Discrepancy(wantedCount, actualCount), wanted, lastLocation );
}
marker.markVerified( next, wanted );
context.markVerified( next );
lastLocation = next.getLocation();
actualCount++;
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy