31 lines
		
	
	
	
		
			1,021 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
	
		
			1,021 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php declare(strict_types=1); | ||
|  | 
 | ||
|  | namespace PhpParser; | ||
|  | 
 | ||
|  | use PHPUnit\Framework\TestCase; | ||
|  | 
 | ||
|  | require_once __DIR__ . '/CodeTestParser.php'; | ||
|  | 
 | ||
|  | abstract class CodeTestAbstract extends TestCase | ||
|  | { | ||
|  |     protected function getTests($directory, $fileExtension, $chunksPerTest = 2) { | ||
|  |         $parser = new CodeTestParser; | ||
|  |         $allTests = []; | ||
|  |         foreach (filesInDir($directory, $fileExtension) as $fileName => $fileContents) { | ||
|  |             list($name, $tests) = $parser->parseTest($fileContents, $chunksPerTest); | ||
|  | 
 | ||
|  |             // first part is the name
 | ||
|  |             $name .= ' (' . $fileName . ')'; | ||
|  |             $shortName = ltrim(str_replace($directory, '', $fileName), '/\\'); | ||
|  | 
 | ||
|  |             // multiple sections possible with always two forming a pair
 | ||
|  |             foreach ($tests as $i => list($mode, $parts)) { | ||
|  |                 $dataSetName = $shortName . (count($parts) > 1 ? '#' . $i : ''); | ||
|  |                 $allTests[$dataSetName] = array_merge([$name], $parts, [$mode]); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         return $allTests; | ||
|  |     } | ||
|  | } |