1/* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 6package org.mockito.internal.invocation.finder; 7 8import org.mockito.internal.InternalMockHandler; 9import org.mockito.internal.util.MockUtil; 10import org.mockito.invocation.Invocation; 11 12import java.util.*; 13 14public class AllInvocationsFinder { 15 16 /** 17 * gets all invocations from mocks. Invocations are ordered earlier first. 18 * 19 * @param mocks mocks 20 * @return invocations 21 */ 22 public List<Invocation> find(List<?> mocks) { 23 Set<Invocation> invocationsInOrder = new TreeSet<Invocation>(new SequenceNumberComparator()); 24 for (Object mock : mocks) { 25 InternalMockHandler<Object> handler = new MockUtil().getMockHandler(mock); 26 List<Invocation> fromSingleMock = handler.getInvocationContainer().getInvocations(); 27 invocationsInOrder.addAll(fromSingleMock); 28 } 29 30 return new LinkedList<Invocation>(invocationsInOrder); 31 } 32 33 private final class SequenceNumberComparator implements Comparator<Invocation> { 34 public int compare(Invocation o1, Invocation o2) { 35 return Integer.valueOf(o1.getSequenceNumber()).compareTo(o2.getSequenceNumber()); 36 } 37 } 38}