@@ -16,21 +16,43 @@ final class BackfillFnTokenTest extends AbstractTokenizerTestCase
16
16
/**
17
17
* Test simple arrow functions.
18
18
*
19
- * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional
19
+ * @param string $testMarker The comment prefacing the target token.
20
+ *
21
+ * @dataProvider dataSimple
22
+ * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional
20
23
*
21
24
* @return void
22
25
*/
23
- public function testSimple ()
26
+ public function testSimple ($ testMarker )
24
27
{
25
- foreach (['/* testStandard */ ' , '/* testMixedCase */ ' ] as $ comment ) {
26
- $ token = $ this ->getTargetToken ($ comment , T_FN );
27
- $ this ->backfillHelper ($ token );
28
- $ this ->scopePositionTestHelper ($ token , 5 , 12 );
29
- }
28
+ $ token = $ this ->getTargetToken ($ testMarker , T_FN );
29
+ $ this ->backfillHelper ($ token );
30
+ $ this ->scopePositionTestHelper ($ token , 5 , 12 );
30
31
31
32
}//end testSimple()
32
33
33
34
35
+ /**
36
+ * Data provider.
37
+ *
38
+ * @see testSimple()
39
+ *
40
+ * @return array<string, array<string, string>>
41
+ */
42
+ public static function dataSimple ()
43
+ {
44
+ return [
45
+ 'standard ' => [
46
+ 'testMarker ' => '/* testStandard */ ' ,
47
+ ],
48
+ 'mixed case ' => [
49
+ 'testMarker ' => '/* testMixedCase */ ' ,
50
+ ],
51
+ ];
52
+
53
+ }//end dataSimple()
54
+
55
+
34
56
/**
35
57
* Test whitespace inside arrow function definitions.
36
58
*
@@ -370,44 +392,54 @@ public function testNamespaceOperatorInTypes()
370
392
371
393
372
394
/**
373
- * Test arrow functions that use self/parent/callable/array/static return types.
395
+ * Test arrow functions that use keyword return types.
374
396
*
375
- * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional
397
+ * @param string $testMarker The comment prefacing the target token.
398
+ *
399
+ * @dataProvider dataKeywordReturnTypes
400
+ * @covers PHP_CodeSniffer\Tokenizers\PHP::processAdditional
376
401
*
377
402
* @return void
378
403
*/
379
- public function testKeywordReturnTypes ()
404
+ public function testKeywordReturnTypes ($ testMarker )
380
405
{
381
406
$ tokens = $ this ->phpcsFile ->getTokens ();
382
407
383
- $ testMarkers = [
384
- 'Self ' ,
385
- 'Parent ' ,
386
- 'Callable ' ,
387
- 'Array ' ,
388
- 'Static ' ,
389
- ];
390
-
391
- foreach ($ testMarkers as $ marker ) {
392
- $ token = $ this ->getTargetToken ('/* test ' .$ marker .'ReturnType */ ' , T_FN );
393
- $ this ->backfillHelper ($ token );
394
-
395
- $ expectedScopeOpener = ($ token + 11 );
396
- $ expectedScopeCloser = ($ token + 14 );
408
+ $ token = $ this ->getTargetToken ($ testMarker , T_FN );
409
+ $ this ->backfillHelper ($ token );
410
+ $ this ->scopePositionTestHelper ($ token , 11 , 14 );
397
411
398
- $ this ->assertSame ($ expectedScopeOpener , $ tokens [$ token ]['scope_opener ' ], "Scope opener is not the arrow token (for $ marker) " );
399
- $ this ->assertSame ($ expectedScopeCloser , $ tokens [$ token ]['scope_closer ' ], "Scope closer is not the semicolon token(for $ marker) " );
412
+ }//end testKeywordReturnTypes()
400
413
401
- $ opener = $ tokens [$ token ]['scope_opener ' ];
402
- $ this ->assertSame ($ expectedScopeOpener , $ tokens [$ opener ]['scope_opener ' ], "Opener scope opener is not the arrow token(for $ marker) " );
403
- $ this ->assertSame ($ expectedScopeCloser , $ tokens [$ opener ]['scope_closer ' ], "Opener scope closer is not the semicolon token(for $ marker) " );
404
414
405
- $ closer = $ tokens [$ token ]['scope_closer ' ];
406
- $ this ->assertSame ($ expectedScopeOpener , $ tokens [$ closer ]['scope_opener ' ], "Closer scope opener is not the arrow token(for $ marker) " );
407
- $ this ->assertSame ($ expectedScopeCloser , $ tokens [$ closer ]['scope_closer ' ], "Closer scope closer is not the semicolon token(for $ marker) " );
408
- }
415
+ /**
416
+ * Data provider.
417
+ *
418
+ * @see testKeywordReturnTypes()
419
+ *
420
+ * @return array<string, array<string, string>>
421
+ */
422
+ public static function dataKeywordReturnTypes ()
423
+ {
424
+ return [
425
+ 'self ' => [
426
+ 'testMarker ' => '/* testSelfReturnType */ ' ,
427
+ ],
428
+ 'parent ' => [
429
+ 'testMarker ' => '/* testParentReturnType */ ' ,
430
+ ],
431
+ 'callable ' => [
432
+ 'testMarker ' => '/* testCallableReturnType */ ' ,
433
+ ],
434
+ 'array ' => [
435
+ 'testMarker ' => '/* testArrayReturnType */ ' ,
436
+ ],
437
+ 'static ' => [
438
+ 'testMarker ' => '/* testStaticReturnType */ ' ,
439
+ ],
440
+ ];
409
441
410
- }//end testKeywordReturnTypes ()
442
+ }//end dataKeywordReturnTypes ()
411
443
412
444
413
445
/**
0 commit comments