1515use Behat \Gherkin \Node \FeatureNode ;
1616use Behat \Gherkin \Node \OutlineNode ;
1717use Behat \Gherkin \Node \ScenarioNode ;
18+ use PHPUnit \Framework \Attributes \DataProvider ;
1819
1920class LineRangeFilterTest extends FilterTestCase
2021{
21- public function featureLineRangeProvider ()
22+ public static function featureLineRangeProvider (): iterable
2223 {
2324 return [
2425 ['1 ' , '1 ' , true ],
@@ -29,18 +30,16 @@ public function featureLineRangeProvider()
2930 ];
3031 }
3132
32- /**
33- * @dataProvider featureLineRangeProvider
34- */
35- public function testIsFeatureMatchFilter ($ filterMinLine , $ filterMaxLine , $ expected )
33+ #[DataProvider('featureLineRangeProvider ' )]
34+ public function testIsFeatureMatchFilter (string $ filterMinLine , string $ filterMaxLine , bool $ expected ): void
3635 {
3736 $ feature = new FeatureNode (null , null , [], null , [], null , null , null , 1 );
3837
3938 $ filter = new LineRangeFilter ($ filterMinLine , $ filterMaxLine );
4039 $ this ->assertSame ($ expected , $ filter ->isFeatureMatch ($ feature ));
4140 }
4241
43- public function scenarioLineRangeProvider ()
42+ public static function scenarioLineRangeProvider (): iterable
4443 {
4544 return [
4645 ['1 ' , '2 ' , 1 ],
@@ -55,22 +54,20 @@ public function scenarioLineRangeProvider()
5554 ];
5655 }
5756
58- /**
59- * @dataProvider scenarioLineRangeProvider
60- */
61- public function testIsScenarioMatchFilter ($ filterMinLine , $ filterMaxLine , $ expectedNumberOfMatches )
57+ #[DataProvider('scenarioLineRangeProvider ' )]
58+ public function testIsScenarioMatchFilter (string $ filterMinLine , string $ filterMaxLine , int $ expectedNumberOfMatches ): void
6259 {
6360 $ scenario = new ScenarioNode (null , [], [], null , 2 );
6461 $ outline = new OutlineNode (null , [], [], [new ExampleTableNode ([], null )], null , 3 );
6562
6663 $ filter = new LineRangeFilter ($ filterMinLine , $ filterMaxLine );
6764 $ this ->assertEquals (
6865 $ expectedNumberOfMatches ,
69- intval ( $ filter ->isScenarioMatch ($ scenario )) + intval ( $ filter ->isScenarioMatch ($ outline) )
66+ ( int ) $ filter ->isScenarioMatch ($ scenario ) + ( int ) $ filter ->isScenarioMatch ($ outline )
7067 );
7168 }
7269
73- public function testFilterFeatureScenario ()
70+ public function testFilterFeatureScenario (): void
7471 {
7572 $ filter = new LineRangeFilter (1 , 3 );
7673 $ feature = $ filter ->filterFeature ($ this ->getParsedFeature ());
@@ -87,19 +84,20 @@ public function testFilterFeatureScenario()
8784 $ this ->assertCount (0 , $ scenarios = $ feature ->getScenarios ());
8885 }
8986
90- public function testFilterFeatureOutline ()
87+ public function testFilterFeatureOutline (): void
9188 {
9289 $ filter = new LineRangeFilter (12 , 14 );
9390 $ feature = $ filter ->filterFeature ($ this ->getParsedFeature ());
94- /* @var OutlineNode[] $scenarios */
9591 $ this ->assertCount (1 , $ scenarios = $ feature ->getScenarios ());
9692 $ this ->assertSame ('Scenario#3 ' , $ scenarios [0 ]->getTitle ());
93+ $ this ->assertInstanceOf (OutlineNode::class, $ scenarios [0 ]);
9794 $ this ->assertFalse ($ scenarios [0 ]->hasExamples ());
9895
9996 $ filter = new LineRangeFilter (16 , 21 );
10097 $ feature = $ filter ->filterFeature ($ this ->getParsedFeature ());
10198 $ this ->assertCount (1 , $ scenarios = $ feature ->getScenarios ());
10299 $ this ->assertSame ('Scenario#3 ' , $ scenarios [0 ]->getTitle ());
100+ $ this ->assertInstanceOf (OutlineNode::class, $ scenarios [0 ]);
103101 $ exampleTableNodes = $ scenarios [0 ]->getExampleTables ();
104102 $ this ->assertCount (1 , $ exampleTableNodes );
105103 $ this ->assertCount (3 , $ exampleTableNodes [0 ]->getRows ());
@@ -114,6 +112,7 @@ public function testFilterFeatureOutline()
114112 $ feature = $ filter ->filterFeature ($ this ->getParsedFeature ());
115113 $ this ->assertCount (1 , $ scenarios = $ feature ->getScenarios ());
116114 $ this ->assertSame ('Scenario#3 ' , $ scenarios [0 ]->getTitle ());
115+ $ this ->assertInstanceOf (OutlineNode::class, $ scenarios [0 ]);
117116 $ exampleTableNodes = $ scenarios [0 ]->getExampleTables ();
118117 $ this ->assertCount (2 , $ exampleTableNodes );
119118
@@ -137,6 +136,7 @@ public function testFilterFeatureOutline()
137136 $ feature = $ filter ->filterFeature ($ this ->getParsedFeature ());
138137 $ this ->assertCount (1 , $ scenarios = $ feature ->getScenarios ());
139138 $ this ->assertSame ('Scenario#3 ' , $ scenarios [0 ]->getTitle ());
139+ $ this ->assertInstanceOf (OutlineNode::class, $ scenarios [0 ]);
140140 $ exampleTableNodes = $ scenarios [0 ]->getExampleTables ();
141141 $ this ->assertCount (1 , $ exampleTableNodes );
142142 $ this ->assertCount (2 , $ exampleTableNodes [0 ]->getRows ());
0 commit comments