/* * Copyright (c) 2007 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.mockito.internal.debugging; import org.mockito.internal.invocation.InvocationMatcher; import org.mockito.invocation.Invocation; import java.util.Iterator; import java.util.LinkedList; import java.util.List; public class WarningsFinder { private final List<Invocation> baseUnusedStubs; private final List<InvocationMatcher> baseAllInvocations; public WarningsFinder(List<Invocation> unusedStubs, List<InvocationMatcher> allInvocations) { this.baseUnusedStubs = unusedStubs; this.baseAllInvocations = allInvocations; } public void find(FindingsListener findingsListener) { List<Invocation> unusedStubs = new LinkedList<Invocation>(this.baseUnusedStubs); List<InvocationMatcher> allInvocations = new LinkedList<InvocationMatcher>(this.baseAllInvocations); Iterator<Invocation> unusedIterator = unusedStubs.iterator(); while(unusedIterator.hasNext()) { Invocation unused = unusedIterator.next(); Iterator<InvocationMatcher> 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); } } }