diff --git a/package_manager/src/Stage.php b/package_manager/src/Stage.php index abaa72ef42b1cfc5c15032a3072641140d07bc83..6548db10cf65b6addb8f6a034aa38ec1273394fb 100644 --- a/package_manager/src/Stage.php +++ b/package_manager/src/Stage.php @@ -435,7 +435,7 @@ class Stage { * * @todo Make this method public in https://www.drupal.org/i/3251972. */ - protected function getStageDirectory(): string { + public function getStageDirectory(): string { if (!$this->lock) { throw new \LogicException(__METHOD__ . '() cannot be called because the stage has not been created or claimed.'); } diff --git a/package_manager/tests/src/Kernel/StageTest.php b/package_manager/tests/src/Kernel/StageTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0ed5f56049ab936218670b10af52aa2ec41e2e3c --- /dev/null +++ b/package_manager/tests/src/Kernel/StageTest.php @@ -0,0 +1,30 @@ +<?php + +namespace Drupal\Tests\package_manager\Kernel; + +/** + * @coversDefaultClass \Drupal\package_manager\Stage + * + * @group package_manager + */ +class StageTest extends PackageManagerKernelTestBase { + + /** + * @covers ::getStageDirectory + */ + public function testGetStageDirectory(): void { + $stage = $this->createStage(); + $id = $stage->create(); + $this->assertStringEndsWith("/.package_manager/$id", $stage->getStageDirectory()); + } + + /** + * @covers ::getStageDirectory + */ + public function testUncreatedGetStageDirectory(): void { + $this->expectException('LogicException'); + $this->expectExceptionMessage('Drupal\package_manager\Stage::getStageDirectory() cannot be called because the stage has not been created or claimed.'); + $this->createStage()->getStageDirectory(); + } + +}