function EntityFieldTest::doTestSave

Same name and namespace in other branches
  1. 8.9.x core/tests/Drupal/KernelTests/Core/Entity/EntityFieldTest.php \Drupal\KernelTests\Core\Entity\EntityFieldTest::doTestSave()
  2. 10 core/tests/Drupal/KernelTests/Core/Entity/EntityFieldTest.php \Drupal\KernelTests\Core\Entity\EntityFieldTest::doTestSave()
  3. 11.x core/tests/Drupal/KernelTests/Core/Entity/EntityFieldTest.php \Drupal\KernelTests\Core\Entity\EntityFieldTest::doTestSave()

Executes the save tests for the given entity type.

Parameters

string $entity_type: The entity type to run the tests with.

1 call to EntityFieldTest::doTestSave()
EntityFieldTest::testSave in core/tests/Drupal/KernelTests/Core/Entity/EntityFieldTest.php
Tries to save and load an entity again.

File

core/tests/Drupal/KernelTests/Core/Entity/EntityFieldTest.php, line 383

Class

EntityFieldTest
Tests the Entity Field API.

Namespace

Drupal\KernelTests\Core\Entity

Code

protected function doTestSave($entity_type) {
  $langcode_key = $this->entityTypeManager
    ->getDefinition($entity_type)
    ->getKey('langcode');
  $entity = $this->createTestEntity($entity_type);
  $entity->save();
  $this->assertTrue((bool) $entity->id(), new FormattableMarkup('%entity_type: Entity has received an id.', [
    '%entity_type' => $entity_type,
  ]));
  $entity = $this->container
    ->get('entity_type.manager')
    ->getStorage($entity_type)
    ->load($entity->id());
  $this->assertTrue((bool) $entity->id(), new FormattableMarkup('%entity_type: Entity loaded.', [
    '%entity_type' => $entity_type,
  ]));
  // Access the name field.
  $this->assertEquals(1, $entity->id->value, new FormattableMarkup('%entity_type: ID value can be read.', [
    '%entity_type' => $entity_type,
  ]));
  $this->assertIsString($entity->uuid->value);
  $this->assertEquals('en', $entity->{$langcode_key}->value, new FormattableMarkup('%entity_type: Language code can be read.', [
    '%entity_type' => $entity_type,
  ]));
  $this->assertEquals(\Drupal::languageManager()->getLanguage('en'), $entity->{$langcode_key}->language, new FormattableMarkup('%entity_type: Language object can be read.', [
    '%entity_type' => $entity_type,
  ]));
  $this->assertEquals($this->entityUser
    ->id(), $entity->user_id->target_id, new FormattableMarkup('%entity_type: User id can be read.', [
    '%entity_type' => $entity_type,
  ]));
  $this->assertEquals($this->entityUser
    ->getAccountName(), $entity->user_id->entity->name->value, new FormattableMarkup('%entity_type: User name can be read.', [
    '%entity_type' => $entity_type,
  ]));
  $this->assertEquals($this->entityFieldText, $entity->field_test_text->value, new FormattableMarkup('%entity_type: Text field can be read.', [
    '%entity_type' => $entity_type,
  ]));
}

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