3 namespace Tests\Behat\Gherkin\Filter;
5 use Behat\Gherkin\Filter\NameFilter;
6 use Behat\Gherkin\Node\FeatureNode;
7 use Behat\Gherkin\Node\ScenarioNode;
9 class NameFilterTest extends \PHPUnit_Framework_TestCase
11 public function testFilterFeature()
13 $feature = new FeatureNode('feature1', null, array(), null, array(), null, null, null, 1);
14 $filter = new NameFilter('feature1');
15 $this->assertSame($feature, $filter->filterFeature($feature));
18 new ScenarioNode('scenario1', array(), array(), null, 2),
19 $matchedScenario = new ScenarioNode('scenario2', array(), array(), null, 4)
21 $feature = new FeatureNode('feature1', null, array(), null, $scenarios, null, null, null, 1);
22 $filter = new NameFilter('scenario2');
23 $filteredFeature = $filter->filterFeature($feature);
25 $this->assertSame(array($matchedScenario), $filteredFeature->getScenarios());
28 public function testIsFeatureMatchFilter()
30 $feature = new FeatureNode('random feature title', null, array(), null, array(), null, null, null, 1);
32 $filter = new NameFilter('feature1');
33 $this->assertFalse($filter->isFeatureMatch($feature));
35 $feature = new FeatureNode('feature1', null, array(), null, array(), null, null, null, 1);
36 $this->assertTrue($filter->isFeatureMatch($feature));
38 $feature = new FeatureNode('feature1 title', null, array(), null, array(), null, null, null, 1);
39 $this->assertTrue($filter->isFeatureMatch($feature));
41 $feature = new FeatureNode('some feature1 title', null, array(), null, array(), null, null, null, 1);
42 $this->assertTrue($filter->isFeatureMatch($feature));
44 $feature = new FeatureNode('some feature title', null, array(), null, array(), null, null, null, 1);
45 $this->assertFalse($filter->isFeatureMatch($feature));
47 $filter = new NameFilter('/fea.ure/');
48 $this->assertTrue($filter->isFeatureMatch($feature));
50 $feature = new FeatureNode('some feaSure title', null, array(), null, array(), null, null, null, 1);
51 $this->assertTrue($filter->isFeatureMatch($feature));
53 $feature = new FeatureNode('some feture title', null, array(), null, array(), null, null, null, 1);
54 $this->assertFalse($filter->isFeatureMatch($feature));
57 public function testIsScenarioMatchFilter()
59 $filter = new NameFilter('scenario1');
61 $scenario = new ScenarioNode('UNKNOWN', array(), array(), null, 2);
62 $this->assertFalse($filter->isScenarioMatch($scenario));
64 $scenario = new ScenarioNode('scenario1', array(), array(), null, 2);
65 $this->assertTrue($filter->isScenarioMatch($scenario));
67 $scenario = new ScenarioNode('scenario1 title', array(), array(), null, 2);
68 $this->assertTrue($filter->isScenarioMatch($scenario));
70 $scenario = new ScenarioNode('some scenario title', array(), array(), null, 2);
71 $this->assertFalse($filter->isScenarioMatch($scenario));
73 $filter = new NameFilter('/sce.ario/');
74 $this->assertTrue($filter->isScenarioMatch($scenario));
76 $filter = new NameFilter('/scen.rio/');
77 $this->assertTrue($filter->isScenarioMatch($scenario));