From 5ac4f96a9ca19baa192d70a265463e1b6d570281 Mon Sep 17 00:00:00 2001
From: catch <6915-catch@users.noreply.drupalcode.org>
Date: Wed, 7 Aug 2024 09:53:40 +0900
Subject: [PATCH] Issue #3464271 by mondrake, smustgrave: Method
 getMockForAbstractClass() of class PHPUnit\Framework\TestCase is deprecated
 in PHPUnit 10 - replace in class ControllerBaseTest

---
 core/.phpstan-baseline.php                          |  6 ------
 .../Tests/Core/Controller/ControllerBaseTest.php    |  8 +++-----
 .../Tests/Core/Controller/StubControllerBase.php    | 13 +++++++++++++
 3 files changed, 16 insertions(+), 11 deletions(-)
 create mode 100644 core/tests/Drupal/Tests/Core/Controller/StubControllerBase.php

diff --git a/core/.phpstan-baseline.php b/core/.phpstan-baseline.php
index 44bc45108a17..d9b3b03d9e1d 100644
--- a/core/.phpstan-baseline.php
+++ b/core/.phpstan-baseline.php
@@ -2550,12 +2550,6 @@
 	'count' => 1,
 	'path' => __DIR__ . '/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityStorageTest.php',
 ];
-$ignoreErrors[] = [
-	// identifier: method.deprecated
-	'message' => '#^Call to deprecated method getMockForAbstractClass\\(\\) of class PHPUnit\\\\Framework\\\\TestCase\\.$#',
-	'count' => 1,
-	'path' => __DIR__ . '/tests/Drupal/Tests/Core/Controller/ControllerBaseTest.php',
-];
 $ignoreErrors[] = [
 	// identifier: method.deprecated
 	'message' => '#^Call to deprecated method getMockForAbstractClass\\(\\) of class PHPUnit\\\\Framework\\\\MockObject\\\\MockBuilder\\.$#',
diff --git a/core/tests/Drupal/Tests/Core/Controller/ControllerBaseTest.php b/core/tests/Drupal/Tests/Core/Controller/ControllerBaseTest.php
index 6e58e56896af..827f637ac158 100644
--- a/core/tests/Drupal/Tests/Core/Controller/ControllerBaseTest.php
+++ b/core/tests/Drupal/Tests/Core/Controller/ControllerBaseTest.php
@@ -15,10 +15,8 @@ class ControllerBaseTest extends UnitTestCase {
 
   /**
    * The tested controller base class.
-   *
-   * @var \Drupal\Core\Controller\ControllerBase|\PHPUnit\Framework\MockObject\MockObject
    */
-  protected $controllerBase;
+  protected StubControllerBase $controllerBase;
 
   /**
    * {@inheritdoc}
@@ -26,7 +24,7 @@ class ControllerBaseTest extends UnitTestCase {
   protected function setUp(): void {
     parent::setUp();
 
-    $this->controllerBase = $this->getMockForAbstractClass('Drupal\Core\Controller\ControllerBase');
+    $this->controllerBase = new StubControllerBase();
   }
 
   /**
@@ -49,7 +47,7 @@ public function testGetConfig(): void {
       ->willReturn($config_factory);
     \Drupal::setContainer($container);
 
-    $config_method = new \ReflectionMethod('Drupal\Core\Controller\ControllerBase', 'config');
+    $config_method = new \ReflectionMethod(StubControllerBase::class, 'config');
 
     // Call config twice to ensure that the container is just called once.
     $config = $config_method->invoke($this->controllerBase, 'config_name');
diff --git a/core/tests/Drupal/Tests/Core/Controller/StubControllerBase.php b/core/tests/Drupal/Tests/Core/Controller/StubControllerBase.php
new file mode 100644
index 000000000000..f1a6264fd157
--- /dev/null
+++ b/core/tests/Drupal/Tests/Core/Controller/StubControllerBase.php
@@ -0,0 +1,13 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Drupal\Tests\Core\Controller;
+
+use Drupal\Core\Controller\ControllerBase;
+
+/**
+ * Stubs ControllerBase.
+ */
+class StubControllerBase extends ControllerBase {
+}
-- 
GitLab