From e3a1de53cdaee69b31bdaa2ed0e1c72370d02a9f Mon Sep 17 00:00:00 2001 From: soyuka Date: Sat, 12 Sep 2026 07:59:33 +0200 Subject: [PATCH] fix(metadata): update extractor expectations Include the new nullable routePriority field in the XML and YAML extractor test expectations. --- src/Metadata/Delete.php | 2 ++ src/Metadata/Extractor/XmlResourceExtractor.php | 2 ++ src/Metadata/Extractor/YamlResourceExtractor.php | 2 ++ src/Metadata/Extractor/schema/resources.xsd | 2 ++ src/Metadata/Get.php | 2 ++ src/Metadata/GetCollection.php | 2 ++ src/Metadata/HttpOperation.php | 2 ++ src/Metadata/McpResource.php | 2 ++ src/Metadata/McpTool.php | 2 ++ src/Metadata/NotExposed.php | 2 ++ src/Metadata/Operation.php | 14 ++++++++++++++ src/Metadata/Patch.php | 2 ++ src/Metadata/Post.php | 2 ++ src/Metadata/Put.php | 2 ++ src/Metadata/Tests/Extractor/XmlExtractorTest.php | 2 ++ src/Metadata/Tests/Extractor/YamlExtractorTest.php | 2 ++ src/Symfony/Routing/ApiLoader.php | 2 +- tests/Symfony/Routing/ApiLoaderTest.php | 6 +++--- 18 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/Metadata/Delete.php b/src/Metadata/Delete.php index 61744470fd6..8a4f9948292 100644 --- a/src/Metadata/Delete.php +++ b/src/Metadata/Delete.php @@ -91,6 +91,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, ?string $name = null, $provider = null, $processor = null, @@ -176,6 +177,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/Extractor/XmlResourceExtractor.php b/src/Metadata/Extractor/XmlResourceExtractor.php index d439c1e9815..4329b318505 100644 --- a/src/Metadata/Extractor/XmlResourceExtractor.php +++ b/src/Metadata/Extractor/XmlResourceExtractor.php @@ -428,6 +428,7 @@ private function buildOperations(\SimpleXMLElement $resource, array $root): ?arr 'serialize' => $this->phpize($operation, 'serialize', 'bool'), 'queryParameterValidate' => $this->phpize($operation, 'queryParameterValidate', 'bool'), 'priority' => $this->phpize($operation, 'priority', 'integer'), + 'routePriority' => $this->phpize($operation, 'routePriority', 'integer'), 'name' => $this->phpize($operation, 'name', 'string'), 'routeName' => $this->phpize($operation, 'routeName', 'string'), ]); @@ -462,6 +463,7 @@ private function buildGraphQlOperations(\SimpleXMLElement $resource, array $root 'write' => $this->phpize($operation, 'write', 'bool'), 'serialize' => $this->phpize($operation, 'serialize', 'bool'), 'priority' => $this->phpize($operation, 'priority', 'integer'), + 'routePriority' => $this->phpize($operation, 'routePriority', 'integer'), 'name' => $this->phpize($operation, 'name', 'string'), ]); } diff --git a/src/Metadata/Extractor/YamlResourceExtractor.php b/src/Metadata/Extractor/YamlResourceExtractor.php index fe21862d065..c93f06921fe 100644 --- a/src/Metadata/Extractor/YamlResourceExtractor.php +++ b/src/Metadata/Extractor/YamlResourceExtractor.php @@ -365,6 +365,7 @@ private function buildOperations(array $resource, array $root): ?array 'strictQueryParameterValidation' => $this->phpize($operation, 'strictQueryParameterValidation', 'bool'), 'hideHydraOperation' => $this->phpize($resource, 'hideHydraOperation', 'bool'), 'priority' => $this->phpize($operation, 'priority', 'integer'), + 'routePriority' => $this->phpize($operation, 'routePriority', 'integer'), 'name' => $this->phpize($operation, 'name', 'string'), 'class' => (string) $class, ]); @@ -418,6 +419,7 @@ private function buildGraphQlOperations(array $resource, array $root): ?array 'write' => $this->phpize($operation, 'write', 'bool'), 'serialize' => $this->phpize($operation, 'serialize', 'bool'), 'priority' => $this->phpize($operation, 'priority', 'integer'), + 'routePriority' => $this->phpize($operation, 'routePriority', 'integer'), 'name' => $this->phpize($operation, 'name', 'string'), ]); } diff --git a/src/Metadata/Extractor/schema/resources.xsd b/src/Metadata/Extractor/schema/resources.xsd index 6019722d6bb..295dd495993 100644 --- a/src/Metadata/Extractor/schema/resources.xsd +++ b/src/Metadata/Extractor/schema/resources.xsd @@ -46,6 +46,7 @@ + @@ -73,6 +74,7 @@ + diff --git a/src/Metadata/Get.php b/src/Metadata/Get.php index 82a01f83dc8..0c245a2db78 100644 --- a/src/Metadata/Get.php +++ b/src/Metadata/Get.php @@ -91,6 +91,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, ?string $name = null, $provider = null, $processor = null, @@ -176,6 +177,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/GetCollection.php b/src/Metadata/GetCollection.php index a94ae240999..9810442359d 100644 --- a/src/Metadata/GetCollection.php +++ b/src/Metadata/GetCollection.php @@ -91,6 +91,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, ?string $name = null, $provider = null, $processor = null, @@ -177,6 +178,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/HttpOperation.php b/src/Metadata/HttpOperation.php index a8f28f22d83..a7fb0d0f496 100644 --- a/src/Metadata/HttpOperation.php +++ b/src/Metadata/HttpOperation.php @@ -212,6 +212,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, ?string $name = null, $provider = null, $processor = null, @@ -272,6 +273,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/McpResource.php b/src/Metadata/McpResource.php index 5be8ab91f35..dedd0816938 100644 --- a/src/Metadata/McpResource.php +++ b/src/Metadata/McpResource.php @@ -173,6 +173,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, $provider = null, $processor = null, ?OptionsInterface $stateOptions = null, @@ -257,6 +258,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/McpTool.php b/src/Metadata/McpTool.php index f46f7a297d8..40d87315e32 100644 --- a/src/Metadata/McpTool.php +++ b/src/Metadata/McpTool.php @@ -169,6 +169,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, $provider = null, $processor = null, ?OptionsInterface $stateOptions = null, @@ -253,6 +254,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/NotExposed.php b/src/Metadata/NotExposed.php index c3422bac243..e7537218dff 100644 --- a/src/Metadata/NotExposed.php +++ b/src/Metadata/NotExposed.php @@ -104,6 +104,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, ?string $name = null, $provider = null, $processor = null, @@ -182,6 +183,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/Operation.php b/src/Metadata/Operation.php index 343915a673c..a88eb2e2813 100644 --- a/src/Metadata/Operation.php +++ b/src/Metadata/Operation.php @@ -802,6 +802,7 @@ public function __construct( * Sort is ascendant: a lower priority comes first in the list. */ protected ?int $priority = null, + protected ?int $routePriority = null, protected ?string $name = null, protected $provider = null, protected $processor = null, @@ -965,6 +966,19 @@ public function withPriority(int $priority = 0): static return $self; } + public function getRoutePriority(): ?int + { + return $this->routePriority; + } + + public function withRoutePriority(int $routePriority = 0): static + { + $self = clone $this; + $self->routePriority = $routePriority; + + return $self; + } + public function getName(): ?string { return $this->name; diff --git a/src/Metadata/Patch.php b/src/Metadata/Patch.php index 100ac370e7a..118c1887ea0 100644 --- a/src/Metadata/Patch.php +++ b/src/Metadata/Patch.php @@ -91,6 +91,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, ?string $name = null, $provider = null, $processor = null, @@ -177,6 +178,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/Post.php b/src/Metadata/Post.php index 61a4a059c7c..990cb88a9c1 100644 --- a/src/Metadata/Post.php +++ b/src/Metadata/Post.php @@ -91,6 +91,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, ?string $name = null, $provider = null, $processor = null, @@ -178,6 +179,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/Put.php b/src/Metadata/Put.php index 87529e95879..3cf5c3b3689 100644 --- a/src/Metadata/Put.php +++ b/src/Metadata/Put.php @@ -91,6 +91,7 @@ public function __construct( ?bool $fetchPartial = null, ?bool $forceEager = null, ?int $priority = null, + ?int $routePriority = null, ?string $name = null, $provider = null, $processor = null, @@ -178,6 +179,7 @@ class: $class, fetchPartial: $fetchPartial, forceEager: $forceEager, priority: $priority, + routePriority: $routePriority, name: $name, provider: $provider, processor: $processor, diff --git a/src/Metadata/Tests/Extractor/XmlExtractorTest.php b/src/Metadata/Tests/Extractor/XmlExtractorTest.php index 7b3f496d04e..88a45f40a38 100644 --- a/src/Metadata/Tests/Extractor/XmlExtractorTest.php +++ b/src/Metadata/Tests/Extractor/XmlExtractorTest.php @@ -278,6 +278,7 @@ public function testValidXML(): void 'collection' => null, 'method' => null, 'priority' => null, + 'routePriority' => null, 'processor' => null, 'provider' => null, 'itemUriTemplate' => null, @@ -387,6 +388,7 @@ public function testValidXML(): void 'collection' => null, 'method' => null, 'priority' => null, + 'routePriority' => null, 'processor' => null, 'provider' => null, 'stateOptions' => null, diff --git a/src/Metadata/Tests/Extractor/YamlExtractorTest.php b/src/Metadata/Tests/Extractor/YamlExtractorTest.php index 3ff86c07f4b..cd9ec346060 100644 --- a/src/Metadata/Tests/Extractor/YamlExtractorTest.php +++ b/src/Metadata/Tests/Extractor/YamlExtractorTest.php @@ -319,6 +319,7 @@ public function testValidYaml(): void 'serialize' => null, 'queryParameterValidate' => null, 'priority' => null, + 'routePriority' => null, 'processor' => null, 'provider' => null, 'itemUriTemplate' => null, @@ -410,6 +411,7 @@ public function testValidYaml(): void 'serialize' => null, 'queryParameterValidate' => null, 'priority' => null, + 'routePriority' => null, 'processor' => null, 'provider' => null, 'stateOptions' => null, diff --git a/src/Symfony/Routing/ApiLoader.php b/src/Symfony/Routing/ApiLoader.php index bfab134897f..259fd61347e 100644 --- a/src/Symfony/Routing/ApiLoader.php +++ b/src/Symfony/Routing/ApiLoader.php @@ -126,7 +126,7 @@ public function load(mixed $data, ?string $type = null): RouteCollection $operation->getCondition() ?? '' ); - $routeCollection->add($operationName, $route, $operation->getPriority() ?? 0); + $routeCollection->add($operationName, $route, $operation->getRoutePriority() ?? 0); } } } diff --git a/tests/Symfony/Routing/ApiLoaderTest.php b/tests/Symfony/Routing/ApiLoaderTest.php index 0f7a87da1fa..2497bc0e5bf 100644 --- a/tests/Symfony/Routing/ApiLoaderTest.php +++ b/tests/Symfony/Routing/ApiLoaderTest.php @@ -282,12 +282,12 @@ public function testApiLoaderIrisTypeRegistersItemRoutesWithNotExposedController $this->assertNotNull($routeCollection->get('api_genid')); } - public function testApiLoaderUsesOperationPriority(): void + public function testApiLoaderUsesOperationRoutePriority(): void { $resourceCollection = new ResourceMetadataCollection(Dummy::class, [ (new ApiResource())->withShortName('dummy')->withOperations(new Operations([ - 'api_dummies_get_item' => (new Get())->withUriTemplate('/dummies/{id}')->withPriority(10), - 'api_dummies_get_collection' => (new GetCollection())->withUriTemplate('/dummies'), + 'api_dummies_get_item' => (new Get())->withUriTemplate('/dummies/{id}')->withRoutePriority(10), + 'api_dummies_get_collection' => (new GetCollection())->withUriTemplate('/dummies')->withPriority(10), ])), ]);