+++ /dev/null
-<?php
-
-namespace Tests\Behat\Gherkin\Filter;
-
-use Behat\Gherkin\Filter\TagFilter;
-use Behat\Gherkin\Node\FeatureNode;
-use Behat\Gherkin\Node\ScenarioNode;
-
-class TagFilterTest extends \PHPUnit_Framework_TestCase
-{
- public function testFilterFeature()
- {
- $feature = new FeatureNode(null, null, array('wip'), null, array(), null, null, null, 1);
- $filter = new TagFilter('@wip');
- $this->assertEquals($feature, $filter->filterFeature($feature));
-
- $scenarios = array(
- new ScenarioNode(null, array(), array(), null, 2),
- $matchedScenario = new ScenarioNode(null, array('wip'), array(), null, 4)
- );
- $feature = new FeatureNode(null, null, array(), null, $scenarios, null, null, null, 1);
- $filteredFeature = $filter->filterFeature($feature);
-
- $this->assertSame(array($matchedScenario), $filteredFeature->getScenarios());
-
- $filter = new TagFilter('~@wip');
- $scenarios = array(
- $matchedScenario = new ScenarioNode(null, array(), array(), null, 2),
- new ScenarioNode(null, array('wip'), array(), null, 4)
- );
- $feature = new FeatureNode(null, null, array(), null, $scenarios, null, null, null, 1);
- $filteredFeature = $filter->filterFeature($feature);
-
- $this->assertSame(array($matchedScenario), $filteredFeature->getScenarios());
- }
-
- public function testIsFeatureMatchFilter()
- {
- $feature = new FeatureNode(null, null, array(), null, array(), null, null, null, 1);
-
- $filter = new TagFilter('@wip');
- $this->assertFalse($filter->isFeatureMatch($feature));
-
- $feature = new FeatureNode(null, null, array('wip'), null, array(), null, null, null, 1);
- $this->assertTrue($filter->isFeatureMatch($feature));
-
- $filter = new TagFilter('~@done');
- $this->assertTrue($filter->isFeatureMatch($feature));
-
- $feature = new FeatureNode(null, null, array('wip', 'done'), null, array(), null, null, null, 1);
- $this->assertFalse($filter->isFeatureMatch($feature));
-
- $feature = new FeatureNode(null, null, array('tag1', 'tag2', 'tag3'), null, array(), null, null, null, 1);
- $filter = new TagFilter('@tag5,@tag4,@tag6');
- $this->assertFalse($filter->isFeatureMatch($feature));
-
- $feature = new FeatureNode(null, null, array(
- 'tag1',
- 'tag2',
- 'tag3',
- 'tag5'
- ), null, array(), null, null, null, 1);
- $this->assertTrue($filter->isFeatureMatch($feature));
-
- $filter = new TagFilter('@wip&&@vip');
- $feature = new FeatureNode(null, null, array('wip', 'done'), null, array(), null, null, null, 1);
- $this->assertFalse($filter->isFeatureMatch($feature));
-
- $feature = new FeatureNode(null, null, array('wip', 'done', 'vip'), null, array(), null, null, null, 1);
- $this->assertTrue($filter->isFeatureMatch($feature));
-
- $filter = new TagFilter('@wip,@vip&&@user');
- $feature = new FeatureNode(null, null, array('wip'), null, array(), null, null, null, 1);
- $this->assertFalse($filter->isFeatureMatch($feature));
-
- $feature = new FeatureNode(null, null, array('vip'), null, array(), null, null, null, 1);
- $this->assertFalse($filter->isFeatureMatch($feature));
-
- $feature = new FeatureNode(null, null, array('wip', 'user'), null, array(), null, null, null, 1);
- $this->assertTrue($filter->isFeatureMatch($feature));
-
- $feature = new FeatureNode(null, null, array('vip', 'user'), null, array(), null, null, null, 1);
- $this->assertTrue($filter->isFeatureMatch($feature));
- }
-
- public function testIsScenarioMatchFilter()
- {
- $feature = new FeatureNode(null, null, array('feature-tag'), null, array(), null, null, null, 1);
- $scenario = new ScenarioNode(null, array(), array(), null, 2);
-
- $filter = new TagFilter('@wip');
- $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
-
- $filter = new TagFilter('~@done');
- $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
-
- $scenario = new ScenarioNode(null, array(
- 'tag1',
- 'tag2',
- 'tag3'
- ), array(), null, 2);
- $filter = new TagFilter('@tag5,@tag4,@tag6');
- $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
-
- $scenario = new ScenarioNode(null, array(
- 'tag1',
- 'tag2',
- 'tag3',
- 'tag5'
- ), array(), null, 2);
- $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
-
- $filter = new TagFilter('@wip&&@vip');
- $scenario = new ScenarioNode(null, array('wip', 'not-done'), array(), null, 2);
- $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
-
- $scenario = new ScenarioNode(null, array(
- 'wip',
- 'not-done',
- 'vip'
- ), array(), null, 2);
- $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
-
- $filter = new TagFilter('@wip,@vip&&@user');
- $scenario = new ScenarioNode(null, array(
- 'wip'
- ), array(), null, 2);
- $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
-
- $scenario = new ScenarioNode(null, array('vip'), array(), null, 2);
- $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
-
- $scenario = new ScenarioNode(null, array('wip', 'user'), array(), null, 2);
- $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
-
- $filter = new TagFilter('@feature-tag&&@user');
- $scenario = new ScenarioNode(null, array('wip', 'user'), array(), null, 2);
- $this->assertTrue($filter->isScenarioMatch($feature, $scenario));
-
- $filter = new TagFilter('@feature-tag&&@user');
- $scenario = new ScenarioNode(null, array('wip'), array(), null, 2);
- $this->assertFalse($filter->isScenarioMatch($feature, $scenario));
- }
-}