class PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex

Invocation matcher which checks if a method was invoked at a certain index.

If the expected index number does not match the current invocation index it will not match which means it skips all method and parameter matching. Only once the index is reached will the method and parameter start matching and verifying.

If the index is never reached it will throw an exception in index.

@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_InvokedAtIndex

File

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

View source
class PHPUnit_Framework_MockObject_Matcher_InvokedAtIndex implements PHPUnit_Framework_MockObject_Matcher_Invocation {

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

  /**
   * @var integer
   */
  protected $currentIndex = -1;

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

  /**
   * @return string
   */
  public function toString() {
    return 'invoked at sequence index ' . $this->sequenceIndex;
  }

  /**
   * @param  PHPUnit_Framework_MockObject_Invocation $invocation
   * @return boolean
   */
  public function matches(PHPUnit_Framework_MockObject_Invocation $invocation) {
    $this->currentIndex++;
    return $this->currentIndex == $this->sequenceIndex;
  }

  /**
   * @param PHPUnit_Framework_MockObject_Invocation $invocation
   */
  public function invoked(PHPUnit_Framework_MockObject_Invocation $invocation) {
  }

  /**
   * 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() {
    if ($this->currentIndex < $this->sequenceIndex) {
      throw new PHPUnit_Framework_ExpectationFailedException(sprintf('The expected invocation at index %s was never reached.', $this->sequenceIndex));
    }
  }

}

Members