From 1f2d2fa44d8a13e04321c3c2be5381d35e106ac3 Mon Sep 17 00:00:00 2001
From: tedbow <tedbow@240860.no-reply.drupal.org>
Date: Thu, 2 Dec 2021 15:31:35 +0000
Subject: [PATCH] Issue #3251972 by tedbow, phenaproxima: Make
 `\Drupal\package_manager\Stage::getStageDirectory` public

---
 package_manager/src/Stage.php                 |  2 +-
 .../tests/src/Kernel/StageTest.php            | 30 +++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)
 create mode 100644 package_manager/tests/src/Kernel/StageTest.php

diff --git a/package_manager/src/Stage.php b/package_manager/src/Stage.php
index abaa72ef42..6548db10cf 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 0000000000..0ed5f56049
--- /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();
+  }
+
+}
-- 
GitLab