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.verification;
7
8import java.util.List;
9
10import org.mockito.exceptions.Reporter;
11import org.mockito.internal.invocation.InvocationsFinder;
12import org.mockito.internal.verification.api.VerificationData;
13import org.mockito.internal.verification.api.VerificationDataInOrder;
14import org.mockito.internal.verification.api.VerificationInOrderMode;
15import org.mockito.invocation.Invocation;
16import org.mockito.verification.VerificationMode;
17
18public class NoMoreInteractions implements VerificationMode, VerificationInOrderMode {
19
20    @SuppressWarnings("unchecked")
21    public void verify(VerificationData data) {
22        Invocation unverified = new InvocationsFinder().findFirstUnverified(data.getAllInvocations());
23        if (unverified != null) {
24            new Reporter().noMoreInteractionsWanted(unverified, (List) data.getAllInvocations());
25        }
26    }
27
28    public void verifyInOrder(VerificationDataInOrder data) {
29        List<Invocation> invocations = data.getAllInvocations();
30        Invocation unverified = new InvocationsFinder().findFirstUnverifiedInOrder(data.getOrderingContext(), invocations);
31
32        if (unverified != null) {
33            new Reporter().noMoreInteractionsWantedInOrder(unverified);
34        }
35    }
36}