You are here

public function PHPUnit_Framework_MockObject_Matcher::invoked in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Matcher.php \PHPUnit_Framework_MockObject_Matcher::invoked()

Parameters

PHPUnit_Framework_MockObject_Invocation $invocation:

Return value

mixed

Overrides PHPUnit_Framework_MockObject_Matcher_Invocation::invoked

File

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

Class

PHPUnit_Framework_MockObject_Matcher
Main matcher which defines a full expectation using method, parameter and invocation matchers. This matcher encapsulates all the other matchers and allows the builder to set the specific matchers when the appropriate methods are called…

Code

public function invoked(PHPUnit_Framework_MockObject_Invocation $invocation) {
  if ($this->invocationMatcher === null) {
    throw new PHPUnit_Framework_Exception('No invocation matcher is set');
  }
  if ($this->methodNameMatcher === null) {
    throw new PHPUnit_Framework_Exception('No method matcher is set');
  }
  if ($this->afterMatchBuilderId !== null) {
    $builder = $invocation->object
      ->__phpunit_getInvocationMocker()
      ->lookupId($this->afterMatchBuilderId);
    if (!$builder) {
      throw new PHPUnit_Framework_Exception(sprintf('No builder found for match builder identification <%s>', $this->afterMatchBuilderId));
    }
    $matcher = $builder
      ->getMatcher();
    if ($matcher && $matcher->invocationMatcher
      ->hasBeenInvoked()) {
      $this->afterMatchBuilderIsInvoked = true;
    }
  }
  $this->invocationMatcher
    ->invoked($invocation);
  try {
    if ($this->parametersMatcher !== null && !$this->parametersMatcher
      ->matches($invocation)) {
      $this->parametersMatcher
        ->verify();
    }
  } catch (PHPUnit_Framework_ExpectationFailedException $e) {
    throw new PHPUnit_Framework_ExpectationFailedException(sprintf("Expectation failed for %s when %s\n%s", $this->methodNameMatcher
      ->toString(), $this->invocationMatcher
      ->toString(), $e
      ->getMessage()), $e
      ->getComparisonFailure());
  }
  if ($this->stub) {
    return $this->stub
      ->invoke($invocation);
  }
  return;
}