You are here

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

Returns a mock object for the specified trait with all abstract methods of the trait mocked. Concrete methods to mock can be specified with the `$mockedMethods` parameter.

@since Method available since Release 1.2.3

Parameters

string $traitName:

array $arguments:

string $mockClassName:

bool $callOriginalConstructor:

bool $callOriginalClone:

bool $callAutoload:

array $mockedMethods:

bool $cloneArguments:

Return value

object

Throws

PHPUnit_Framework_MockObject_RuntimeException

PHPUnit_Framework_Exception

File

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

Class

PHPUnit_Framework_MockObject_Generator
Mock Object Code Generator

Code

public function getMockForTrait($traitName, array $arguments = array(), $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = array(), $cloneArguments = true) {
  if (!is_string($traitName)) {
    throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
  }
  if (!is_string($mockClassName)) {
    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, '', 'Trait_');
  $templateDir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'Generator' . DIRECTORY_SEPARATOR;
  $classTemplate = new Text_Template($templateDir . 'trait_class.tpl');
  $classTemplate
    ->setVar(array(
    'prologue' => 'abstract ',
    'class_name' => $className['className'],
    'trait_name' => $traitName,
  ));
  $this
    ->evalClass($classTemplate
    ->render(), $className['className']);
  return $this
    ->getMockForAbstractClass($className['className'], $arguments, $mockClassName, $callOriginalConstructor, $callOriginalClone, $callAutoload, $mockedMethods, $cloneArguments);
}