You are here

protected function PHPUnit_Framework_MockObject_Generator::getObject in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php \PHPUnit_Framework_MockObject_Generator::getObject()

Parameters

string $code:

string $className:

array|string $type:

bool $callOriginalConstructor:

bool $callAutoload:

array $arguments:

bool $callOriginalMethods:

object $proxyTarget:

Return value

object

2 calls to PHPUnit_Framework_MockObject_Generator::getObject()
PHPUnit_Framework_MockObject_Generator::getMock in vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php
Returns a mock object for the specified class.
PHPUnit_Framework_MockObject_Generator::getObjectForTrait in vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php
Returns an object for the specified trait.

File

vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php, line 235

Class

PHPUnit_Framework_MockObject_Generator
Mock Object Code Generator

Code

protected function getObject($code, $className, $type = '', $callOriginalConstructor = false, $callAutoload = false, array $arguments = array(), $callOriginalMethods = false, $proxyTarget = null) {
  $this
    ->evalClass($code, $className);
  if ($callOriginalConstructor && is_string($type) && !interface_exists($type, $callAutoload)) {
    if (count($arguments) == 0) {
      $object = new $className();
    }
    else {
      $class = new ReflectionClass($className);
      $object = $class
        ->newInstanceArgs($arguments);
    }
  }
  else {
    try {
      $instantiator = new Instantiator();
      $object = $instantiator
        ->instantiate($className);
    } catch (InstantiatorUnexpectedValueException $exception) {
      if ($exception
        ->getPrevious()) {
        $exception = $exception
          ->getPrevious();
      }
      throw new PHPUnit_Framework_MockObject_RuntimeException($exception
        ->getMessage());
    } catch (InstantiatorInvalidArgumentException $exception) {
      throw new PHPUnit_Framework_MockObject_RuntimeException($exception
        ->getMessage());
    }
  }
  if ($callOriginalMethods) {
    if (!is_object($proxyTarget)) {
      if (count($arguments) == 0) {
        $proxyTarget = new $type();
      }
      else {
        $class = new ReflectionClass($type);
        $proxyTarget = $class
          ->newInstanceArgs($arguments);
      }
    }
    $object
      ->__phpunit_setOriginalObject($proxyTarget);
  }
  return $object;
}