class 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.

@package PHPUnit_MockObject @author Sebastian Bergmann <sb@sebastian-bergmann.de> @copyright 2010-2013 Sebastian Bergmann <sb@sebastian-bergmann.de> @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License @version Release: @package_version@ @link http://github.com/sebastianbergmann/phpunit-mock-objects @since Class available since Release 1.0.0

Hierarchy

Expanded class hierarchy of PHPUnit_Framework_MockObject_Matcher_InvokedCount

File

drupal/core/vendor/phpunit/phpunit-mock-objects/PHPUnit/Framework/MockObject/Matcher/InvokedCount.php, line 61

View source
class PHPUnit_Framework_MockObject_Matcher_InvokedCount extends PHPUnit_Framework_MockObject_Matcher_InvokedRecorder {

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

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

  /**
   * @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