class InstalledPackageTest
@coversDefaultClass \Drupal\package_manager\InstalledPackage
@group package_manager
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Drupal\TestTools\Extension\DeprecationBridge\ExpectDeprecationTrait, \Drupal\Tests\RandomGeneratorTrait
- class \Drupal\Tests\package_manager\Unit\InstalledPackageTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of InstalledPackageTest
File
-
core/
modules/ package_manager/ tests/ src/ Unit/ InstalledPackageTest.php, line 15
Namespace
Drupal\Tests\package_manager\UnitView source
class InstalledPackageTest extends UnitTestCase {
/**
* @covers ::createFromArray
*
* @depends testMetapackageWithAPath
*/
public function testPathResolution() : void {
// Metapackages must be created without a path.
$package = InstalledPackage::createFromArray([
'name' => 'vendor/test',
'type' => 'metapackage',
'version' => '1.0.0',
'path' => NULL,
]);
$this->assertNull($package->path);
// Paths should be converted to real paths.
$package = InstalledPackage::createFromArray([
'name' => 'vendor/test',
'type' => 'library',
'version' => '1.0.0',
'path' => __DIR__ . '/..',
]);
$this->assertSame(realpath(__DIR__ . '/..'), $package->path);
// If we provide a path that cannot be resolved to a real path, it should
// raise an error.
$this->expectException(\TypeError::class);
InstalledPackage::createFromArray([
'name' => 'vendor/test',
'type' => 'library',
'version' => '1.0.0',
'path' => $this->getRandomGenerator()
->string(),
]);
}
/**
* @covers ::createFromArray
*/
public function testMetapackageWithAPath() : void {
$this->expectException(\AssertionError::class);
$this->expectExceptionMessage('Metapackage install path must be NULL.');
InstalledPackage::createFromArray([
'name' => 'vendor/test',
'type' => 'metapackage',
'version' => '1.0.0',
'path' => __DIR__,
]);
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.