From 7de19b8827fb74f0a32ea918c9188cfda9b18e10 Mon Sep 17 00:00:00 2001
From: phenaproxima <phenaproxima@205645.no-reply.drupal.org>
Date: Wed, 21 Sep 2022 16:27:55 +0000
Subject: [PATCH] Issue #3310936 by phenaproxima: Replace packages_comparison
 fixture with a unit test that mocks ComposerUtility::getInstalledPackages()

---
 .../packages_comparison/active/composer.json  |  1 -
 .../active/vendor/composer/installed.json     | 16 ------------
 .../packages_comparison/stage/composer.json   |  1 -
 .../stage/vendor/composer/installed.json      | 16 ------------
 .../tests/src/Kernel/ComposerUtilityTest.php  | 19 --------------
 .../tests/src/Unit/ComposerUtilityTest.php    | 26 +++++++++++++++++++
 6 files changed, 26 insertions(+), 53 deletions(-)
 delete mode 100644 package_manager/tests/fixtures/packages_comparison/active/composer.json
 delete mode 100644 package_manager/tests/fixtures/packages_comparison/active/vendor/composer/installed.json
 delete mode 100644 package_manager/tests/fixtures/packages_comparison/stage/composer.json
 delete mode 100644 package_manager/tests/fixtures/packages_comparison/stage/vendor/composer/installed.json

diff --git a/package_manager/tests/fixtures/packages_comparison/active/composer.json b/package_manager/tests/fixtures/packages_comparison/active/composer.json
deleted file mode 100644
index 0967ef424b..0000000000
--- a/package_manager/tests/fixtures/packages_comparison/active/composer.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/package_manager/tests/fixtures/packages_comparison/active/vendor/composer/installed.json b/package_manager/tests/fixtures/packages_comparison/active/vendor/composer/installed.json
deleted file mode 100644
index 2152ef82fb..0000000000
--- a/package_manager/tests/fixtures/packages_comparison/active/vendor/composer/installed.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "packages": [
-    {
-      "name": "drupal/existing",
-      "version": "1.0.0"
-    },
-    {
-      "name": "drupal/updated",
-      "version": "1.0.0"
-    },
-    {
-      "name": "drupal/removed",
-      "version": "1.0.0"
-    }
-  ]
-}
diff --git a/package_manager/tests/fixtures/packages_comparison/stage/composer.json b/package_manager/tests/fixtures/packages_comparison/stage/composer.json
deleted file mode 100644
index 0967ef424b..0000000000
--- a/package_manager/tests/fixtures/packages_comparison/stage/composer.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
diff --git a/package_manager/tests/fixtures/packages_comparison/stage/vendor/composer/installed.json b/package_manager/tests/fixtures/packages_comparison/stage/vendor/composer/installed.json
deleted file mode 100644
index 562b5f5601..0000000000
--- a/package_manager/tests/fixtures/packages_comparison/stage/vendor/composer/installed.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
-  "packages": [
-    {
-      "name": "drupal/existing",
-      "version": "1.0.0"
-    },
-    {
-      "name": "drupal/updated",
-      "version": "1.1.0"
-    },
-    {
-      "name": "drupal/added",
-      "version": "1.0.0"
-    }
-  ]
-}
diff --git a/package_manager/tests/src/Kernel/ComposerUtilityTest.php b/package_manager/tests/src/Kernel/ComposerUtilityTest.php
index 6046c781d5..5433200767 100644
--- a/package_manager/tests/src/Kernel/ComposerUtilityTest.php
+++ b/package_manager/tests/src/Kernel/ComposerUtilityTest.php
@@ -43,25 +43,6 @@ class ComposerUtilityTest extends KernelTestBase {
     $this->assertFileDoesNotExist($dir . '/.htaccess');
   }
 
-  /**
-   * @covers ::getPackagesNotIn
-   * @covers ::getPackagesWithDifferentVersionsIn
-   */
-  public function testPackageComparison(): void {
-    $fixture_dir = __DIR__ . '/../../fixtures/packages_comparison';
-    $active = ComposerUtility::createForDirectory($fixture_dir . '/active');
-    $staged = ComposerUtility::createForDirectory($fixture_dir . '/stage');
-
-    $added = $staged->getPackagesNotIn($active);
-    $this->assertSame(['drupal/added'], array_keys($added));
-
-    $removed = $active->getPackagesNotIn($staged);
-    $this->assertSame(['drupal/removed'], array_keys($removed));
-
-    $updated = $active->getPackagesWithDifferentVersionsIn($staged);
-    $this->assertSame(['drupal/updated'], array_keys($updated));
-  }
-
   /**
    * @covers ::getProjectForPackage
    *
diff --git a/package_manager/tests/src/Unit/ComposerUtilityTest.php b/package_manager/tests/src/Unit/ComposerUtilityTest.php
index 2f6762fd7a..b81c053503 100644
--- a/package_manager/tests/src/Unit/ComposerUtilityTest.php
+++ b/package_manager/tests/src/Unit/ComposerUtilityTest.php
@@ -52,6 +52,32 @@ class ComposerUtilityTest extends UnitTestCase {
     $this->assertSame($expected_core_package_names, array_keys($core_packages));
   }
 
+  /**
+   * @covers ::getPackagesNotIn
+   * @covers ::getPackagesWithDifferentVersionsIn
+   */
+  public function testPackageComparison(): void {
+    $active = $this->mockUtilityWithPackages([
+      'drupal/existing' => '1.0.0',
+      'drupal/updated' => '1.0.0',
+      'drupal/removed' => '1.0.0',
+    ]);
+    $staged = $this->mockUtilityWithPackages([
+      'drupal/existing' => '1.0.0',
+      'drupal/updated' => '1.1.0',
+      'drupal/added' => '1.0.0',
+    ]);
+
+    $added = $staged->getPackagesNotIn($active);
+    $this->assertSame(['drupal/added'], array_keys($added));
+
+    $removed = $active->getPackagesNotIn($staged);
+    $this->assertSame(['drupal/removed'], array_keys($removed));
+
+    $updated = $active->getPackagesWithDifferentVersionsIn($staged);
+    $this->assertSame(['drupal/updated'], array_keys($updated));
+  }
+
   /**
    * Mocks a ComposerUtility object to return a set of installed packages.
    *
-- 
GitLab