. * */ /** * base class for unit tests */ class OC_TestCase{ private $tests; //array of all tests in this test case public function __construct(){ $this->tests=array(); $this->results=array(); $functions=get_class_methods(get_class($this)); $exclude=get_class_methods('OC_TestCase'); foreach($functions as $function){ if(array_search($function,$exclude)===false){ $this->tests[]=$function; } } } public function getTests(){ return $this->tests; } /** * function that gets called before each test */ private function setup(){ } /** * function that gets called after each test */ private function tearDown(){ } /** * check if the result equals the expected result * @param mixed $expected the expected result * @param mixed $result the actual result * @param string $error (optional) the error message to display if the result isn't expected */ protected function assertEquals($expected,$result,$error=''){ if($expected!==$result){ if($expected===true){ $expected='true'; } if($expected===false){ $expected='false'; } if($result===true){ $result='true'; } if($result===false){ $result='false'; } if($error==''){ $error="Unexpected result, expected '$expected' but was '$result'"; } throw new Exception($error); } } /** * fail the test * @param string $error the error message */ protected function fail($error){ throw new Exception($error); } }