/* * Copyright (c) 2016 Mockito contributors * This program is made available under the terms of the MIT License. */ package org.mockito.internal.junit; import org.mockito.internal.invocation.finder.AllInvocationsFinder; import org.mockito.invocation.Invocation; import org.mockito.stubbing.Stubbing; /** * For given mocks, finds stubbing arg mismatches */ class ArgMismatchFinder { StubbingArgMismatches getStubbingArgMismatches(Iterable<Object> mocks) { StubbingArgMismatches mismatches = new StubbingArgMismatches(); for (Invocation i : AllInvocationsFinder.find(mocks)) { if (i.stubInfo() != null) { continue; } for (Stubbing stubbing : AllInvocationsFinder.findStubbings(mocks)) { //method name & mock matches if (!stubbing.wasUsed() && stubbing.getInvocation().getMock() == i.getMock() && stubbing.getInvocation().getMethod().getName().equals(i.getMethod().getName())) { mismatches.add(i, stubbing.getInvocation()); } } } return mismatches; } }