You are here

public function PHPUnit_Framework_MockObject_Generator::getObjectForTrait 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::getObjectForTrait()

Returns an object for the specified trait.

@since Method available since Release 1.1.0

Parameters

string $traitName:

array $arguments:

string $traitClassName:

bool $callOriginalConstructor:

bool $callOriginalClone:

bool $callAutoload:

Return value

object

Throws

PHPUnit_Framework_MockObject_RuntimeException

PHPUnit_Framework_Exception

File

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

Class

PHPUnit_Framework_MockObject_Generator
Mock Object Code Generator

Code

public function getObjectForTrait($traitName, array $arguments = array(), $traitClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true) {
  if (!is_string($traitName)) {
    throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
  }
  if (!is_string($traitClassName)) {
    throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'string');
  }
  if (!trait_exists($traitName, $callAutoload)) {
    throw new PHPUnit_Framework_MockObject_RuntimeException(sprintf('Trait "%s" does not exist.', $traitName));
  }
  $className = $this
    ->generateClassName($traitName, $traitClassName, 'Trait_');
  $templateDir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Generator' . DIRECTORY_SEPARATOR;
  $classTemplate = new Text_Template($templateDir . 'trait_class.tpl');
  $classTemplate
    ->setVar(array(
    'prologue' => '',
    'class_name' => $className['className'],
    'trait_name' => $traitName,
  ));
  return $this
    ->getObject($classTemplate
    ->render(), $className['className']);
}