public function OptimizedPhpArrayDumperTest::testGetServiceDefinitionWithReferenceToAlias in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php \Drupal\Tests\Component\DependencyInjection\Dumper\OptimizedPhpArrayDumperTest::testGetServiceDefinitionWithReferenceToAlias()
Tests that references to aliases work correctly.
@covers ::getReferenceCall
@dataProvider publicPrivateDataProvider
File
- core/
tests/ Drupal/ Tests/ Component/ DependencyInjection/ Dumper/ OptimizedPhpArrayDumperTest.php, line 486 - Contains \Drupal\Tests\Component\DependencyInjection\Dumper\OptimizedPhpArrayDumperTest.
Class
- OptimizedPhpArrayDumperTest
- @coversDefaultClass \Drupal\Component\DependencyInjection\Dumper\OptimizedPhpArrayDumper @group DependencyInjection
Namespace
Drupal\Tests\Component\DependencyInjection\DumperCode
public function testGetServiceDefinitionWithReferenceToAlias($public) {
$bar_definition = new Definition('\\stdClass');
$bar_definition_php_array = [
'class' => '\\stdClass',
];
if ($public) {
$bar_definition
->setPublic(TRUE);
}
else {
$bar_definition
->setPublic(FALSE);
$bar_definition_php_array['public'] = FALSE;
}
$bar_definition_php_array['arguments_count'] = 0;
$services['bar'] = $bar_definition;
$aliases['bar.alias'] = 'bar';
$foo = new Definition('\\stdClass');
$foo
->setPublic(TRUE);
$foo
->addArgument(new Reference('bar.alias'));
$services['foo'] = $foo;
$this->containerBuilder
->getAliases()
->willReturn($aliases);
$this->containerBuilder
->getDefinitions()
->willReturn($services);
$this->containerBuilder
->getDefinition('bar')
->willReturn($bar_definition);
$dump = $this->dumper
->getArray();
if ($public) {
$service_definition = $this
->getServiceCall('bar');
}
else {
$service_definition = $this
->getPrivateServiceCall('bar', $bar_definition_php_array, TRUE);
}
$data = [
'class' => '\\stdClass',
'arguments' => $this
->getCollection([
$service_definition,
]),
'arguments_count' => 1,
];
$this
->assertEquals($this
->serializeDefinition($data), $dump['services']['foo'], 'Expected definition matches dump.');
}