function EntityReferenceFieldTest::testEntityReferenceItemIssetFiberSuspension

Tests fiber suspension with isset on reference field item properties.

File

core/tests/Drupal/KernelTests/Core/Entity/EntityReferenceFieldTest.php, line 165

Class

EntityReferenceFieldTest
Tests for the entity reference field.

Namespace

Drupal\KernelTests\Core\Entity

Code

public function testEntityReferenceItemIssetFiberSuspension() : void {
  $referenced_entity = $this->container
    ->get('entity_type.manager')
    ->getStorage($this->referencedEntityType)
    ->create([
    'type' => $this->bundle,
  ]);
  $referenced_entity->save();
  $storage = $this->container
    ->get('entity_type.manager')
    ->getStorage($this->entityType);
  $entity = $storage->create([
    'type' => $this->bundle,
  ]);
  $entity->{$this->fieldName}->target_id = $referenced_entity->id();
  $entity->save();
  /** @var \Drupal\Core\Entity\FieldableEntityInterface $entity */
  $entity = $storage->load($entity->id());
  $field_item = $entity->get($this->fieldName)
    ->first();
  $fiber = new \Fiber(fn() => isset($field_item->entity));
  $fiber->start();
  $this->assertTrue(isset($field_item->entity));
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.