org.mockito.internal.debugging.WarningsFinder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mockito-core Show documentation
Show all versions of mockito-core Show documentation
Mockito mock objects library core API and implementation
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.internal.debugging;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import org.mockito.internal.invocation.InvocationMatcher;
import org.mockito.invocation.Invocation;
public class WarningsFinder {
private final List baseUnusedStubs;
private final List baseAllInvocations;
public WarningsFinder(List unusedStubs, List allInvocations) {
this.baseUnusedStubs = unusedStubs;
this.baseAllInvocations = allInvocations;
}
public void find(FindingsListener findingsListener) {
List unusedStubs = new LinkedList<>(this.baseUnusedStubs);
List allInvocations = new LinkedList<>(this.baseAllInvocations);
Iterator unusedIterator = unusedStubs.iterator();
while (unusedIterator.hasNext()) {
Invocation unused = unusedIterator.next();
Iterator unstubbedIterator = allInvocations.iterator();
while (unstubbedIterator.hasNext()) {
InvocationMatcher unstubbed = unstubbedIterator.next();
if (unstubbed.hasSimilarMethod(unused)) {
findingsListener.foundStubCalledWithDifferentArgs(unused, unstubbed);
unusedIterator.remove();
unstubbedIterator.remove();
}
}
}
for (Invocation i : unusedStubs) {
findingsListener.foundUnusedStub(i);
}
for (InvocationMatcher i : allInvocations) {
findingsListener.foundUnstubbed(i);
}
}
}