function InputTest::testInputInConfigEntityIds
Tests using input values in entity IDs for config actions.
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Recipe/ InputTest.php, line 240
Class
- InputTest
- @group Recipe @covers \Drupal\Core\Recipe\InputConfigurator
Namespace
Drupal\KernelTests\Core\RecipeCode
public function testInputInConfigEntityIds() : void {
$this->assertFalse(\Drupal::moduleHandler()->moduleExists('node'));
$collector = new class implements InputCollectorInterface {
/**
* {@inheritdoc}
*/
public function collectValue(string $name, DataDefinitionInterface $definition, mixed $default_value) : mixed {
return $default_value;
}
};
$recipe = Recipe::createFromDirectory('core/tests/fixtures/recipes/input_test');
$recipe->input
->collectAll($collector);
RecipeRunner::processRecipe($recipe);
$this->assertInstanceOf(NodeType::class, NodeType::load('test'));
// Using an input placeholder in a non-identifying part of the config entity
// ID should cause an exception.
$recipe = $this->createRecipe([
'name' => 'Invalid use of an input in config entity ID',
'config' => [
'actions' => [
'node.${anything}.test' => [
'createIfNotExists' => [
'id' => 'test',
],
],
],
],
]);
$recipe->input
->collectAll($collector);
$this->expectException(ConfigActionException::class);
$this->expectExceptionMessage("The entity type for the config name 'node.\${anything}.test' could not be identified.");
RecipeRunner::processRecipe($recipe);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.