diff options
author | ctrlaltca <> | 2013-01-02 14:42:24 +0000 |
---|---|---|
committer | ctrlaltca <> | 2013-01-02 14:42:24 +0000 |
commit | edf2251aca60a970e822079d23933e5b70b26571 (patch) | |
tree | 366b6688efbb03f20f47268bea57859cea673c70 /buildscripts/PHPUnit2/Extensions | |
parent | 8e5f2510bd577e15095e46afc7d0ba6808549bf8 (diff) |
backported all related changes up to 3229 to branch/3.2
Diffstat (limited to 'buildscripts/PHPUnit2/Extensions')
-rw-r--r-- | buildscripts/PHPUnit2/Extensions/ExceptionTestCase.php | 122 | ||||
-rw-r--r-- | buildscripts/PHPUnit2/Extensions/PerformanceTestCase.php | 128 | ||||
-rw-r--r-- | buildscripts/PHPUnit2/Extensions/RepeatedTest.php | 138 | ||||
-rw-r--r-- | buildscripts/PHPUnit2/Extensions/TestDecorator.php | 174 | ||||
-rw-r--r-- | buildscripts/PHPUnit2/Extensions/TestSetup.php | 154 |
5 files changed, 0 insertions, 716 deletions
diff --git a/buildscripts/PHPUnit2/Extensions/ExceptionTestCase.php b/buildscripts/PHPUnit2/Extensions/ExceptionTestCase.php deleted file mode 100644 index ababf9c5..00000000 --- a/buildscripts/PHPUnit2/Extensions/ExceptionTestCase.php +++ /dev/null @@ -1,122 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ - -/** - * PHP Version 5 - * - * Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Sebastian Bergmann nor the names of his - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version CVS: $Id: ExceptionTestCase.php,v 1.15.2.6 2006/02/20 07:42:59 sebastian Exp $ - * @link http://pear.php.net/package/PHPUnit2 - * @since File available since Release 2.0.0 - */ - -require_once 'PHPUnit2/Framework/TestCase.php'; - -/** - * A TestCase that expects a specified Exception to be thrown. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: @package_version@ - * @link http://pear.php.net/package/PHPUnit2 - * @since Class available since Release 2.0.0 - */ -class PHPUnit2_Extensions_ExceptionTestCase extends PHPUnit2_Framework_TestCase { - /** - * The name of the expected Exception. - * - * @var mixed - * @access private - */ - private $expectedException = NULL; - - /** - * @return string - * @access public - * @since Method available since Release 2.2.0 - */ - public function getExpectedException() { - return $this->expectedException; - } - - /** - * @param mixed $exceptionName - * @access public - * @since Method available since Release 2.2.0 - */ - public function setExpectedException($exceptionName) { - if ((is_string($exceptionName) && class_exists($exceptionName)) || $exceptionName === NULL) { - $this->expectedException = $exceptionName; - } - } - - /** - * @access protected - */ - protected function runTest() { - try { - parent::runTest(); - } - - catch (Exception $e) { - if ($this->expectedException !== NULL && - $e instanceof $this->expectedException) { - return; - } else { - throw $e; - } - } - - if ($this->expectedException !== NULL) { - $this->fail('Expected exception ' . $this->expectedException); - } - } -} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * c-hanging-comment-ender-p: nil - * End: - */ -?> diff --git a/buildscripts/PHPUnit2/Extensions/PerformanceTestCase.php b/buildscripts/PHPUnit2/Extensions/PerformanceTestCase.php deleted file mode 100644 index 4d10f062..00000000 --- a/buildscripts/PHPUnit2/Extensions/PerformanceTestCase.php +++ /dev/null @@ -1,128 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ - -/** - * PHP Version 5 - * - * Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Sebastian Bergmann nor the names of his - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version CVS: $Id: PerformanceTestCase.php,v 1.15.2.5 2005/12/17 16:04:56 sebastian Exp $ - * @link http://pear.php.net/package/PHPUnit2 - * @since File available since Release 2.1.0 - */ - -require_once 'PHPUnit2/Framework/TestCase.php'; - -require_once 'Benchmark/Timer.php'; - -/** - * A TestCase that expects a TestCase to be executed - * meeting a given time limit. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: @package_version@ - * @link http://pear.php.net/package/PHPUnit2 - * @since Class available since Release 2.1.0 - */ -class PHPUnit2_Extensions_PerformanceTestCase extends PHPUnit2_Framework_TestCase { - /** - * @var integer - * @access private - */ - private $maxRunningTime = 0; - - /** - * @access protected - */ - protected function runTest() { - $timer = new Benchmark_Timer; - - $timer->start(); - parent::runTest(); - $timer->stop(); - - if ($this->maxRunningTime != 0 && - $timer->timeElapsed() > $this->maxRunningTime) { - $this->fail( - sprintf( - 'expected running time: <= %s but was: %s', - - $this->maxRunningTime, - $timer->timeElapsed() - ) - ); - } - } - - /** - * @param integer $maxRunningTime - * @throws Exception - * @access public - * @since Method available since Release 2.3.0 - */ - public function setMaxRunningTime($maxRunningTime) { - if (is_integer($maxRunningTime) && - $maxRunningTime >= 0) { - $this->maxRunningTime = $maxRunningTime; - } else { - throw new Exception; - } - } - - /** - * @return integer - * @access public - * @since Method available since Release 2.3.0 - */ - public function getMaxRunningTime() { - return $this->maxRunningTime; - } -} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * c-hanging-comment-ender-p: nil - * End: - */ -?> diff --git a/buildscripts/PHPUnit2/Extensions/RepeatedTest.php b/buildscripts/PHPUnit2/Extensions/RepeatedTest.php deleted file mode 100644 index b842aa1b..00000000 --- a/buildscripts/PHPUnit2/Extensions/RepeatedTest.php +++ /dev/null @@ -1,138 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ - -/** - * PHP Version 5 - * - * Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Sebastian Bergmann nor the names of his - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version CVS: $Id: RepeatedTest.php,v 1.15.2.4 2005/12/17 16:04:56 sebastian Exp $ - * @link http://pear.php.net/package/PHPUnit2 - * @since File available since Release 2.0.0 - */ - -require_once 'PHPUnit2/Extensions/TestDecorator.php'; - -/** - * A Decorator that runs a test repeatedly. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: @package_version@ - * @link http://pear.php.net/package/PHPUnit2 - * @since Class available since Release 2.0.0 - */ -class PHPUnit2_Extensions_RepeatedTest extends PHPUnit2_Extensions_TestDecorator { - /** - * @var integer - * @access private - */ - private $timesRepeat = 1; - - /** - * Constructor. - * - * @param PHPUnit2_Framework_Test $test - * @param integer $timesRepeat - * @throws Exception - * @access public - */ - public function __construct(PHPUnit2_Framework_Test $test, $timesRepeat = 1) { - parent::__construct($test); - - if (is_integer($timesRepeat) && - $timesRepeat >= 0) { - $this->timesRepeat = $timesRepeat; - } else { - throw new Exception( - 'Argument 2 must be a positive integer.' - ); - } - } - - /** - * Counts the number of test cases that - * will be run by this test. - * - * @return integer - * @access public - */ - public function countTestCases() { - return $this->timesRepeat * $this->test->countTestCases(); - } - - /** - * Runs the decorated test and collects the - * result in a TestResult. - * - * @param PHPUnit2_Framework_TestResult $result - * @return PHPUnit2_Framework_TestResult - * @throws Exception - * @access public - */ - public function run($result = NULL) { - if ($result === NULL) { - $result = $this->createResult(); - } - - // XXX: Workaround for missing ability to declare type-hinted parameters as optional. - else if (!($result instanceof PHPUnit2_Framework_TestResult)) { - throw new Exception( - 'Argument 1 must be an instance of PHPUnit2_Framework_TestResult.' - ); - } - - for ($i = 0; $i < $this->timesRepeat && !$result->shouldStop(); $i++) { - $this->test->run($result); - } - - return $result; - } -} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * c-hanging-comment-ender-p: nil - * End: - */ -?> diff --git a/buildscripts/PHPUnit2/Extensions/TestDecorator.php b/buildscripts/PHPUnit2/Extensions/TestDecorator.php deleted file mode 100644 index ebca6e1f..00000000 --- a/buildscripts/PHPUnit2/Extensions/TestDecorator.php +++ /dev/null @@ -1,174 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ - -/** - * PHP Version 5 - * - * Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Sebastian Bergmann nor the names of his - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version CVS: $Id: TestDecorator.php,v 1.14.2.4 2005/12/17 16:04:56 sebastian Exp $ - * @link http://pear.php.net/package/PHPUnit2 - * @since File available since Release 2.0.0 - */ - -require_once 'PHPUnit2/Framework/Assert.php'; -require_once 'PHPUnit2/Framework/Test.php'; -require_once 'PHPUnit2/Framework/TestResult.php'; - -/** - * A Decorator for Tests. - * - * Use TestDecorator as the base class for defining new - * test decorators. Test decorator subclasses can be introduced - * to add behaviour before or after a test is run. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: @package_version@ - * @link http://pear.php.net/package/PHPUnit2 - * @since Class available since Release 2.0.0 - */ -class PHPUnit2_Extensions_TestDecorator extends PHPUnit2_Framework_Assert implements PHPUnit2_Framework_Test { - /** - * The Test to be decorated. - * - * @var object - * @access protected - */ - protected $test = NULL; - - /** - * Constructor. - * - * @param PHPUnit2_Framework_Test $test - * @access public - */ - public function __construct(PHPUnit2_Framework_Test $test) { - $this->test = $test; - } - - /** - * Returns a string representation of the test. - * - * @return string - * @access public - */ - public function toString() { - return $this->test->toString(); - } - - /** - * Runs the test and collects the - * result in a TestResult. - * - * @param PHPUnit2_Framework_TestResult $result - * @access public - */ - public function basicRun(PHPUnit2_Framework_TestResult $result) { - $this->test->run($result); - } - - /** - * Counts the number of test cases that - * will be run by this test. - * - * @return integer - * @access public - */ - public function countTestCases() { - return $this->test->countTestCases(); - } - - /** - * Creates a default TestResult object. - * - * @return PHPUnit2_Framework_TestResult - * @access protected - */ - protected function createResult() { - return new PHPUnit2_Framework_TestResult; - } - - /** - * Returns the test to be run. - * - * @return PHPUnit2_Framework_Test - * @access public - */ - public function getTest() { - return $this->test; - } - - /** - * Runs the decorated test and collects the - * result in a TestResult. - * - * @param PHPUnit2_Framework_TestResult $result - * @return PHPUnit2_Framework_TestResult - * @throws Exception - * @access public - */ - public function run($result = NULL) { - if ($result === NULL) { - $result = $this->createResult(); - } - - // XXX: Workaround for missing ability to declare type-hinted parameters as optional. - else if (!($result instanceof PHPUnit2_Framework_TestResult)) { - throw new Exception( - 'Argument 1 must be an instance of PHPUnit2_Framework_TestResult.' - ); - } - - $this->basicRun($result); - - return $result; - } -} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * c-hanging-comment-ender-p: nil - * End: - */ -?> diff --git a/buildscripts/PHPUnit2/Extensions/TestSetup.php b/buildscripts/PHPUnit2/Extensions/TestSetup.php deleted file mode 100644 index 153cfcf1..00000000 --- a/buildscripts/PHPUnit2/Extensions/TestSetup.php +++ /dev/null @@ -1,154 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ - -/** - * PHP Version 5 - * - * Copyright (c) 2002-2006, Sebastian Bergmann <sb@sebastian-bergmann.de>. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * * Neither the name of Sebastian Bergmann nor the names of his - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRIC - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version CVS: $Id: TestSetup.php,v 1.13.2.6 2005/12/17 16:04:56 sebastian Exp $ - * @link http://pear.php.net/package/PHPUnit2 - * @since File available since Release 2.0.0 - */ - -require_once 'PHPUnit2/Framework/TestSuite.php'; -require_once 'PHPUnit2/Extensions/TestDecorator.php'; - -/** - * A Decorator to set up and tear down additional fixture state. - * Subclass TestSetup and insert it into your tests when you want - * to set up additional state once before the tests are run. - * - * @category Testing - * @package PHPUnit2 - * @author Sebastian Bergmann <sb@sebastian-bergmann.de> - * @copyright 2002-2006 Sebastian Bergmann <sb@sebastian-bergmann.de> - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * @version Release: @package_version@ - * @link http://pear.php.net/package/PHPUnit2 - * @since Class available since Release 2.0.0 - */ -class PHPUnit2_Extensions_TestSetup extends PHPUnit2_Extensions_TestDecorator { - /** - * Runs the decorated test and collects the - * result in a TestResult. - * - * @param PHPUnit2_Framework_TestResult $result - * @return PHPUnit2_Framework_TestResult - * @throws Exception - * @access public - */ - public function run($result = NULL) { - if ($result === NULL) { - $result = $this->createResult(); - } - - // XXX: Workaround for missing ability to declare type-hinted parameters as optional. - else if (!($result instanceof PHPUnit2_Framework_TestResult)) { - throw new Exception( - 'Argument 1 must be an instance of PHPUnit2_Framework_TestResult.' - ); - } - - $this->setUp(); - $this->copyFixtureToTest(); - $this->basicRun($result); - $this->tearDown(); - - return $result; - } - - /** - * Copies the fixture set up by setUp() to the test. - * - * @access private - * @since Method available since Release 2.3.0 - */ - private function copyFixtureToTest() { - $object = new ReflectionClass($this); - - foreach ($object->getProperties() as $property) { - $name = $property->getName(); - - if ($name != 'test') { - $this->doCopyFixtureToTest($this->test, $name, $this->$name); - } - } - } - - /** - * @access private - * @since Method available since Release 2.3.0 - */ - private function doCopyFixtureToTest($object, $name, &$value) { - if ($object instanceof PHPUnit2_Framework_TestSuite) { - foreach ($object->tests() as $test) { - $this->doCopyFixtureToTest($test, $name, $value); - } - } else { - $object->$name =& $value; - } - } - - /** - * Sets up the fixture. Override to set up additional fixture - * state. - * - * @access protected - */ - protected function setUp() { - } - - /** - * Tears down the fixture. Override to tear down the additional - * fixture state. - * - * @access protected - */ - protected function tearDown() { - } -} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * c-hanging-comment-ender-p: nil - * End: - */ -?> |