Completed
Pull Request — master (#112)
by Christophe
02:45
created

NameFilterTest::testFilterFeature()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 16
rs 9.4285
cc 1
eloc 11
nc 1
nop 0
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
}
80