Add test for tagged iterator with numeric index

This commit is contained in:
Denis Yuzhanin 2020-03-04 13:27:46 +03:00 committed by Nicolas Grekas
parent 2bf9991dcb
commit 7aa4e10473
1 changed files with 16 additions and 0 deletions

View File

@ -37,4 +37,20 @@ class ResolveTaggedIteratorArgumentPassTest extends TestCase
$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']);
}
}