From b7348d1b01ff77c3d0887fb65e3a3c36581b7737 Mon Sep 17 00:00:00 2001 From: catch Date: Tue, 5 Mar 2024 09:13:40 +0000 Subject: [PATCH] Issue #3421482 by andypost, longwave, smustgrave: Remove ContainerAwareTrait from test classes (cherry picked from commit 19baa4e10245a16cbd9e3a40a509d36aab51515c) --- .../service_provider_test.services.yml | 1 - .../service_provider_test/src/TestClass.php | 15 ++++----- core/phpstan-baseline.neon | 32 ------------------- .../Controller/ControllerResolverTest.php | 17 ++++++++-- .../Core/Utility/CallableResolverTest.php | 13 ++++++-- 5 files changed, 32 insertions(+), 46 deletions(-) diff --git a/core/modules/system/tests/modules/service_provider_test/service_provider_test.services.yml b/core/modules/system/tests/modules/service_provider_test/service_provider_test.services.yml index 42bb2799e1bf..614e90029ace 100644 --- a/core/modules/system/tests/modules/service_provider_test/service_provider_test.services.yml +++ b/core/modules/system/tests/modules/service_provider_test/service_provider_test.services.yml @@ -5,5 +5,4 @@ services: class: Drupal\service_provider_test\TestClass tags: - { name: needs_destruction } - parent: container.trait arguments: ['@state'] diff --git a/core/modules/system/tests/modules/service_provider_test/src/TestClass.php b/core/modules/system/tests/modules/service_provider_test/src/TestClass.php index 14de650795b7..b99ec3731198 100644 --- a/core/modules/system/tests/modules/service_provider_test/src/TestClass.php +++ b/core/modules/system/tests/modules/service_provider_test/src/TestClass.php @@ -4,16 +4,12 @@ namespace Drupal\service_provider_test; use Drupal\Core\State\StateInterface; use Drupal\Core\DestructableInterface; -use Symfony\Component\DependencyInjection\ContainerAwareInterface; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpKernel\Event\ResponseEvent; use Symfony\Component\HttpKernel\Event\RequestEvent; use Symfony\Component\HttpKernel\KernelEvents; -class TestClass implements EventSubscriberInterface, DestructableInterface, ContainerAwareInterface { - - use ContainerAwareTrait; +class TestClass implements EventSubscriberInterface, DestructableInterface { /** * The state keyvalue collection. @@ -43,11 +39,12 @@ class TestClass implements EventSubscriberInterface, DestructableInterface, Cont * Flags the response in case a rebuild indicator is used. */ public function onKernelResponseTest(ResponseEvent $event) { - if ($this->container->hasParameter('container_rebuild_indicator')) { - $event->getResponse()->headers->set('container_rebuild_indicator', $this->container->getParameter('container_rebuild_indicator')); + $container = \Drupal::getContainer(); + if ($container->hasParameter('container_rebuild_indicator')) { + $event->getResponse()->headers->set('container_rebuild_indicator', $container->getParameter('container_rebuild_indicator')); } - if ($this->container->hasParameter('container_rebuild_test_parameter')) { - $event->getResponse()->headers->set('container_rebuild_test_parameter', $this->container->getParameter('container_rebuild_test_parameter')); + if ($container->hasParameter('container_rebuild_test_parameter')) { + $event->getResponse()->headers->set('container_rebuild_test_parameter', $container->getParameter('container_rebuild_test_parameter')); } } diff --git a/core/phpstan-baseline.neon b/core/phpstan-baseline.neon index 35f904894012..10c48b42726f 100644 --- a/core/phpstan-baseline.neon +++ b/core/phpstan-baseline.neon @@ -1884,22 +1884,6 @@ parameters: count: 1 path: modules/system/tests/modules/plugin_test/src/Plugin/TestPluginManager.php - - - message: """ - #^Class Drupal\\\\service_provider_test\\\\TestClass implements deprecated interface Symfony\\\\Component\\\\DependencyInjection\\\\ContainerAwareInterface\\: - since Symfony 6\\.4, use dependency injection instead$# - """ - count: 1 - path: modules/system/tests/modules/service_provider_test/src/TestClass.php - - - - message: """ - #^Usage of deprecated trait Symfony\\\\Component\\\\DependencyInjection\\\\ContainerAwareTrait in class Drupal\\\\service_provider_test\\\\TestClass\\: - since Symfony 6\\.4, use dependency injection instead$# - """ - count: 1 - path: modules/system/tests/modules/service_provider_test/src/TestClass.php - - message: "#^Access to an undefined property Drupal\\\\Tests\\\\system\\\\Functional\\\\FileTransfer\\\\TestFileTransfer\\:\\:\\$connection\\.$#" count: 5 @@ -2709,14 +2693,6 @@ parameters: count: 1 path: tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php - - - message: """ - #^Usage of deprecated trait Symfony\\\\Component\\\\DependencyInjection\\\\ContainerAwareTrait in class Drupal\\\\Tests\\\\Core\\\\Controller\\\\MockContainerAware\\: - since Symfony 6\\.4, use dependency injection instead$# - """ - count: 1 - path: tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php - - message: """ #^Call to deprecated method expectError\\(\\) of class PHPUnit\\\\Framework\\\\TestCase\\: @@ -2873,14 +2849,6 @@ parameters: count: 1 path: tests/Drupal/Tests/Core/Utility/CallableResolverTest.php - - - message: """ - #^Usage of deprecated trait Symfony\\\\Component\\\\DependencyInjection\\\\ContainerAwareTrait in class Drupal\\\\Tests\\\\Core\\\\Utility\\\\MockContainerAware\\: - since Symfony 6\\.4, use dependency injection instead$# - """ - count: 1 - path: tests/Drupal/Tests/Core/Utility/CallableResolverTest.php - - message: """ #^Call to deprecated method getConfig\\(\\) of class GuzzleHttp\\\\ClientInterface\\: diff --git a/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php b/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php index 7ba733c18fa3..d58ff9d2ddb4 100644 --- a/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php +++ b/core/tests/Drupal/Tests/Core/Controller/ControllerResolverTest.php @@ -12,7 +12,6 @@ use Drupal\Core\Utility\CallableResolver; use Drupal\Tests\UnitTestCase; use Psr\Http\Message\ServerRequestInterface; use Symfony\Component\DependencyInjection\ContainerAwareInterface; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Request; @@ -221,9 +220,23 @@ class MockContainerInjection implements ContainerInjectionInterface { } class MockContainerAware implements ContainerAwareInterface { - use ContainerAwareTrait; + + /** + * The service container. + */ + protected ContainerInterface $container; + + /** + * Sets the service container. + */ + public function setContainer(?ContainerInterface $container): void { + $this->container = $container; + } public function getResult() { + if (empty($this->container)) { + throw new \Exception('Container was not injected.'); + } return 'This is container aware.'; } diff --git a/core/tests/Drupal/Tests/Core/Utility/CallableResolverTest.php b/core/tests/Drupal/Tests/Core/Utility/CallableResolverTest.php index 66da0ca7eda6..eedf6a3d7151 100644 --- a/core/tests/Drupal/Tests/Core/Utility/CallableResolverTest.php +++ b/core/tests/Drupal/Tests/Core/Utility/CallableResolverTest.php @@ -10,7 +10,6 @@ use Drupal\Core\DependencyInjection\ContainerInjectionInterface; use Drupal\Core\Utility\CallableResolver; use Drupal\Tests\UnitTestCase; use Symfony\Component\DependencyInjection\ContainerAwareInterface; -use Symfony\Component\DependencyInjection\ContainerAwareTrait; use Symfony\Component\DependencyInjection\ContainerInterface; /** @@ -252,7 +251,17 @@ class NoMethodCallable { class MockContainerAware implements ContainerAwareInterface { - use ContainerAwareTrait; + /** + * The service container. + */ + protected ContainerInterface $container; + + /** + * Sets the service container. + */ + public function setContainer(?ContainerInterface $container): void { + $this->container = $container; + } public function getResult($suffix) { if (empty($this->container)) {