+ /**
+ * Tests handler priority sorting for service ID collection.
+ *
+ * @covers ::process
+ */
+ public function testserviceIdProcessPriority() {
+ $container = $this->buildContainer();
+ $container
+ ->register('consumer_id', __NAMESPACE__ . '\ValidConsumer')
+ ->addTag('service_id_collector');
+
+ $container
+ ->register('handler1', __NAMESPACE__ . '\ValidHandler')
+ ->addTag('consumer_id');
+ $container
+ ->register('handler2', __NAMESPACE__ . '\ValidHandler')
+ ->addTag('consumer_id', [
+ 'priority' => 20,
+ ]);
+ $container
+ ->register('handler3', __NAMESPACE__ . '\ValidHandler')
+ ->addTag('consumer_id', [
+ 'priority' => 10,
+ ]);
+
+ $handler_pass = new TaggedHandlersPass();
+ $handler_pass->process($container);
+
+ $arguments = $container->getDefinition('consumer_id')->getArguments();
+ $this->assertCount(1, $arguments);
+ $this->assertSame(['handler2', 'handler3', 'handler1'], $arguments[0]);
+ }
+