From 7aa4e10473a234061408eef966bc01f8cad5daf8 Mon Sep 17 00:00:00 2001 From: Denis Yuzhanin Date: Wed, 4 Mar 2020 13:27:46 +0300 Subject: [PATCH] Add test for tagged iterator with numeric index --- .../ResolveTaggedIteratorArgumentPassTest.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveTaggedIteratorArgumentPassTest.php b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveTaggedIteratorArgumentPassTest.php index 2322817e8666..2a07f2617898 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveTaggedIteratorArgumentPassTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Compiler/ResolveTaggedIteratorArgumentPassTest.php @@ -37,4 +37,20 @@ public function testProcess() $expected->setValues([new Reference('b'), new Reference('c'), new Reference('a')]); $this->assertEquals($expected, $properties['foos']); } + + public function testProcessWithIndexes() + { + $container = new ContainerBuilder(); + $container->register('service_a', 'stdClass')->addTag('foo', ['key' => '1']); + $container->register('service_b', 'stdClass')->addTag('foo', ['key' => '2']); + $container->register('service_c', 'stdClass')->setProperty('foos', new TaggedIteratorArgument('foo', 'key')); + + (new ResolveTaggedIteratorArgumentPass())->process($container); + + $properties = $container->getDefinition('service_c')->getProperties(); + + $expected = new TaggedIteratorArgument('foo', 'key'); + $expected->setValues(['1' => new Reference('service_a'), '2' => new Reference('service_b')]); + $this->assertEquals($expected, $properties['foos']); + } }