function EntityReferenceIntegrationTest::assertFieldValues

Same name and namespace in other branches
  1. 9 core/modules/field/tests/src/Functional/EntityReference/EntityReferenceIntegrationTest.php \Drupal\Tests\field\Functional\EntityReference\EntityReferenceIntegrationTest::assertFieldValues()
  2. 8.9.x core/modules/field/tests/src/Functional/EntityReference/EntityReferenceIntegrationTest.php \Drupal\Tests\field\Functional\EntityReference\EntityReferenceIntegrationTest::assertFieldValues()
  3. 10 core/modules/field/tests/src/Functional/EntityReference/EntityReferenceIntegrationTest.php \Drupal\Tests\field\Functional\EntityReference\EntityReferenceIntegrationTest::assertFieldValues()

Asserts that the reference field values are correct.

@internal

Parameters

string $entity_name: The name of the test entity.

\Drupal\Core\Entity\EntityInterface[] $referenced_entities: An array of referenced entities.

bool $assert_order: Whether the correct order of the references should be assert or just that they exist.

1 call to EntityReferenceIntegrationTest::assertFieldValues()
EntityReferenceIntegrationTest::testSupportedEntityTypesAndWidgets in core/modules/field/tests/src/Functional/EntityReference/EntityReferenceIntegrationTest.php
Tests the entity reference field with all its supported field widgets.

File

core/modules/field/tests/src/Functional/EntityReference/EntityReferenceIntegrationTest.php, line 207

Class

EntityReferenceIntegrationTest
Tests various Entity reference UI components.

Namespace

Drupal\Tests\field\Functional\EntityReference

Code

protected function assertFieldValues(string $entity_name, array $referenced_entities, $assert_order = TRUE) : void {
  $entity = current($this->container
    ->get('entity_type.manager')
    ->getStorage($this->entityType)
    ->loadByProperties([
    'name' => $entity_name,
  ]));
  $this->assertNotEmpty($entity, "{$this->entityType}: Entity found in the database.");
  if ($assert_order) {
    $this->assertEquals($referenced_entities[0]->id(), $entity->{$this->fieldName}->target_id);
    $this->assertEquals($referenced_entities[0]->id(), $entity->{$this->fieldName}->entity
      ->id());
    $this->assertEquals($referenced_entities[0]->label(), $entity->{$this->fieldName}->entity
      ->label());
    $this->assertEquals($referenced_entities[1]->id(), $entity->{$this->fieldName}[1]->target_id);
    $this->assertEquals($referenced_entities[1]->id(), $entity->{$this->fieldName}[1]->entity
      ->id());
    $this->assertEquals($referenced_entities[1]->label(), $entity->{$this->fieldName}[1]->entity
      ->label());
  }
  else {
    $ids = [
      $referenced_entities[0]->id(),
      $referenced_entities[1]->id(),
    ];
    $labels = [
      $referenced_entities[0]->label(),
      $referenced_entities[1]->label(),
    ];
    $this->assertContains($entity->{$this->fieldName}->target_id, $ids);
    $this->assertContains($entity->{$this->fieldName}->entity
      ->label(), $labels);
    $this->assertContains($entity->{$this->fieldName}[1]->target_id, $ids);
    $this->assertContains($entity->{$this->fieldName}[1]->entity
      ->label(), $labels);
  }
}

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