mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
49 lines
1.5 KiB
PHP
49 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* Necessary to call setUpOnce() and tearDownOnce() on {@link SapphireTest}
|
|
* classes. This feature doesn't exist in PHPUnit in the same way
|
|
* (setUpBeforeClass() and tearDownAfterClass() are just called statically).
|
|
*
|
|
* @see http://www.phpunit.de/manual/3.5/en/extending-phpunit.html#extending-phpunit.PHPUnit_Framework_TestListener
|
|
*
|
|
* @package sapphire
|
|
* @subpackage testing
|
|
*/
|
|
class SS_TestListener implements PHPUnit_Framework_TestListener {
|
|
|
|
public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) {}
|
|
|
|
public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time) {}
|
|
|
|
public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time) {}
|
|
|
|
public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time) {}
|
|
|
|
public function startTest(PHPUnit_Framework_Test $test) {}
|
|
|
|
public function endTest(PHPUnit_Framework_Test $test, $time) {}
|
|
|
|
public function startTestSuite(PHPUnit_Framework_TestSuite $suite) {
|
|
$name = $suite->getName();
|
|
if(!$this->isValidClass($name)) return;
|
|
|
|
$this->class = new $name();
|
|
$this->class->setUpOnce();
|
|
}
|
|
|
|
public function endTestSuite(PHPUnit_Framework_TestSuite $suite) {
|
|
$name = $suite->getName();
|
|
if(!$this->isValidClass($name)) return;
|
|
|
|
$this->class->tearDownOnce();
|
|
}
|
|
|
|
/**
|
|
* @param String Classname
|
|
* @return boolean
|
|
*/
|
|
protected function isValidClass($name) {
|
|
return (class_exists($name) && is_subclass_of($name, 'SapphireTest'));
|
|
}
|
|
}
|