diff options
Diffstat (limited to 'vendor/phpunit/phpunit/src/Runner/Filter/Group.php')
-rw-r--r-- | vendor/phpunit/phpunit/src/Runner/Filter/Group.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/Group.php b/vendor/phpunit/phpunit/src/Runner/Filter/Group.php new file mode 100644 index 0000000..23a8f86 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Filter/Group.php @@ -0,0 +1,56 @@ +<?php +/* + * This file is part of PHPUnit. + * + * (c) Sebastian Bergmann <sebastian@phpunit.de> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +abstract class PHPUnit_Runner_Filter_GroupFilterIterator extends RecursiveFilterIterator +{ + /** + * @var array + */ + protected $groupTests = []; + + /** + * @param RecursiveIterator $iterator + * @param array $groups + * @param PHPUnit_Framework_TestSuite $suite + */ + public function __construct(RecursiveIterator $iterator, array $groups, PHPUnit_Framework_TestSuite $suite) + { + parent::__construct($iterator); + + foreach ($suite->getGroupDetails() as $group => $tests) { + if (in_array($group, $groups)) { + $testHashes = array_map( + function ($test) { + return spl_object_hash($test); + }, + $tests + ); + + $this->groupTests = array_merge($this->groupTests, $testHashes); + } + } + } + + /** + * @return bool + */ + public function accept() + { + $test = $this->getInnerIterator()->current(); + + if ($test instanceof PHPUnit_Framework_TestSuite) { + return true; + } + + return $this->doAccept(spl_object_hash($test)); + } + + abstract protected function doAccept($hash); +} |