function FixtureManipulatorTest::testModifyPackageConfig
Same name and namespace in other branches
- 11.x core/modules/package_manager/tests/src/Kernel/FixtureManipulatorTest.php \Drupal\Tests\package_manager\Kernel\FixtureManipulatorTest::testModifyPackageConfig()
Tests modify package config.
File
-
core/
modules/ package_manager/ tests/ src/ Kernel/ FixtureManipulatorTest.php, line 149
Class
Namespace
Drupal\Tests\package_manager\KernelCode
public function testModifyPackageConfig() : void {
// Assert ::modifyPackage() works with a package in an existing fixture not
// created by ::addPackage().
$decode_packages_json = function () : array {
return json_decode(file_get_contents($this->dir . "/packages.json"), TRUE, flags: JSON_THROW_ON_ERROR);
};
$original_packages_json = $decode_packages_json();
(new ActiveFixtureManipulator())->modifyPackageConfig('my/dev-package', '2.1.0', [
'description' => 'something else',
], TRUE)
->commitChanges();
// Verify that the package is indeed properly installed.
$this->assertSame('2.1.0', $this->inspector
->getInstalledPackagesList($this->dir)['my/dev-package']?->version);
// Verify that the original exists, but has no description.
$this->assertSame('my/dev-package', $original_packages_json['packages']['my/dev-package']['2.1.0']['name']);
$this->assertArrayNotHasKey('description', $original_packages_json);
// Verify that the description was updated.
$this->assertSame('something else', $decode_packages_json()['packages']['my/dev-package']['2.1.0']['description']);
(new ActiveFixtureManipulator())->modifyPackageConfig('my/package', '1.2.3', [
'extra' => [
'foo' => 'bar',
],
])
->setVersion('my/dev-package', '3.2.1', TRUE)
->commitChanges();
$this->assertSame([
'foo' => 'bar',
], $decode_packages_json()['packages']['my/package']['1.2.3']['extra']);
$this->assertSame('3.2.1', $this->inspector
->getInstalledPackagesList($this->dir)['my/dev-package']?->version);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.