Home | History | Annotate | Download | only in checkers
      1 /*
      2  * Copyright (c) 2007 Mockito contributors
      3  * This program is made available under the terms of the MIT License.
      4  */
      5 
      6 package org.mockito.internal.verification.checkers;
      7 
      8 import java.util.List;
      9 
     10 import org.mockito.exceptions.Reporter;
     11 import org.mockito.internal.invocation.InvocationMatcher;
     12 import org.mockito.internal.invocation.InvocationMarker;
     13 import org.mockito.internal.invocation.InvocationsFinder;
     14 import org.mockito.invocation.Invocation;
     15 import org.mockito.invocation.Location;
     16 
     17 public class AtLeastXNumberOfInvocationsChecker {
     18 
     19     Reporter reporter = new Reporter();
     20     InvocationsFinder finder = new InvocationsFinder();
     21     InvocationMarker invocationMarker = new InvocationMarker();
     22 
     23     public void check(List<Invocation> invocations, InvocationMatcher wanted, int wantedCount) {
     24         List<Invocation> actualInvocations = finder.findInvocations(invocations, wanted);
     25 
     26         int actualCount = actualInvocations.size();
     27         if (wantedCount > actualCount) {
     28             Location lastLocation = finder.getLastLocation(actualInvocations);
     29             reporter.tooLittleActualInvocations(new AtLeastDiscrepancy(wantedCount, actualCount), wanted, lastLocation);
     30         }
     31 
     32         invocationMarker.markVerified(actualInvocations, wanted);
     33     }
     34 }