You are here

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

Returns a mock object for the specified abstract class with all abstract methods of the class mocked. Concrete methods to mock can be specified with the last parameter

@since Method available since Release 1.0.0

Parameters

string $originalClassName:

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

1 call to PHPUnit_Framework_MockObject_Generator::getMockForAbstractClass()
PHPUnit_Framework_MockObject_Generator::getMockForTrait in vendor/phpunit/phpunit-mock-objects/src/Framework/MockObject/Generator.php
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.

File

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

Class

PHPUnit_Framework_MockObject_Generator
Mock Object Code Generator

Code

public function getMockForAbstractClass($originalClassName, array $arguments = array(), $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = array(), $cloneArguments = true) {
  if (!is_string($originalClassName)) {
    throw PHPUnit_Util_InvalidArgumentHelper::factory(1, 'string');
  }
  if (!is_string($mockClassName)) {
    throw PHPUnit_Util_InvalidArgumentHelper::factory(3, 'string');
  }
  if (class_exists($originalClassName, $callAutoload) || interface_exists($originalClassName, $callAutoload)) {
    $reflector = new ReflectionClass($originalClassName);
    $methods = $mockedMethods;
    foreach ($reflector
      ->getMethods() as $method) {
      if ($method
        ->isAbstract() && !in_array($method
        ->getName(), $methods)) {
        $methods[] = $method
          ->getName();
      }
    }
    if (empty($methods)) {
      $methods = null;
    }
    return $this
      ->getMock($originalClassName, $methods, $arguments, $mockClassName, $callOriginalConstructor, $callOriginalClone, $callAutoload, $cloneArguments);
  }
  else {
    throw new PHPUnit_Framework_MockObject_RuntimeException(sprintf('Class "%s" does not exist.', $originalClassName));
  }
}