ServicesDefaultsTest.php in Drupal 10
File
core/tests/Drupal/KernelTests/Core/DependencyInjection/ServicesDefaultsTest.php
View source
<?php
namespace Drupal\KernelTests\Core\DependencyInjection;
use Drupal\KernelTests\KernelTestBase;
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
class ServicesDefaultsTest extends KernelTestBase {
protected static $modules = [
'services_defaults_test',
];
public function testAutowiring() {
$this
->assertSame($this->container
->get('Drupal\\services_defaults_test\\TestInjection'), $this->container
->get('Drupal\\services_defaults_test\\TestService')
->getTestInjection());
$this
->assertSame($this->container
->get('Drupal\\services_defaults_test\\TestInjection2'), $this->container
->get('Drupal\\services_defaults_test\\TestService')
->getTestInjection2());
$this
->assertNotSame($this->container
->get('Drupal\\services_defaults_test\\TestInjection'), $this->container
->get('services_default_test.no_autowire')
->getTestInjection());
$this
->assertSame($this->container
->get('services_default_test.no_autowire.arg'), $this->container
->get('services_default_test.no_autowire')
->getTestInjection());
$this
->assertSame($this->container
->get('Drupal\\services_defaults_test\\TestInjection2'), $this->container
->get('services_default_test.no_autowire')
->getTestInjection2());
}
public function testDefaultTags() {
$testServiceDefinition = $this->container
->getDefinition('Drupal\\services_defaults_test\\TestService');
$testInjection1Definition = $this->container
->getDefinition('Drupal\\services_defaults_test\\TestInjection');
$testInjection2Definition = $this->container
->getDefinition('Drupal\\services_defaults_test\\TestInjection2');
$this
->assertTrue($testServiceDefinition
->hasTag('foo.tag1'));
$this
->assertTrue($testServiceDefinition
->hasTag('bar.tag2'));
$this
->assertSame([
[
'test' => 123,
],
], $testServiceDefinition
->getTag('bar.tag2'));
$this
->assertTrue($testServiceDefinition
->hasTag('bar.tag3'));
$this
->assertSame([
[
'value' => NULL,
],
], $testServiceDefinition
->getTag('bar.tag3'));
$this
->assertSame($testServiceDefinition
->getTags(), $testInjection1Definition
->getTags());
$this
->assertTrue($testInjection2Definition
->hasTag('zee.bang'));
$this
->assertTrue($testInjection2Definition
->hasTag('foo.tag1'));
$this
->assertTrue($testInjection2Definition
->hasTag('bar.tag2'));
$this
->assertSame([
[
'test' => 321,
],
[
'test' => 123,
],
], $testInjection2Definition
->getTag('bar.tag2'));
$this
->assertTrue($testInjection2Definition
->hasTag('bar.tag3'));
$this
->assertSame([
[
'value' => NULL,
],
], $testInjection2Definition
->getTag('bar.tag3'));
}
public function testPrivateServices() {
$this
->expectException(ServiceNotFoundException::class);
$this->container
->getDefinition('Drupal\\services_defaults_test\\TestPrivateService');
}
}