From 389727f7ab4b7803526700f070619e60cf0b3454 Mon Sep 17 00:00:00 2001
From: Vishal Khode <43933-vishal.khode@users.noreply.drupalcode.org>
Date: Fri, 31 May 2024 14:18:53 +0000
Subject: [PATCH] Issue #3362189 by vishalkhode, tsquared212, mglaman:
 Implement ValueResolverInterface instead of ArgumentValueResolverInterface

---
 .../Controller/ArgumentResolver/DocumentResolver.php  | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/Unstable/Controller/ArgumentResolver/DocumentResolver.php b/src/Unstable/Controller/ArgumentResolver/DocumentResolver.php
index 14acf19..02ceb57 100644
--- a/src/Unstable/Controller/ArgumentResolver/DocumentResolver.php
+++ b/src/Unstable/Controller/ArgumentResolver/DocumentResolver.php
@@ -7,15 +7,22 @@ namespace Drupal\jsonapi_resources\Unstable\Controller\ArgumentResolver;
 use Drupal\jsonapi\JsonApiResource\JsonApiDocumentTopLevel;
 use Drupal\jsonapi_resources\Unstable\DocumentExtractor;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface;
+use Symfony\Component\HttpKernel\Controller\ValueResolverInterface;
 use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
 
+// The ArgumentValueResolverInterface is deprecated since Symfony 6.2 and
+// removed from Symfony 7. Hence, below workaround to run PHPUnit tests against
+// Drupal 9, 10 and 11.
+if (!interface_exists(ValueResolverInterface::class)) {
+  class_alias('\Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface', ValueResolverInterface::class);
+}
+
 /**
  * Deserializes POST, PATCH and DELETE request documents.
  *
  * @internal
  */
-final class DocumentResolver implements ArgumentValueResolverInterface {
+final class DocumentResolver implements ValueResolverInterface {
 
   /**
    * The document extractor.
-- 
GitLab