From 14209a77154c1a4b4234f2835163c44f9552a21e Mon Sep 17 00:00:00 2001
From: mondrake <28163-mondrake@users.noreply.drupalcode.org>
Date: Tue, 28 May 2024 13:10:04 +0000
Subject: [PATCH] Issue #3450288: Add PHPUnit 10 attributes to tests

---
 phpstan.neon                            |  3 +++
 tests/src/Functional/SophronTest.php    |  2 ++
 tests/src/Kernel/SophronApiTest.php     | 35 ++++++++++++++++++-------
 tests/src/Kernel/SophronGuesserTest.php | 17 +++++++++---
 4 files changed, 44 insertions(+), 13 deletions(-)

diff --git a/phpstan.neon b/phpstan.neon
index 15362be..523a2c5 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -14,3 +14,6 @@ parameters:
   ignoreErrors:
     - "#^Unsafe usage of new static#"
     - "#Drupal calls should be avoided in classes, use dependency injection instead#"
+    -
+      message: "#Attribute class PHPUnit\\\\Framework\\\\Attributes\\\\.* does not exist#"
+      reportUnmatched: false
diff --git a/tests/src/Functional/SophronTest.php b/tests/src/Functional/SophronTest.php
index e08e944..9aba85b 100644
--- a/tests/src/Functional/SophronTest.php
+++ b/tests/src/Functional/SophronTest.php
@@ -7,12 +7,14 @@ namespace Drupal\Tests\sophron\Functional;
 use Drupal\sophron\MimeMapManagerInterface;
 use Drupal\Tests\BrowserTestBase;
 use FileEye\MimeMap\MappingException;
+use PHPUnit\Framework\Attributes\Group;
 
 /**
  * Tests Sophron functionality.
  *
  * @group sophron
  */
+#[Group('sophron')]
 class SophronTest extends BrowserTestBase {
 
   /**
diff --git a/tests/src/Kernel/SophronApiTest.php b/tests/src/Kernel/SophronApiTest.php
index 3b463be..82225e7 100644
--- a/tests/src/Kernel/SophronApiTest.php
+++ b/tests/src/Kernel/SophronApiTest.php
@@ -6,10 +6,13 @@ namespace Drupal\Tests\sophron\Kernel;
 
 use Drupal\KernelTests\KernelTestBase;
 use Drupal\sophron\Map\DrupalMap;
+use Drupal\sophron\MimeMapManager;
 use Drupal\sophron\MimeMapManagerInterface;
 use FileEye\MimeMap\MalformedTypeException;
 use FileEye\MimeMap\Map\DefaultMap;
 use FileEye\MimeMap\MappingException;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\Group;
 
 /**
  * Tests for Sophron API.
@@ -18,6 +21,8 @@ use FileEye\MimeMap\MappingException;
  *
  * @group sophron
  */
+#[CoversClass(MimeMapManager::class)]
+#[Group('sophron')]
 class SophronApiTest extends KernelTestBase {
 
   /**
@@ -34,10 +39,12 @@ class SophronApiTest extends KernelTestBase {
   }
 
   /**
-   * @covers ::getMapClass
-   * @covers ::setMapClass
-   * @covers ::listExtensions
-   * @covers ::getExtension
+   * Tests get Extension.
+   *
+   * @legacy-covers ::getMapClass
+   * @legacy-covers ::setMapClass
+   * @legacy-covers ::listExtensions
+   * @legacy-covers ::getExtension
    */
   public function testGetExtension(): void {
     $manager = \Drupal::service(MimeMapManagerInterface::class);
@@ -51,8 +58,10 @@ class SophronApiTest extends KernelTestBase {
   }
 
   /**
-   * @covers ::listTypes
-   * @covers ::getType
+   * Tests get Type.
+   *
+   * @legacy-covers ::listTypes
+   * @legacy-covers ::getType
    */
   public function testGetType(): void {
     $manager = \Drupal::service(MimeMapManagerInterface::class);
@@ -61,7 +70,9 @@ class SophronApiTest extends KernelTestBase {
   }
 
   /**
-   * @covers ::getType
+   * Tests get missing Type.
+   *
+   * @legacy-covers ::getType
    */
   public function testGetMissingType(): void {
     $manager = \Drupal::service(MimeMapManagerInterface::class);
@@ -71,7 +82,9 @@ class SophronApiTest extends KernelTestBase {
   }
 
   /**
-   * @covers ::getType
+   * Tests get malformed Type.
+   *
+   * @legacy-covers ::getType
    */
   public function testGetMalformedType(): void {
     $manager = \Drupal::service(MimeMapManagerInterface::class);
@@ -81,8 +94,10 @@ class SophronApiTest extends KernelTestBase {
   }
 
   /**
-   * @covers ::getMapClass
-   * @covers ::getMappingErrors
+   * Tests get mapping errors.
+   *
+   * @legacy-covers ::getMapClass
+   * @legacy-covers ::getMappingErrors
    */
   public function testGetMappingErrors(): void {
     $config = \Drupal::configFactory()->getEditable('sophron.settings');
diff --git a/tests/src/Kernel/SophronGuesserTest.php b/tests/src/Kernel/SophronGuesserTest.php
index 373bfbb..cfe6311 100644
--- a/tests/src/Kernel/SophronGuesserTest.php
+++ b/tests/src/Kernel/SophronGuesserTest.php
@@ -5,6 +5,9 @@ declare(strict_types=1);
 namespace Drupal\Tests\sophron\Kernel;
 
 use Drupal\KernelTests\KernelTestBase;
+use Drupal\sophron_guesser\SophronMimeTypeGuesser;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\Group;
 
 /**
  * Tests for Sophron guesser.
@@ -13,6 +16,8 @@ use Drupal\KernelTests\KernelTestBase;
  *
  * @group sophron
  */
+#[CoversClass(SophronMimeTypeGuesser::class)]
+#[Group('sophron')]
 class SophronGuesserTest extends KernelTestBase {
 
   /**
@@ -29,7 +34,9 @@ class SophronGuesserTest extends KernelTestBase {
   }
 
   /**
-   * @covers ::guessMimeType
+   * Tests guesser not installed.
+   *
+   * @legacy-covers ::guessMimeType
    */
   public function testGuesserNotInstalled(): void {
     $guesser = \Drupal::service('file.mime_type.guesser.extension');
@@ -37,7 +44,9 @@ class SophronGuesserTest extends KernelTestBase {
   }
 
   /**
-   * @covers ::guessMimeType
+   * Tests guesser installed.
+   *
+   * @legacy-covers ::guessMimeType
    */
   public function testGuesserInstalled(): void {
     \Drupal::service('module_installer')->install(['sophron_guesser']);
@@ -46,7 +55,9 @@ class SophronGuesserTest extends KernelTestBase {
   }
 
   /**
-   * @covers ::guessMimeType
+   * Tests guesser install and uninstall.
+   *
+   * @legacy-covers ::guessMimeType
    */
   public function testGuesserInstallUninstall(): void {
     $guesser = \Drupal::service('file.mime_type.guesser.extension');
-- 
GitLab