<?php
interface MyInterface {
public function doSomethingDifferent();
}
abstract class MyClass implements MyInterface
{
public function doSomething()
{
return "doneSomething";
}
abstract public function doSomethingElse();
}
class MyClassTest
{
public function getMockForAbstractClass($className)
{
$mockClassName = 'Mock_' . $className;
$class = <<<EOF
class $mockClassName extends $className {
public function doSomethingElse() {}
}
EOF;
eval($class);
return new $mockClassName();
}
public function testDoSomething()
{
$object = $this->getMockForAbstractClass('MyClass');
assert('"doneSomething" == "' . $object->doSomething() . '"');
}
}
$test = new MyClassTest();
$test->testDoSomething();
Fatal error: Class Mock_MyClass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (MyInterface::doSomethingDifferent) in /in/NZWDS(27) : eval()'d code on line 1
Process exited with code 255.
Fatal error: Class Mock_MyClass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (MyInterface::doSomethingDifferent) in /in/NZWDS(27) : eval()'d code on line 3
Process exited with code 255.
Output for 5.1.2
Fatal error: Class Mock_MyClass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (MyInterface::doSomethingDifferent) in /in/NZWDS(28) : eval()'d code on line 3
Process exited with code 255.
Output for 5.0.2 - 5.0.4
Fatal error: Class Mock_MyClass contains 1 abstract methods and must therefore be declared abstract (MyInterface::doSomethingDifferent) in /in/NZWDS(27) : eval()'d code on line 3
Process exited with code 255.
Output for 5.0.0 - 5.0.1
Fatal error: Cannot instantiate abstract class Mock_MyClass in /in/NZWDS on line 28
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING in /in/NZWDS on line 3
Process exited with code 255.