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
string $originalClassName:
array $arguments:
string $mockClassName:
boolean $callOriginalConstructor:
boolean $callOriginalClone:
boolean $callAutoload:
array $mockedMethods:
boolean $cloneArguments:
object
InvalidArgumentException
public static 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)) {
$methods = array();
$reflector = new ReflectionClass($originalClassName);
foreach ($reflector
->getMethods() as $method) {
if ($method
->isAbstract() || in_array($method
->getName(), $mockedMethods)) {
$methods[] = $method
->getName();
}
}
if (empty($methods)) {
$methods = NULL;
}
return self::getMock($originalClassName, $methods, $arguments, $mockClassName, $callOriginalConstructor, $callOriginalClone, $callAutoload, $cloneArguments);
}
else {
throw new PHPUnit_Framework_Exception(sprintf('Class "%s" does not exist.', $originalClassName));
}
}