All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mockito.internal.verification.RegisteredInvocations Maven / Gradle / Ivy

There is a newer version: 2.0.2-beta
Show newest version
/*
 * Copyright (c) 2007 Mockito contributors
 * This program is made available under the terms of the MIT License.
 */

package org.mockito.internal.verification;

import org.mockito.internal.invocation.InvocationImpl;
import org.mockito.internal.util.ObjectMethodsGuru;
import org.mockito.internal.util.collections.ListUtil;
import org.mockito.internal.util.collections.ListUtil.Filter;
import org.mockito.invocation.Invocation;

import java.io.Serializable;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;


public class RegisteredInvocations implements Serializable {

    private static final long serialVersionUID = -2674402327380736290L;
    private final List invocations = Collections.synchronizedList(new LinkedList());

    public void add(Invocation invocation) {
        invocations.add(invocation);
    }

    public void removeLast() {
        //TODO: add specific test for synchronization of this block (it is tested by InvocationContainerImplTest at the moment)
        synchronized (invocations) {
            int last = invocations.size() - 1;
            invocations.remove(last);
        }
    }

    public List getAll() {
    	List copiedList;
    	synchronized (invocations) {
			copiedList = new LinkedList(invocations) ;
		}

        return ListUtil.filter(copiedList, new RemoveToString());
    }

    public boolean isEmpty() {
        return invocations.isEmpty();
    }

    private static class RemoveToString implements Filter {
        public boolean isOut(Invocation invocation) {
            return new ObjectMethodsGuru().isToString(invocation.getMethod());
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy