NameFilterTest::testIsScenarioMatchFilter()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 9.568
c 0
b 0
f 0
cc 1
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
use PHPUnit\Framework\TestCase;
9
10
class NameFilterTest extends TestCase
11
{
12
    public function testFilterFeature()
13
    {
14
        $feature = new FeatureNode('feature1', null, array(), null, array(), null, null, null, 1);
15
        $filter = new NameFilter('feature1');
16
        $this->assertSame($feature, $filter->filterFeature($feature));
17
18
        $scenarios = array(
19
            new ScenarioNode('scenario1', array(), array(), null, 2),
20
            $matchedScenario = new ScenarioNode('scenario2', array(), array(), null, 4)
21
        );
22
        $feature = new FeatureNode('feature1', null, array(), null, $scenarios, null, null, null, 1);
23
        $filter = new NameFilter('scenario2');
24
        $filteredFeature = $filter->filterFeature($feature);
25
26
        $this->assertSame(array($matchedScenario), $filteredFeature->getScenarios());
27
    }
28
29
    public function testIsFeatureMatchFilter()
30
    {
31
        $feature = new FeatureNode('random feature title', null, array(), null, array(), null, null, null, 1);
32
33
        $filter = new NameFilter('feature1');
34
        $this->assertFalse($filter->isFeatureMatch($feature));
35
36
        $feature = new FeatureNode('feature1', null, array(), null, array(), null, null, null, 1);
37
        $this->assertTrue($filter->isFeatureMatch($feature));
38
39
        $feature = new FeatureNode('feature1 title', null, array(), null, array(), null, null, null, 1);
40
        $this->assertTrue($filter->isFeatureMatch($feature));
41
42
        $feature = new FeatureNode('some feature1 title', null, array(), null, array(), null, null, null, 1);
43
        $this->assertTrue($filter->isFeatureMatch($feature));
44
45
        $feature = new FeatureNode('some feature title', null, array(), null, array(), null, null, null, 1);
46
        $this->assertFalse($filter->isFeatureMatch($feature));
47
48
        $filter = new NameFilter('/fea.ure/');
49
        $this->assertTrue($filter->isFeatureMatch($feature));
50
51
        $feature = new FeatureNode('some feaSure title', null, array(), null, array(), null, null, null, 1);
52
        $this->assertTrue($filter->isFeatureMatch($feature));
53
54
        $feature = new FeatureNode('some feture title', null, array(), null, array(), null, null, null, 1);
55
        $this->assertFalse($filter->isFeatureMatch($feature));
56
    }
57
58
    public function testIsScenarioMatchFilter()
59
    {
60
        $filter = new NameFilter('scenario1');
61
62
        $scenario = new ScenarioNode('UNKNOWN', array(), array(), null, 2);
63
        $this->assertFalse($filter->isScenarioMatch($scenario));
64
65
        $scenario = new ScenarioNode('scenario1', array(), array(), null, 2);
66
        $this->assertTrue($filter->isScenarioMatch($scenario));
67
68
        $scenario = new ScenarioNode('scenario1 title', array(), array(), null, 2);
69
        $this->assertTrue($filter->isScenarioMatch($scenario));
70
71
        $scenario = new ScenarioNode('some scenario title', array(), array(), null, 2);
72
        $this->assertFalse($filter->isScenarioMatch($scenario));
73
74
        $filter = new NameFilter('/sce.ario/');
75
        $this->assertTrue($filter->isScenarioMatch($scenario));
76
77
        $filter = new NameFilter('/scen.rio/');
78
        $this->assertTrue($filter->isScenarioMatch($scenario));
79
    }
80
}
81