You are here

class PHPUnit_Runner_Filter_Factory in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 vendor/phpunit/phpunit/src/Runner/Filter/Factory.php \PHPUnit_Runner_Filter_Factory

@since Class available since Release 4.0.0

Hierarchy

Expanded class hierarchy of PHPUnit_Runner_Filter_Factory

File

vendor/phpunit/phpunit/src/Runner/Filter/Factory.php, line 14

View source
class PHPUnit_Runner_Filter_Factory {

  /**
   * @var array
   */
  private $filters = array();

  /**
   * @param ReflectionClass $filter
   * @param mixed           $args
   */
  public function addFilter(ReflectionClass $filter, $args) {
    if (!$filter
      ->isSubclassOf('RecursiveFilterIterator')) {
      throw new InvalidArgumentException(sprintf('Class "%s" does not extend RecursiveFilterIterator', $filter->name));
    }
    $this->filters[] = array(
      $filter,
      $args,
    );
  }

  /**
   * @return FilterIterator
   */
  public function factory(Iterator $iterator, PHPUnit_Framework_TestSuite $suite) {
    foreach ($this->filters as $filter) {
      list($class, $args) = $filter;
      $iterator = $class
        ->newInstance($iterator, $args, $suite);
    }
    return $iterator;
  }

}

Members