File "MigrationBuilder.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/vendor/phpunit/phpunit/src/TextUI/XmlConfiguration/Migration/MigrationBuilder.php
File size: 1.71 KB
MIME-type: text/x-php
Charset: utf-8
<?php declare(strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\TextUI\XmlConfiguration;
use function version_compare;
/**
* @internal This class is not covered by the backward compatibility promise for PHPUnit
*/
final class MigrationBuilder
{
private const AVAILABLE_MIGRATIONS = [
'8.5' => [
RemoveLogTypes::class,
],
'9.2' => [
RemoveCacheTokensAttribute::class,
IntroduceCoverageElement::class,
MoveAttributesFromRootToCoverage::class,
MoveAttributesFromFilterWhitelistToCoverage::class,
MoveWhitelistIncludesToCoverage::class,
MoveWhitelistExcludesToCoverage::class,
RemoveEmptyFilter::class,
CoverageCloverToReport::class,
CoverageCrap4jToReport::class,
CoverageHtmlToReport::class,
CoveragePhpToReport::class,
CoverageTextToReport::class,
CoverageXmlToReport::class,
ConvertLogTypes::class,
UpdateSchemaLocationTo93::class,
],
];
/**
* @throws MigrationBuilderException
*/
public function build(string $fromVersion): array
{
$stack = [];
foreach (self::AVAILABLE_MIGRATIONS as $version => $migrations) {
if (version_compare($version, $fromVersion, '<')) {
continue;
}
foreach ($migrations as $migration) {
$stack[] = new $migration;
}
}
return $stack;
}
}