You are here

class PHPUnit_Framework_MockObject_Matcher_InvokedCount in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php \PHPUnit_Framework_MockObject_Matcher_InvokedCount

Invocation matcher which checks if a method has been invoked a certain amount of times. If the number of invocations exceeds the value it will immediately throw an exception, If the number is less it will later be checked in verify() and also throw an exception.

@since Class available since Release 1.0.0

Hierarchy

Expanded class hierarchy of PHPUnit_Framework_MockObject_Matcher_InvokedCount

1 string reference to 'PHPUnit_Framework_MockObject_Matcher_InvokedCount'
PHPUnit_Framework_MockObject_Matcher::verify in vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php

File

vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher/InvokedCount.php, line 21

View source
class PHPUnit_Framework_MockObject_Matcher_InvokedCount extends PHPUnit_Framework_MockObject_Matcher_InvokedRecorder {

  /**
   * @var int
   */
  protected $expectedCount;

  /**
   * @param int $expectedCount
   */
  public function __construct($expectedCount) {
    $this->expectedCount = $expectedCount;
  }

  /**
   * @return bool
   */
  public function isNever() {
    return $this->expectedCount == 0;
  }

  /**
   * @return string
   */
  public function toString() {
    return 'invoked ' . $this->expectedCount . ' time(s)';
  }

  /**
   * @param  PHPUnit_Framework_MockObject_Invocation      $invocation
   * @throws PHPUnit_Framework_ExpectationFailedException
   */
  public function invoked(PHPUnit_Framework_MockObject_Invocation $invocation) {
    parent::invoked($invocation);
    $count = $this
      ->getInvocationCount();
    if ($count > $this->expectedCount) {
      $message = $invocation
        ->toString() . ' ';
      switch ($this->expectedCount) {
        case 0:
          $message .= 'was not expected to be called.';
          break;
        case 1:
          $message .= 'was not expected to be called more than once.';
          break;
        default:
          $message .= sprintf('was not expected to be called more than %d times.', $this->expectedCount);
      }
      throw new PHPUnit_Framework_ExpectationFailedException($message);
    }
  }

  /**
   * Verifies that the current expectation is valid. If everything is OK the
   * code should just return, if not it must throw an exception.
   *
   * @throws PHPUnit_Framework_ExpectationFailedException
   */
  public function verify() {
    $count = $this
      ->getInvocationCount();
    if ($count !== $this->expectedCount) {
      throw new PHPUnit_Framework_ExpectationFailedException(sprintf('Method was expected to be called %d times, ' . 'actually called %d times.', $this->expectedCount, $count));
    }
  }

}

Members