X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fbehat%2Fgherkin%2Fsrc%2FBehat%2FGherkin%2FFilter%2FLineRangeFilter.php;fp=vendor%2Fbehat%2Fgherkin%2Fsrc%2FBehat%2FGherkin%2FFilter%2FLineRangeFilter.php;h=0000000000000000000000000000000000000000;hp=b8062bed5daa6d828091e0e13cf0ec7a9581188b;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/vendor/behat/gherkin/src/Behat/Gherkin/Filter/LineRangeFilter.php b/vendor/behat/gherkin/src/Behat/Gherkin/Filter/LineRangeFilter.php deleted file mode 100644 index b8062bed5..000000000 --- a/vendor/behat/gherkin/src/Behat/Gherkin/Filter/LineRangeFilter.php +++ /dev/null @@ -1,134 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Behat\Gherkin\Filter; - -use Behat\Gherkin\Node\ExampleTableNode; -use Behat\Gherkin\Node\FeatureNode; -use Behat\Gherkin\Node\OutlineNode; -use Behat\Gherkin\Node\ScenarioInterface; - -/** - * Filters scenarios by definition line number range. - * - * @author Fabian Kiss - */ -class LineRangeFilter implements FilterInterface -{ - protected $filterMinLine; - protected $filterMaxLine; - - /** - * Initializes filter. - * - * @param string $filterMinLine Minimum line of a scenario to filter on - * @param string $filterMaxLine Maximum line of a scenario to filter on - */ - public function __construct($filterMinLine, $filterMaxLine) - { - $this->filterMinLine = intval($filterMinLine); - if ($filterMaxLine == '*') { - $this->filterMaxLine = PHP_INT_MAX; - } else { - $this->filterMaxLine = intval($filterMaxLine); - } - } - - /** - * Checks if Feature matches specified filter. - * - * @param FeatureNode $feature Feature instance - * - * @return Boolean - */ - public function isFeatureMatch(FeatureNode $feature) - { - return $this->filterMinLine <= $feature->getLine() - && $this->filterMaxLine >= $feature->getLine(); - } - - /** - * Checks if scenario or outline matches specified filter. - * - * @param ScenarioInterface $scenario Scenario or Outline node instance - * - * @return Boolean - */ - public function isScenarioMatch(ScenarioInterface $scenario) - { - if ($this->filterMinLine <= $scenario->getLine() && $this->filterMaxLine >= $scenario->getLine()) { - return true; - } - - if ($scenario instanceof OutlineNode && $scenario->hasExamples()) { - foreach ($scenario->getExampleTable()->getLines() as $line) { - if ($this->filterMinLine <= $line && $this->filterMaxLine >= $line) { - return true; - } - } - } - - return false; - } - - /** - * Filters feature according to the filter. - * - * @param FeatureNode $feature - * - * @return FeatureNode - */ - public function filterFeature(FeatureNode $feature) - { - $scenarios = array(); - foreach ($feature->getScenarios() as $scenario) { - if (!$this->isScenarioMatch($scenario)) { - continue; - } - - if ($scenario instanceof OutlineNode && $scenario->hasExamples()) { - $table = $scenario->getExampleTable()->getTable(); - $lines = array_keys($table); - - $filteredTable = array($lines[0] => $table[$lines[0]]); - unset($table[$lines[0]]); - - foreach ($table as $line => $row) { - if ($this->filterMinLine <= $line && $this->filterMaxLine >= $line) { - $filteredTable[$line] = $row; - } - } - - $scenario = new OutlineNode( - $scenario->getTitle(), - $scenario->getTags(), - $scenario->getSteps(), - new ExampleTableNode($filteredTable, $scenario->getExampleTable()->getKeyword()), - $scenario->getKeyword(), - $scenario->getLine() - ); - } - - $scenarios[] = $scenario; - } - - return new FeatureNode( - $feature->getTitle(), - $feature->getDescription(), - $feature->getTags(), - $feature->getBackground(), - $scenarios, - $feature->getKeyword(), - $feature->getLanguage(), - $feature->getFile(), - $feature->getLine() - ); - } -}