1 /* 2 * Copyright (c) 2007 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 package org.mockito.internal.verification; 6 7 import static org.mockito.internal.exceptions.Reporter.noMoreInteractionsWanted; 8 import static org.mockito.internal.exceptions.Reporter.noMoreInteractionsWantedInOrder; 9 import static org.mockito.internal.invocation.InvocationsFinder.findFirstUnverified; 10 import static org.mockito.internal.invocation.InvocationsFinder.findFirstUnverifiedInOrder; 11 12 import java.util.List; 13 14 import org.mockito.internal.verification.api.VerificationData; 15 import org.mockito.internal.verification.api.VerificationDataInOrder; 16 import org.mockito.internal.verification.api.VerificationInOrderMode; 17 import org.mockito.invocation.Invocation; 18 import org.mockito.verification.VerificationMode; 19 20 public class NoMoreInteractions implements VerificationMode, VerificationInOrderMode { 21 22 @Override 23 @SuppressWarnings("unchecked") verify(VerificationData data)24 public void verify(VerificationData data) { 25 Invocation unverified = findFirstUnverified(data.getAllInvocations()); 26 if (unverified != null) { 27 throw noMoreInteractionsWanted(unverified, (List) data.getAllInvocations()); 28 } 29 } 30 31 @Override verifyInOrder(VerificationDataInOrder data)32 public void verifyInOrder(VerificationDataInOrder data) { 33 List<Invocation> invocations = data.getAllInvocations(); 34 Invocation unverified = findFirstUnverifiedInOrder(data.getOrderingContext(), invocations); 35 36 if (unverified != null) { 37 throw noMoreInteractionsWantedInOrder(unverified); 38 } 39 } 40 } 41