From b595dc4ad304462426abda8a5bcd1ec6a3634357 Mon Sep 17 00:00:00 2001
From: phenaproxima <phenaproxima@205645.no-reply.drupal.org>
Date: Mon, 13 Sep 2021 17:12:21 +0000
Subject: [PATCH] Issue #3230668 by phenaproxima, tedbow: Split out Composer
 Stager wiring into Package Manager submodule

---
 automatic_updates.info.yml                    |  3 +-
 automatic_updates.services.yml                | 66 ++--------------
 package_manager/package_manager.info.yml      |  4 +
 package_manager/package_manager.services.yml  | 75 +++++++++++++++++++
 .../src}/ProcessFactory.php                   |  2 +-
 .../package_manager_bypass.info.yml           |  6 ++
 .../package_manager_bypass.services.yml       |  9 +++
 .../package_manager_bypass}/src/Beginner.php  |  2 +-
 .../package_manager_bypass}/src/Committer.php |  2 +-
 .../PackageManagerBypassServiceProvider.php   | 10 +--
 .../package_manager_bypass}/src/Stager.php    |  2 +-
 .../tests/src/Kernel/ServicesTest.php         | 34 +++++++++
 src/ComposerStager/Cleaner.php                | 12 +--
 .../composer_stager_bypass.info.yml           |  6 --
 .../composer_stager_bypass.services.yml       |  9 ---
 .../Functional/FileSystemOperationsTest.php   |  8 +-
 tests/src/Functional/UpdaterFormTest.php      |  2 +-
 .../src/Kernel/ComposerStagerServicesTest.php | 46 ------------
 .../ComposerExecutableValidatorTest.php       |  9 ++-
 .../ReadinessValidationManagerTest.php        |  6 +-
 tests/src/Kernel/UpdaterTest.php              |  4 +-
 21 files changed, 167 insertions(+), 150 deletions(-)
 create mode 100644 package_manager/package_manager.info.yml
 create mode 100644 package_manager/package_manager.services.yml
 rename {src/ComposerStager => package_manager/src}/ProcessFactory.php (97%)
 create mode 100644 package_manager/tests/modules/package_manager_bypass/package_manager_bypass.info.yml
 create mode 100644 package_manager/tests/modules/package_manager_bypass/package_manager_bypass.services.yml
 rename {tests/modules/composer_stager_bypass => package_manager/tests/modules/package_manager_bypass}/src/Beginner.php (91%)
 rename {tests/modules/composer_stager_bypass => package_manager/tests/modules/package_manager_bypass}/src/Committer.php (96%)
 rename tests/modules/composer_stager_bypass/src/ComposerStagerBypassServiceProvider.php => package_manager/tests/modules/package_manager_bypass/src/PackageManagerBypassServiceProvider.php (53%)
 rename {tests/modules/composer_stager_bypass => package_manager/tests/modules/package_manager_bypass}/src/Stager.php (91%)
 create mode 100644 package_manager/tests/src/Kernel/ServicesTest.php
 delete mode 100644 tests/modules/composer_stager_bypass/composer_stager_bypass.info.yml
 delete mode 100644 tests/modules/composer_stager_bypass/composer_stager_bypass.services.yml
 delete mode 100644 tests/src/Kernel/ComposerStagerServicesTest.php

diff --git a/automatic_updates.info.yml b/automatic_updates.info.yml
index 27a6926201..576b8708f8 100644
--- a/automatic_updates.info.yml
+++ b/automatic_updates.info.yml
@@ -3,5 +3,6 @@ type: module
 description: 'Experimental module to develop automatic updates. Currently the module provides checks for update readiness but does not yet provide update functionality.'
 core_version_requirement: ^9
 dependencies:
-  - drupal:automatic_updates_9_3_shim
+  - automatic_updates:package_manager
+  - automatic_updates:automatic_updates_9_3_shim
   - drupal:update
diff --git a/automatic_updates.services.yml b/automatic_updates.services.yml
index 72b819fa9c..458c4dd095 100644
--- a/automatic_updates.services.yml
+++ b/automatic_updates.services.yml
@@ -4,70 +4,16 @@ services:
     arguments: ['@keyvalue.expirable', '@datetime.time', 24]
   automatic_updates.updater:
     class: Drupal\automatic_updates\Updater
-    arguments: ['@state', '@string_translation','@automatic_updates.beginner', '@automatic_updates.stager', '@automatic_updates.cleaner', '@automatic_updates.committer', '@event_dispatcher', '@automatic_updates.path_locator']
-  automatic_updates.beginner:
-    class: PhpTuf\ComposerStager\Domain\Beginner
-    arguments:
-      ['@automatic_updates.file_copier', '@automatic_updates.file_system' ]
-  automatic_updates.stager:
-    class: PhpTuf\ComposerStager\Domain\Stager
-    arguments:
-      ['@automatic_updates.composer_runner', '@automatic_updates.file_system' ]
+    arguments: ['@state', '@string_translation','@package_manager.beginner', '@package_manager.stager', '@automatic_updates.cleaner', '@package_manager.committer', '@event_dispatcher', '@automatic_updates.path_locator']
   automatic_updates.cleaner:
     class: Drupal\automatic_updates\ComposerStager\Cleaner
+    decorates: package_manager.cleaner
+    public: false
     arguments:
-      - '@automatic_updates.file_system'
+      - '@automatic_updates.cleaner.inner'
       - '%site.path%'
       - '@automatic_updates.path_locator'
-  automatic_updates.committer:
-    class: PhpTuf\ComposerStager\Domain\Committer
-    arguments:
-      ['@automatic_updates.file_copier', '@automatic_updates.file_system' ]
-  automatic_updates.composer_runner:
-    class: PhpTuf\ComposerStager\Infrastructure\Process\Runner\ComposerRunner
-    arguments:
-      ['@automatic_updates.exec_finder', '@automatic_updates.process_factory' ]
-  automatic_updates.file_copier.factory:
-    class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\FileCopierFactory
-    arguments:
-      - '@automatic_updates.symfony_exec_finder'
-      - '@automatic_updates.file_copier.php'
-      - '@automatic_updates.file_copier.rsync'
-  automatic_updates.file_copier.rsync:
-    class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\RsyncFileCopier
-    arguments:
-      - '@automatic_updates.file_system'
-      - '@automatic_updates.rsync'
-  automatic_updates.file_copier.php:
-    class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\PhpFileCopier
-    arguments:
-      - '@automatic_updates.file_system'
-      - '@automatic_updates.finder'
-      - '@automatic_updates.finder'
-  automatic_updates.finder:
-    class: Symfony\Component\Finder\Finder
-    public: false
-  automatic_updates.file_copier:
-    class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\FileCopierInterface
-    factory: ['@automatic_updates.file_copier.factory', 'create']
-  automatic_updates.file_system:
-    class: PhpTuf\ComposerStager\Infrastructure\Filesystem\Filesystem
-    arguments:
-      ['@automatic_updates.symfony_file_system' ]
-  automatic_updates.symfony_file_system:
-    class: Symfony\Component\Filesystem\Filesystem
-  automatic_updates.symfony_exec_finder:
-    class: Symfony\Component\Process\ExecutableFinder
-  automatic_updates.rsync:
-    class: PhpTuf\ComposerStager\Infrastructure\Process\Runner\RsyncRunner
-    arguments:
-      ['@automatic_updates.exec_finder', '@automatic_updates.process_factory' ]
-  automatic_updates.exec_finder:
-    class: PhpTuf\ComposerStager\Infrastructure\Process\ExecutableFinder
-    arguments:
-      ['@automatic_updates.symfony_exec_finder' ]
-  automatic_updates.process_factory:
-    class: Drupal\automatic_updates\ComposerStager\ProcessFactory
+    properties: { _serviceId: package_manager.cleaner }
   automatic_updates.excluded_paths_subscriber:
     class: Drupal\automatic_updates\Event\ExcludedPathsSubscriber
     arguments: ['%app.root%', '%site.path%', '@file_system', '@stream_wrapper_manager']
@@ -85,7 +31,7 @@ services:
       - { name: event_subscriber }
   automatic_updates.composer_executable_validator:
     class: Drupal\automatic_updates\Validator\ComposerExecutableValidator
-    arguments: ['@automatic_updates.composer_runner']
+    arguments: ['@package_manager.composer_runner']
     tags:
       - { name: event_subscriber }
   automatic_updates.path_locator:
diff --git a/package_manager/package_manager.info.yml b/package_manager/package_manager.info.yml
new file mode 100644
index 0000000000..dfb5b5ffe2
--- /dev/null
+++ b/package_manager/package_manager.info.yml
@@ -0,0 +1,4 @@
+name: 'Package Manager'
+type: module
+description: 'API module providing functionality for staging package updates.'
+core_version_requirement: ^9
diff --git a/package_manager/package_manager.services.yml b/package_manager/package_manager.services.yml
new file mode 100644
index 0000000000..3c0d4d8c28
--- /dev/null
+++ b/package_manager/package_manager.services.yml
@@ -0,0 +1,75 @@
+services:
+  # Underlying Symfony utilities.
+  package_manager.symfony_file_system:
+    class: Symfony\Component\Filesystem\Filesystem
+  package_manager.symfony_executable_finder:
+    class: Symfony\Component\Process\ExecutableFinder
+  package_manager.symfony_finder:
+    class: Symfony\Component\Finder\Finder
+
+  # Basic infrastructure services.
+  package_manager.process_factory:
+    class: Drupal\package_manager\ProcessFactory
+  package_manager.file_system:
+    class: PhpTuf\ComposerStager\Infrastructure\Filesystem\Filesystem
+    arguments:
+      - '@package_manager.symfony_file_system'
+  package_manager.executable_finder:
+    class: PhpTuf\ComposerStager\Infrastructure\Process\ExecutableFinder
+    arguments:
+      - '@package_manager.symfony_executable_finder'
+
+  # Executable runners.
+  package_manager.rsync_runner:
+    class: PhpTuf\ComposerStager\Infrastructure\Process\Runner\RsyncRunner
+    arguments:
+      - '@package_manager.executable_finder'
+      - '@package_manager.process_factory'
+  package_manager.composer_runner:
+    class: PhpTuf\ComposerStager\Infrastructure\Process\Runner\ComposerRunner
+    arguments:
+      - '@package_manager.executable_finder'
+      - '@package_manager.process_factory'
+
+  # File copiers.
+  package_manager.file_copier.rsync:
+    class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\RsyncFileCopier
+    arguments:
+      - '@package_manager.file_system'
+      - '@package_manager.rsync_runner'
+  package_manager.file_copier.php:
+    class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\PhpFileCopier
+    arguments:
+      - '@package_manager.file_system'
+      - '@package_manager.symfony_finder'
+      - '@package_manager.symfony_finder'
+  package_manager.file_copier.factory:
+    class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\FileCopierFactory
+    arguments:
+      - '@package_manager.symfony_executable_finder'
+      - '@package_manager.file_copier.php'
+      - '@package_manager.file_copier.rsync'
+  package_manager.file_copier:
+    class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\FileCopierInterface
+    factory: ['@package_manager.file_copier.factory', 'create']
+
+  # Domain services.
+  package_manager.beginner:
+    class: PhpTuf\ComposerStager\Domain\Beginner
+    arguments:
+      - '@package_manager.file_copier'
+      - '@package_manager.file_system'
+  package_manager.stager:
+    class: PhpTuf\ComposerStager\Domain\Stager
+    arguments:
+      - '@package_manager.composer_runner'
+      - '@package_manager.file_system'
+  package_manager.committer:
+    class: PhpTuf\ComposerStager\Domain\Committer
+    arguments:
+      - '@package_manager.file_copier'
+      - '@package_manager.file_system'
+  package_manager.cleaner:
+    class: PhpTuf\ComposerStager\Domain\Cleaner
+    arguments:
+      - '@package_manager.file_system'
diff --git a/src/ComposerStager/ProcessFactory.php b/package_manager/src/ProcessFactory.php
similarity index 97%
rename from src/ComposerStager/ProcessFactory.php
rename to package_manager/src/ProcessFactory.php
index b190f57087..6fc84dc986 100644
--- a/src/ComposerStager/ProcessFactory.php
+++ b/package_manager/src/ProcessFactory.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\automatic_updates\ComposerStager;
+namespace Drupal\package_manager;
 
 use PhpTuf\ComposerStager\Infrastructure\Process\ProcessFactory as StagerProcessFactory;
 use PhpTuf\ComposerStager\Infrastructure\Process\ProcessFactoryInterface;
diff --git a/package_manager/tests/modules/package_manager_bypass/package_manager_bypass.info.yml b/package_manager/tests/modules/package_manager_bypass/package_manager_bypass.info.yml
new file mode 100644
index 0000000000..95cc7e66e3
--- /dev/null
+++ b/package_manager/tests/modules/package_manager_bypass/package_manager_bypass.info.yml
@@ -0,0 +1,6 @@
+name: 'Package Manager Bypass'
+description: 'Mocks Package Manager services for functional testing.'
+type: module
+package: Testing
+dependencies:
+  - automatic_updates:package_manager
diff --git a/package_manager/tests/modules/package_manager_bypass/package_manager_bypass.services.yml b/package_manager/tests/modules/package_manager_bypass/package_manager_bypass.services.yml
new file mode 100644
index 0000000000..42e9234669
--- /dev/null
+++ b/package_manager/tests/modules/package_manager_bypass/package_manager_bypass.services.yml
@@ -0,0 +1,9 @@
+services:
+  package_manager_bypass.committer:
+    public: false
+    class: Drupal\package_manager_bypass\Committer
+    decorates: package_manager.committer
+    arguments:
+      - '@package_manager_bypass.committer.inner'
+    properties:
+      - { _serviceId: package_manager.committer }
diff --git a/tests/modules/composer_stager_bypass/src/Beginner.php b/package_manager/tests/modules/package_manager_bypass/src/Beginner.php
similarity index 91%
rename from tests/modules/composer_stager_bypass/src/Beginner.php
rename to package_manager/tests/modules/package_manager_bypass/src/Beginner.php
index 8cd6585fc5..837efe750f 100644
--- a/tests/modules/composer_stager_bypass/src/Beginner.php
+++ b/package_manager/tests/modules/package_manager_bypass/src/Beginner.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\composer_stager_bypass;
+namespace Drupal\package_manager_bypass;
 
 use PhpTuf\ComposerStager\Domain\BeginnerInterface;
 use PhpTuf\ComposerStager\Domain\Output\ProcessOutputCallbackInterface;
diff --git a/tests/modules/composer_stager_bypass/src/Committer.php b/package_manager/tests/modules/package_manager_bypass/src/Committer.php
similarity index 96%
rename from tests/modules/composer_stager_bypass/src/Committer.php
rename to package_manager/tests/modules/package_manager_bypass/src/Committer.php
index 0b309d96b4..45ec4fb225 100644
--- a/tests/modules/composer_stager_bypass/src/Committer.php
+++ b/package_manager/tests/modules/package_manager_bypass/src/Committer.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\composer_stager_bypass;
+namespace Drupal\package_manager_bypass;
 
 use PhpTuf\ComposerStager\Domain\CommitterInterface;
 use PhpTuf\ComposerStager\Domain\Output\ProcessOutputCallbackInterface;
diff --git a/tests/modules/composer_stager_bypass/src/ComposerStagerBypassServiceProvider.php b/package_manager/tests/modules/package_manager_bypass/src/PackageManagerBypassServiceProvider.php
similarity index 53%
rename from tests/modules/composer_stager_bypass/src/ComposerStagerBypassServiceProvider.php
rename to package_manager/tests/modules/package_manager_bypass/src/PackageManagerBypassServiceProvider.php
index 2c8ae8f764..2e9ad4812b 100644
--- a/tests/modules/composer_stager_bypass/src/ComposerStagerBypassServiceProvider.php
+++ b/package_manager/tests/modules/package_manager_bypass/src/PackageManagerBypassServiceProvider.php
@@ -1,14 +1,14 @@
 <?php
 
-namespace Drupal\composer_stager_bypass;
+namespace Drupal\package_manager_bypass;
 
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\DependencyInjection\ServiceProviderBase;
 
 /**
- * Defines services to bypass Composer Stager's core functionality.
+ * Defines services to bypass Package Manager's core functionality.
  */
-class ComposerStagerBypassServiceProvider extends ServiceProviderBase {
+class PackageManagerBypassServiceProvider extends ServiceProviderBase {
 
   /**
    * {@inheritdoc}
@@ -16,9 +16,9 @@ class ComposerStagerBypassServiceProvider extends ServiceProviderBase {
   public function alter(ContainerBuilder $container) {
     parent::alter($container);
 
-    $container->getDefinition('automatic_updates.beginner')
+    $container->getDefinition('package_manager.beginner')
       ->setClass(Beginner::class);
-    $container->getDefinition('automatic_updates.stager')
+    $container->getDefinition('package_manager.stager')
       ->setClass(Stager::class);
   }
 
diff --git a/tests/modules/composer_stager_bypass/src/Stager.php b/package_manager/tests/modules/package_manager_bypass/src/Stager.php
similarity index 91%
rename from tests/modules/composer_stager_bypass/src/Stager.php
rename to package_manager/tests/modules/package_manager_bypass/src/Stager.php
index 22a042fb39..f068b29483 100644
--- a/tests/modules/composer_stager_bypass/src/Stager.php
+++ b/package_manager/tests/modules/package_manager_bypass/src/Stager.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\composer_stager_bypass;
+namespace Drupal\package_manager_bypass;
 
 use PhpTuf\ComposerStager\Domain\Output\ProcessOutputCallbackInterface;
 use PhpTuf\ComposerStager\Domain\StagerInterface;
diff --git a/package_manager/tests/src/Kernel/ServicesTest.php b/package_manager/tests/src/Kernel/ServicesTest.php
new file mode 100644
index 0000000000..bb0088e225
--- /dev/null
+++ b/package_manager/tests/src/Kernel/ServicesTest.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace Drupal\Tests\package_manager\Kernel;
+
+use Drupal\KernelTests\KernelTestBase;
+
+/**
+ * Tests that Package Manager services are wired correctly.
+ *
+ * @group package_manager
+ */
+class ServicesTest extends KernelTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = ['package_manager'];
+
+  /**
+   * Tests that Package Manager's public services can be instantiated.
+   */
+  public function testPackageManagerServices(): void {
+    $services = [
+      'package_manager.beginner',
+      'package_manager.stager',
+      'package_manager.committer',
+      'package_manager.cleaner',
+    ];
+    foreach ($services as $service) {
+      $this->assertIsObject($this->container->get($service));
+    }
+  }
+
+}
diff --git a/src/ComposerStager/Cleaner.php b/src/ComposerStager/Cleaner.php
index 718681fb70..22ddac8e0d 100644
--- a/src/ComposerStager/Cleaner.php
+++ b/src/ComposerStager/Cleaner.php
@@ -3,10 +3,8 @@
 namespace Drupal\automatic_updates\ComposerStager;
 
 use Drupal\automatic_updates\PathLocator;
-use PhpTuf\ComposerStager\Domain\Cleaner as ComposerStagerCleaner;
 use PhpTuf\ComposerStager\Domain\CleanerInterface;
 use PhpTuf\ComposerStager\Domain\Output\ProcessOutputCallbackInterface;
-use PhpTuf\ComposerStager\Infrastructure\Filesystem\FilesystemInterface;
 use Symfony\Component\Filesystem\Filesystem;
 
 /**
@@ -38,18 +36,16 @@ class Cleaner implements CleanerInterface {
   /**
    * Constructs a Cleaner object.
    *
-   * @param \PhpTuf\ComposerStager\Infrastructure\Filesystem\FilesystemInterface $file_system
-   *   The Composer Stager file system service.
+   * @param \PhpTuf\ComposerStager\Domain\CleanerInterface $decorated
+   *   The decorated cleaner service.
    * @param string $site_path
    *   The current site path (e.g., 'sites/default'), without leading or
    *   trailing slashes.
    * @param \Drupal\automatic_updates\PathLocator $locator
    *   The path locator service.
    */
-  public function __construct(FilesystemInterface $file_system, string $site_path, PathLocator $locator) {
-    // @todo Inject the decorated cleaner once the Composer Stager wiring has
-    // been moved into a separate module.
-    $this->decorated = new ComposerStagerCleaner($file_system);
+  public function __construct(CleanerInterface $decorated, string $site_path, PathLocator $locator) {
+    $this->decorated = $decorated;
     $this->sitePath = $site_path;
     $this->pathLocator = $locator;
   }
diff --git a/tests/modules/composer_stager_bypass/composer_stager_bypass.info.yml b/tests/modules/composer_stager_bypass/composer_stager_bypass.info.yml
deleted file mode 100644
index 11449912c0..0000000000
--- a/tests/modules/composer_stager_bypass/composer_stager_bypass.info.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-name: 'Composer Stager bypass'
-description: 'Mocks Composer Stager services for functional testing'
-type: module
-package: Testing
-dependencies:
-  - automatic_updates:automatic_updates
diff --git a/tests/modules/composer_stager_bypass/composer_stager_bypass.services.yml b/tests/modules/composer_stager_bypass/composer_stager_bypass.services.yml
deleted file mode 100644
index 6e1695752f..0000000000
--- a/tests/modules/composer_stager_bypass/composer_stager_bypass.services.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-services:
-  composer_stager_bypass.committer:
-    public: false
-    class: Drupal\composer_stager_bypass\Committer
-    decorates: automatic_updates.committer
-    arguments:
-      - '@composer_stager_bypass.committer.inner'
-    properties:
-      - { _serviceId: automatic_updates.committer }
diff --git a/tests/src/Functional/FileSystemOperationsTest.php b/tests/src/Functional/FileSystemOperationsTest.php
index 546d4d651e..0935b37aef 100644
--- a/tests/src/Functional/FileSystemOperationsTest.php
+++ b/tests/src/Functional/FileSystemOperationsTest.php
@@ -65,7 +65,7 @@ class FileSystemOperationsTest extends BrowserTestBase {
     // will otherwise default to the site path being used for the test site,
     // which doesn't exist in the fake site fixture.
     $cleaner = new Cleaner(
-      $this->container->get('automatic_updates.file_system'),
+      $this->container->get('package_manager.cleaner'),
       'sites/default',
       $locator->reveal()
     );
@@ -73,10 +73,10 @@ class FileSystemOperationsTest extends BrowserTestBase {
     $this->updater = new Updater(
       $this->container->get('state'),
       $this->container->get('string_translation'),
-      $this->container->get('automatic_updates.beginner'),
-      $this->container->get('automatic_updates.stager'),
+      $this->container->get('package_manager.beginner'),
+      $this->container->get('package_manager.stager'),
       $cleaner,
-      $this->container->get('automatic_updates.committer'),
+      $this->container->get('package_manager.committer'),
       $this->container->get('event_dispatcher'),
       $locator->reveal()
     );
diff --git a/tests/src/Functional/UpdaterFormTest.php b/tests/src/Functional/UpdaterFormTest.php
index bd9fb7248d..6bd3b349f4 100644
--- a/tests/src/Functional/UpdaterFormTest.php
+++ b/tests/src/Functional/UpdaterFormTest.php
@@ -29,7 +29,7 @@ class UpdaterFormTest extends BrowserTestBase {
   protected static $modules = [
     'automatic_updates',
     'automatic_updates_test',
-    'composer_stager_bypass',
+    'package_manager_bypass',
     'update_test',
   ];
 
diff --git a/tests/src/Kernel/ComposerStagerServicesTest.php b/tests/src/Kernel/ComposerStagerServicesTest.php
deleted file mode 100644
index c02717ec1b..0000000000
--- a/tests/src/Kernel/ComposerStagerServicesTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace Drupal\Tests\automatic_updates\Kernel;
-
-use Drupal\KernelTests\KernelTestBase;
-
-/**
- * Tests that the Composer Stager library's services are available.
- *
- * @todo Remove this test when Composer Stager's API is stable and tagged.
- *
- * @group automatic_updates
- */
-class ComposerStagerServicesTest extends KernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected static $modules = ['automatic_updates', 'update'];
-
-  /**
-   * Tests that the Composer Stager services are available in the container.
-   */
-  public function testServices(): void {
-    $services = [
-      'automatic_updates.beginner',
-      'automatic_updates.stager',
-      'automatic_updates.cleaner',
-      'automatic_updates.committer',
-      'automatic_updates.composer_runner',
-      'automatic_updates.file_copier',
-      'automatic_updates.file_system',
-      'automatic_updates.symfony_file_system',
-      'automatic_updates.symfony_exec_finder',
-      'automatic_updates.rsync',
-      'automatic_updates.exec_finder',
-      'automatic_updates.process_factory',
-    ];
-    foreach ($services as $service_id) {
-      $service = $this->container->get($service_id);
-      $this->assertIsObject($service);
-      $this->assertSame($service_id, $service->_serviceId);
-    }
-  }
-
-}
diff --git a/tests/src/Kernel/ReadinessValidation/ComposerExecutableValidatorTest.php b/tests/src/Kernel/ReadinessValidation/ComposerExecutableValidatorTest.php
index e6fe4b76e3..f57d5969e0 100644
--- a/tests/src/Kernel/ReadinessValidation/ComposerExecutableValidatorTest.php
+++ b/tests/src/Kernel/ReadinessValidation/ComposerExecutableValidatorTest.php
@@ -22,7 +22,10 @@ class ComposerExecutableValidatorTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  protected static $modules = ['automatic_updates'];
+  protected static $modules = [
+    'automatic_updates',
+    'package_manager',
+  ];
 
   /**
    * Tests that an error is raised if the Composer executable isn't found.
@@ -36,7 +39,7 @@ class ComposerExecutableValidatorTest extends KernelTestBase {
     $exec_finder->find('composer')
       ->willThrow($exception)
       ->shouldBeCalled();
-    $this->container->set('automatic_updates.exec_finder', $exec_finder->reveal());
+    $this->container->set('package_manager.executable_finder', $exec_finder->reveal());
 
     // The validator should translate that exception into an error.
     $error = ValidationResult::createError([
@@ -138,7 +141,7 @@ class ComposerExecutableValidatorTest extends KernelTestBase {
         // recognized, supported version number out of this output.
         $validator($validator::OUT, "Composer version $reported_version");
       });
-    $this->container->set('automatic_updates.composer_runner', $runner->reveal());
+    $this->container->set('package_manager.composer_runner', $runner->reveal());
 
     // If the validator can't find a recognized, supported version of Composer,
     // it should produce errors.
diff --git a/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php b/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php
index a8e5dc869d..d044b1959e 100644
--- a/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php
+++ b/tests/src/Kernel/ReadinessValidation/ReadinessValidationManagerTest.php
@@ -20,7 +20,11 @@ class ReadinessValidationManagerTest extends KernelTestBase {
   /**
    * {@inheritdoc}
    */
-  protected static $modules = ['automatic_updates_test', 'user'];
+  protected static $modules = [
+    'automatic_updates_test',
+    'package_manager',
+    'user',
+  ];
 
   /**
    * {@inheritdoc}
diff --git a/tests/src/Kernel/UpdaterTest.php b/tests/src/Kernel/UpdaterTest.php
index 110eb4bf94..7b0080ffe5 100644
--- a/tests/src/Kernel/UpdaterTest.php
+++ b/tests/src/Kernel/UpdaterTest.php
@@ -22,7 +22,7 @@ class UpdaterTest extends KernelTestBase {
   protected static $modules = [
     'automatic_updates',
     'automatic_updates_test',
-    'composer_stager_bypass',
+    'package_manager',
     'update',
     'update_test',
   ];
@@ -58,7 +58,7 @@ class UpdaterTest extends KernelTestBase {
       '--update-with-all-dependencies',
     ];
     $stager->stage($command, Argument::cetera())->shouldBeCalled();
-    $this->container->set('automatic_updates.stager', $stager->reveal());
+    $this->container->set('package_manager.stager', $stager->reveal());
     $this->container->get('automatic_updates.updater')->stage();
   }
 
-- 
GitLab