PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\TextUI; use const PHP_VERSION; use function explode; use function in_array; use function is_dir; use function is_file; use function strpos; use function version_compare; use PHPUnit\Framework\Exception as FrameworkException; use PHPUnit\Framework\TestSuite as TestSuiteObject; use PHPUnit\TextUI\XmlConfiguration\TestSuiteCollection; use SebastianBergmann\FileIterator\Facade; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ final class TestSuiteMapper { /** * @throws RuntimeException * @throws TestDirectoryNotFoundException * @throws TestFileNotFoundException */ public function map(TestSuiteCollection $configuration, string $filter): TestSuiteObject { try { $filterAsArray = $filter ? explode(',', $filter) : []; $result = new TestSuiteObject; foreach ($configuration as $testSuiteConfiguration) { if (!empty($filterAsArray) && !in_array($testSuiteConfiguration->name(), $filterAsArray, true)) { continue; } $testSuite = new TestSuiteObject($testSuiteConfiguration->name()); $testSuiteEmpty = true; $exclude = []; foreach ($testSuiteConfiguration->exclude()->asArray() as $file) { $exclude[] = $file->path(); } foreach ($testSuiteConfiguration->directories() as $directory) { if (!version_compare(PHP_VERSION, $directory->phpVersion(), $directory->phpVersionOperator()->asString())) { continue; } $files = (new Facade)->getFilesAsArray( $directory->path(), $directory->suffix(), $directory->prefix(), $exclude ); if (!empty($files)) { $testSuite->addTestFiles($files); $testSuiteEmpty = false; } elseif (strpos($directory->path(), '*') === false && !is_dir($directory->path())) { throw new TestDirectoryNotFoundException($directory->path()); } } foreach ($testSuiteConfiguration->files() as $file) { if (!is_file($file->path())) { throw new TestFileNotFoundException($file->path()); } if (!version_compare(PHP_VERSION, $file->phpVersion(), $file->phpVersionOperator()->asString())) { continue; } $testSuite->addTestFile($file->path()); $testSuiteEmpty = false; } if (!$testSuiteEmpty) { $result->addTest($testSuite); } } return $result; } catch (FrameworkException $e) { throw new RuntimeException( $e->getMessage(), (int) $e->getCode(), $e ); } } }