[php] Actually implement abstract_inherit_runme.php
The previous version didn't really test anything useful. Now we check that trying to instantiate any of the abstract classes fails with the expected error.
This commit is contained in:
parent
847f0a6806
commit
f04d741d1c
2 changed files with 11 additions and 8 deletions
|
|
@ -3,10 +3,17 @@
|
|||
require "tests.php";
|
||||
|
||||
check::classes(array('Foo','Bar','Spam','NRFilter_i','NRRCFilter_i','NRRCFilterpro_i','NRRCFilterpri_i'));
|
||||
// This constructor attempt should fail as there isn't one
|
||||
//$spam=new Spam();
|
||||
|
||||
//check::equal(0,$spam->blah(),"spam object method");
|
||||
//check::equal(0,Spam::blah($spam),"spam class method");
|
||||
// We shouldn't be able to instantiate any of these classes since they are all
|
||||
// abstract (in each case there's a pure virtual function in the base class
|
||||
// which isn't implemented).
|
||||
foreach (array('Foo','Bar','Spam','NRFilter_i','NRRCFilter_i','NRRCFilterpro_i','NRRCFilterpri_i')as $class) {
|
||||
try {
|
||||
$obj = eval("new $class();");
|
||||
check::fail("Should not be able to instantiate abstract class $class");
|
||||
} catch (Error $e) {
|
||||
check::equal($e->getMessage(), "Cannot instantiate abstract class $class", "Unexpected exception: {$e->getMessage()}");
|
||||
}
|
||||
}
|
||||
|
||||
check::done();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue