/*
* 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.InvocationMatcher;
import org.mockito.internal.stubbing.InvocationContainer;
import org.mockito.invocation.MatchableInvocation;
import org.mockito.internal.verification.api.VerificationData;
import org.mockito.invocation.Invocation;
import static org.mockito.internal.exceptions.Reporter.cannotVerifyToString;
import static org.mockito.internal.util.ObjectMethodsGuru.isToStringMethod;
import java.util.List;
public class VerificationDataImpl implements VerificationData {
private final InvocationMatcher wanted;
private final InvocationContainer invocations;
public VerificationDataImpl(InvocationContainer invocations, InvocationMatcher wanted) {
this.invocations = invocations;
this.wanted = wanted;
this.assertWantedIsVerifiable();
}
@Override
public List<Invocation> getAllInvocations() {
return invocations.getInvocations();
}
@Override
public MatchableInvocation getTarget() {
return wanted;
}
@Override
public InvocationMatcher getWanted() {
return wanted;
}
private void assertWantedIsVerifiable() {
if (wanted == null) {
return;
}
if (isToStringMethod(wanted.getMethod())) {
throw cannotVerifyToString();
}
}
}