class InstalledPackageTest

@coversDefaultClass \Drupal\package_manager\InstalledPackage

@group package_manager

Hierarchy

Expanded class hierarchy of InstalledPackageTest

File

core/modules/package_manager/tests/src/Unit/InstalledPackageTest.php, line 15

Namespace

Drupal\Tests\package_manager\Unit
View 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.