24914ecf1f3ddcec937afef3bf93021e3c74f09e
[yaffs-website] / vendor / behat / gherkin / tests / Behat / Gherkin / Filter / NameFilterTest.php
1 <?php
2
3 namespace Tests\Behat\Gherkin\Filter;
4
5 use Behat\Gherkin\Filter\NameFilter;
6 use Behat\Gherkin\Node\FeatureNode;
7 use Behat\Gherkin\Node\ScenarioNode;
8
9 class NameFilterTest extends \PHPUnit_Framework_TestCase
10 {
11     public function testFilterFeature()
12     {
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));
16
17         $scenarios = array(
18             new ScenarioNode('scenario1', array(), array(), null, 2),
19             $matchedScenario = new ScenarioNode('scenario2', array(), array(), null, 4)
20         );
21         $feature = new FeatureNode('feature1', null, array(), null, $scenarios, null, null, null, 1);
22         $filter = new NameFilter('scenario2');
23         $filteredFeature = $filter->filterFeature($feature);
24
25         $this->assertSame(array($matchedScenario), $filteredFeature->getScenarios());
26     }
27
28     public function testIsFeatureMatchFilter()
29     {
30         $feature = new FeatureNode('random feature title', null, array(), null, array(), null, null, null, 1);
31
32         $filter = new NameFilter('feature1');
33         $this->assertFalse($filter->isFeatureMatch($feature));
34
35         $feature = new FeatureNode('feature1', null, array(), null, array(), null, null, null, 1);
36         $this->assertTrue($filter->isFeatureMatch($feature));
37
38         $feature = new FeatureNode('feature1 title', null, array(), null, array(), null, null, null, 1);
39         $this->assertTrue($filter->isFeatureMatch($feature));
40
41         $feature = new FeatureNode('some feature1 title', null, array(), null, array(), null, null, null, 1);
42         $this->assertTrue($filter->isFeatureMatch($feature));
43
44         $feature = new FeatureNode('some feature title', null, array(), null, array(), null, null, null, 1);
45         $this->assertFalse($filter->isFeatureMatch($feature));
46
47         $filter = new NameFilter('/fea.ure/');
48         $this->assertTrue($filter->isFeatureMatch($feature));
49
50         $feature = new FeatureNode('some feaSure title', null, array(), null, array(), null, null, null, 1);
51         $this->assertTrue($filter->isFeatureMatch($feature));
52
53         $feature = new FeatureNode('some feture title', null, array(), null, array(), null, null, null, 1);
54         $this->assertFalse($filter->isFeatureMatch($feature));
55     }
56
57     public function testIsScenarioMatchFilter()
58     {
59         $filter = new NameFilter('scenario1');
60
61         $scenario = new ScenarioNode('UNKNOWN', array(), array(), null, 2);
62         $this->assertFalse($filter->isScenarioMatch($scenario));
63
64         $scenario = new ScenarioNode('scenario1', array(), array(), null, 2);
65         $this->assertTrue($filter->isScenarioMatch($scenario));
66
67         $scenario = new ScenarioNode('scenario1 title', array(), array(), null, 2);
68         $this->assertTrue($filter->isScenarioMatch($scenario));
69
70         $scenario = new ScenarioNode('some scenario title', array(), array(), null, 2);
71         $this->assertFalse($filter->isScenarioMatch($scenario));
72
73         $filter = new NameFilter('/sce.ario/');
74         $this->assertTrue($filter->isScenarioMatch($scenario));
75
76         $filter = new NameFilter('/scen.rio/');
77         $this->assertTrue($filter->isScenarioMatch($scenario));
78     }
79 }