5eaf9d1b26dc694e36ad1e76c54e8a2956855ed6
[yaffs-website] / vendor / nikic / php-parser / test / PhpParser / CodeTestAbstract.php
1 <?php declare(strict_types=1);
2
3 namespace PhpParser;
4
5 use PHPUnit\Framework\TestCase;
6
7 require_once __DIR__ . '/CodeTestParser.php';
8
9 abstract class CodeTestAbstract extends TestCase
10 {
11     protected function getTests($directory, $fileExtension, $chunksPerTest = 2) {
12         $parser = new CodeTestParser;
13         $allTests = [];
14         foreach (filesInDir($directory, $fileExtension) as $fileName => $fileContents) {
15             list($name, $tests) = $parser->parseTest($fileContents, $chunksPerTest);
16
17             // first part is the name
18             $name .= ' (' . $fileName . ')';
19             $shortName = ltrim(str_replace($directory, '', $fileName), '/\\');
20
21             // multiple sections possible with always two forming a pair
22             foreach ($tests as $i => list($mode, $parts)) {
23                 $dataSetName = $shortName . (count($parts) > 1 ? '#' . $i : '');
24                 $allTests[$dataSetName] = array_merge([$name], $parts, [$mode]);
25             }
26         }
27
28         return $allTests;
29     }
30 }