class AutowiredInstanceTraitTest
Same name and namespace in other branches
- 11.x core/tests/Drupal/Tests/Core/DependencyInjection/AutowiredInstanceTraitTest.php \Drupal\Tests\Core\DependencyInjection\AutowiredInstanceTraitTest
Tests \Drupal\Core\DependencyInjection\AutowiredInstanceTrait.
Attributes
#[CoversClass(AutowiredInstanceTrait::class)]
#[Group('DependencyInjection')]
Hierarchy
- class \Drupal\Tests\UnitTestCase uses \Drupal\Tests\DrupalTestCaseTrait, \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Drupal\TestTools\Extension\DeprecationBridge\ExpectDeprecationTrait, \Drupal\Tests\RandomGeneratorTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\Tests\Core\DependencyInjection\AutowiredInstanceTraitTest extends \Drupal\Tests\UnitTestCase
Expanded class hierarchy of AutowiredInstanceTraitTest
File
-
core/
tests/ Drupal/ Tests/ Core/ DependencyInjection/ AutowiredInstanceTraitTest.php, line 19
Namespace
Drupal\Tests\Core\DependencyInjectionView source
class AutowiredInstanceTraitTest extends UnitTestCase {
/**
* Tests autowiring services and parameters.
*/
public function testAutowire() : void {
$services = [
'stdClass' => new \stdClass(),
'custom.service' => new \stdClass(),
'setter.service' => new \stdClass(),
];
$parameters = [
'array.parameter' => [
'provider1' => 'value1',
],
'string.parameter' => 'string_value',
'setter.parameter' => 'setter_value',
];
$container = $this->createStub(ContainerInterface::class);
$container->method('has')
->willReturnCallback(fn(string $id): bool => array_key_exists($id, $services));
$container->method('get')
->willReturnCallback(fn(string $id): object => $services[$id]);
$container->method('hasParameter')
->willReturnCallback(fn(string $name): bool => array_key_exists($name, $parameters));
$container->method('getParameter')
->willReturnCallback(fn(string $name): array|string => $parameters[$name]);
$instance = AutowireTestClass::createInstanceAutowired($container, 'config', 'plugin_id', [
'definition',
]);
$this->assertSame('config', $instance->configuration);
$this->assertSame('plugin_id', $instance->pluginId);
$this->assertSame([
'definition',
], $instance->pluginDefinition);
$this->assertSame($services['stdClass'], $instance->serviceByType);
$this->assertSame($services['custom.service'], $instance->serviceById);
$this->assertSame($services['custom.service'], $instance->serviceByShortId);
$this->assertSame($parameters['array.parameter'], $instance->arrayParameter);
$this->assertSame($parameters['string.parameter'], $instance->stringParameter);
$this->assertNull($instance->nullableService);
$this->assertNull($instance->nullableParameter);
$this->assertSame($services['stdClass'], $instance->setterTypedService);
$this->assertSame($services['setter.service'], $instance->setterNamedService);
$this->assertSame($parameters['setter.parameter'], $instance->setterParameter);
}
/**
* Tests exception for missing required service.
*/
public function testAutowireMissingRequiredService() : void {
$container = $this->createStub(ContainerInterface::class);
$container->method('has')
->willReturn(FALSE);
$this->expectException(AutowiringFailedException::class);
$this->expectExceptionMessage('Cannot autowire service "stdClass": argument "$service" of method "Drupal\\Tests\\Core\\DependencyInjection\\AutowireRequiredServiceTestClass::__construct()". Check that either the argument type is correct or the Autowire attribute is passed a valid identifier. Otherwise configure its value explicitly if possible.');
AutowireRequiredServiceTestClass::createInstanceAutowired($container);
}
/**
* Tests exception for missing required parameter.
*/
public function testAutowireMissingRequiredParameter() : void {
$container = $this->createStub(ContainerInterface::class);
$container->method('hasParameter')
->willReturn(FALSE);
$this->expectException(AutowiringFailedException::class);
$this->expectExceptionMessage('Cannot autowire parameter "missing.parameter": argument "$parameter" of method "Drupal\\Tests\\Core\\DependencyInjection\\AutowireRequiredParameterTestClass::__construct()". Check that either the argument type is correct or the Autowire attribute is passed a valid identifier. Otherwise configure its value explicitly if possible.');
AutowireRequiredParameterTestClass::createInstanceAutowired($container);
}
}
Members
| Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overrides |
|---|---|---|---|---|---|
| AutowiredInstanceTraitTest::testAutowire | public | function | Tests autowiring services and parameters. | ||
| AutowiredInstanceTraitTest::testAutowireMissingRequiredParameter | public | function | Tests exception for missing required parameter. | ||
| AutowiredInstanceTraitTest::testAutowireMissingRequiredService | public | function | Tests exception for missing required service. | ||
| DrupalTestCaseTrait::checkErrorHandlerOnTearDown | public | function | Checks the test error handler after test execution. | 1 | |
| ExpectDeprecationTrait::expectDeprecation | Deprecated | public | function | Adds an expected deprecation. | |
| ExpectDeprecationTrait::regularExpressionForFormatDescription | private | function | |||
| RandomGeneratorTrait::getRandomGenerator | protected | function | Gets the random generator for the utility methods. | ||
| RandomGeneratorTrait::randomMachineName | protected | function | Generates a unique random string containing letters and numbers. | ||
| RandomGeneratorTrait::randomObject | public | function | Generates a random PHP object. | ||
| RandomGeneratorTrait::randomString | public | function | Generates a pseudo-random string of ASCII characters of codes 32 to 126. | ||
| UnitTestCase::$root | protected | property | The app root. | ||
| UnitTestCase::getClassResolverStub | protected | function | Returns a stub class resolver. | ||
| UnitTestCase::getConfigFactoryStub | public | function | Returns a stub config factory that behaves according to the passed array. | ||
| UnitTestCase::getContainerWithCacheTagsInvalidator | protected | function | Sets up a container with a cache tags invalidator. | ||
| UnitTestCase::getStringTranslationStub | public | function | Returns a stub translation manager that just returns the passed string. | ||
| UnitTestCase::setDebugDumpHandler | public static | function | Registers the dumper CLI handler when the DebugDump extension is enabled. | ||
| UnitTestCase::setUp | protected | function | 363 | ||
| UnitTestCase::setupMockIterator | protected | function | Set up a traversable class mock to return specific items when iterated. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.