5
* Copyright (c) 2002-2010, Sebastian Bergmann <sebastian@phpunit.de>.
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
15
* * Redistributions in binary form must reproduce the above copyright
16
* notice, this list of conditions and the following disclaimer in
17
* the documentation and/or other materials provided with the
20
* * Neither the name of Sebastian Bergmann nor the names of his
21
* contributors may be used to endorse or promote products derived
22
* from this software without specific prior written permission.
24
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
* POSSIBILITY OF SUCH DAMAGE.
38
* @subpackage Extensions
39
* @author Sebastian Bergmann <sebastian@phpunit.de>
40
* @copyright 2002-2010 Sebastian Bergmann <sebastian@phpunit.de>
41
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
42
* @link http://www.phpunit.de/
43
* @since File available since Release 2.0.0
47
* A Decorator for Tests.
49
* Use TestDecorator as the base class for defining new
50
* test decorators. Test decorator subclasses can be introduced
51
* to add behaviour before or after a test is run.
54
* @subpackage Extensions
55
* @author Sebastian Bergmann <sebastian@phpunit.de>
56
* @copyright 2002-2010 Sebastian Bergmann <sebastian@phpunit.de>
57
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
58
* @version Release: 3.5.5
59
* @link http://www.phpunit.de/
60
* @since Class available since Release 2.0.0
62
class PHPUnit_Extensions_TestDecorator extends PHPUnit_Framework_Assert implements PHPUnit_Framework_Test, PHPUnit_Framework_SelfDescribing
65
* The Test to be decorated.
69
protected $test = NULL;
74
* @param PHPUnit_Framework_Test $test
76
public function __construct(PHPUnit_Framework_Test $test)
82
* Returns a string representation of the test.
86
public function toString()
88
return $this->test->toString();
92
* Runs the test and collects the
93
* result in a TestResult.
95
* @param PHPUnit_Framework_TestResult $result
97
public function basicRun(PHPUnit_Framework_TestResult $result)
99
$this->test->run($result);
103
* Counts the number of test cases that
104
* will be run by this test.
108
public function count()
110
return count($this->test);
114
* Creates a default TestResult object.
116
* @return PHPUnit_Framework_TestResult
118
protected function createResult()
120
return new PHPUnit_Framework_TestResult;
124
* Returns the test to be run.
126
* @return PHPUnit_Framework_Test
128
public function getTest()
134
* Runs the decorated test and collects the
135
* result in a TestResult.
137
* @param PHPUnit_Framework_TestResult $result
138
* @return PHPUnit_Framework_TestResult
139
* @throws InvalidArgumentException
141
public function run(PHPUnit_Framework_TestResult $result = NULL)
143
if ($result === NULL) {
144
$result = $this->createResult();
147
$this->basicRun($result);