You are here

protected function EntityReferenceSelectionReferenceableTest::setUp in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/system/tests/src/Kernel/Entity/EntityReferenceSelectionReferenceableTest.php \Drupal\Tests\system\Kernel\Entity\EntityReferenceSelectionReferenceableTest::setUp()

Overrides KernelTestBase::setUp

File

core/modules/system/tests/src/Kernel/Entity/EntityReferenceSelectionReferenceableTest.php, line 55

Class

EntityReferenceSelectionReferenceableTest
Tests entity reference selection plugins.

Namespace

Drupal\Tests\system\Kernel\Entity

Code

protected function setUp() : void {
  parent::setUp();
  $this
    ->installEntitySchema('entity_test_no_label');
  $this
    ->installEntitySchema('node');

  /** @var \Drupal\Core\Entity\EntityStorageInterface $storage */
  $storage = $this->container
    ->get('entity_type.manager')
    ->getStorage('entity_test_no_label');

  // Create a new node-type.
  NodeType::create([
    'type' => $node_type = mb_strtolower($this
      ->randomMachineName()),
    'name' => $this
      ->randomString(),
  ])
    ->save();

  // Create an entity reference field targeting 'entity_test_no_label'
  // entities.
  $field_name = mb_strtolower($this
    ->randomMachineName());
  $this
    ->createEntityReferenceField('node', $node_type, $field_name, $this
    ->randomString(), 'entity_test_no_label');
  $field_config = FieldConfig::loadByName('node', $node_type, $field_name);
  $this->selectionHandler = $this->container
    ->get('plugin.manager.entity_reference_selection')
    ->getSelectionHandler($field_config);

  // Generate a bundle name to be used with 'entity_test_no_label'.
  $this->bundle = mb_strtolower($this
    ->randomMachineName());

  // Create 6 entities to be referenced by the field.
  foreach (static::$labels as $name) {
    $storage
      ->create([
      'id' => mb_strtolower($this
        ->randomMachineName()),
      'name' => $name,
      'type' => $this->bundle,
    ])
      ->save();
  }
}