1
0
Fork 0

Add types to the base TestCase

pull/10234/head
Jordi Boggiano 2021-10-27 16:37:20 +02:00
parent 44b69ba77f
commit f8ad0bb3d1
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
1 changed files with 35 additions and 5 deletions

View File

@ -23,9 +23,12 @@ use Symfony\Component\Process\ExecutableFinder;
use Composer\Package\Loader\ArrayLoader; use Composer\Package\Loader\ArrayLoader;
use Composer\Package\BasePackage; use Composer\Package\BasePackage;
use Composer\Package\RootPackage; use Composer\Package\RootPackage;
use Composer\Package\AliasPackage;
use Composer\Package\RootAliasPackage; use Composer\Package\RootAliasPackage;
use Composer\Package\CompletePackage; use Composer\Package\CompletePackage;
use Composer\Package\CompleteAliasPackage; use Composer\Package\CompleteAliasPackage;
use Composer\Package\CompletePackageInterface;
use Composer\Package\Package;
abstract class TestCase extends PolyfillTestCase abstract class TestCase extends PolyfillTestCase
{ {
@ -57,6 +60,9 @@ abstract class TestCase extends PolyfillTestCase
throw new \RuntimeException('Failed to create a unique temporary directory.'); throw new \RuntimeException('Failed to create a unique temporary directory.');
} }
/**
* @return VersionParser
*/
protected static function getVersionParser() protected static function getVersionParser()
{ {
if (!self::$parser) { if (!self::$parser) {
@ -66,6 +72,11 @@ abstract class TestCase extends PolyfillTestCase
return self::$parser; return self::$parser;
} }
/**
* @param Constraint::STR_OP_* $operator
* @param string $version
* @return Constraint
*/
protected function getVersionConstraint($operator, $version) protected function getVersionConstraint($operator, $version)
{ {
$constraint = new Constraint( $constraint = new Constraint(
@ -82,6 +93,8 @@ abstract class TestCase extends PolyfillTestCase
* @template PackageClass of PackageInterface * @template PackageClass of PackageInterface
* *
* @param string $class FQCN to be instantiated * @param string $class FQCN to be instantiated
* @param string $name
* @param string $version
* *
* @return CompletePackage|CompleteAliasPackage|RootPackage|RootAliasPackage * @return CompletePackage|CompleteAliasPackage|RootPackage|RootAliasPackage
* *
@ -94,18 +107,28 @@ abstract class TestCase extends PolyfillTestCase
return new $class($name, $normVersion, $version); return new $class($name, $normVersion, $version);
} }
protected function getAliasPackage($package, $version) /**
* @param string $version
* @return AliasPackage|RootAliasPackage|CompleteAliasPackage
*/
protected function getAliasPackage(Package $package, $version)
{ {
$normVersion = self::getVersionParser()->normalize($version); $normVersion = self::getVersionParser()->normalize($version);
$class = 'Composer\Package\AliasPackage'; if ($package instanceof RootPackage) {
if ($package instanceof RootPackageInterface) { return new RootAliasPackage($package, $normVersion, $version);
$class = 'Composer\Package\RootAliasPackage'; }
if ($package instanceof CompletePackage) {
return new CompleteAliasPackage($package, $normVersion, $version);
} }
return new $class($package, $normVersion, $version); return new AliasPackage($package, $normVersion, $version);
} }
/**
* @param array<string, array<string, string>> $config
* @return void
*/
protected function configureLinks(PackageInterface $package, array $config) protected function configureLinks(PackageInterface $package, array $config)
{ {
$arrayLoader = new ArrayLoader(); $arrayLoader = new ArrayLoader();
@ -125,6 +148,10 @@ abstract class TestCase extends PolyfillTestCase
} }
} }
/**
* @param string $directory
* @return void
*/
protected static function ensureDirectoryExistsAndClear($directory) protected static function ensureDirectoryExistsAndClear($directory)
{ {
$fs = new Filesystem(); $fs = new Filesystem();
@ -141,6 +168,8 @@ abstract class TestCase extends PolyfillTestCase
* *
* @param string $executableName The name of the binary to test. * @param string $executableName The name of the binary to test.
* *
* @return void
*
* @throws \PHPUnit\Framework\SkippedTestError * @throws \PHPUnit\Framework\SkippedTestError
*/ */
protected function skipIfNotExecutable($executableName) protected function skipIfNotExecutable($executableName)
@ -159,6 +188,7 @@ abstract class TestCase extends PolyfillTestCase
* @param string $exception * @param string $exception
* @param string|null $message * @param string|null $message
* @param int|null $code * @param int|null $code
* @return void
*/ */
public function setExpectedException($exception, $message = null, $code = null) public function setExpectedException($exception, $message = null, $code = null)
{ {