function ResourceTestBase::getEntityDuplicate

Same name and namespace in other branches
  1. 9 core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php \Drupal\Tests\jsonapi\Functional\ResourceTestBase::getEntityDuplicate()
  2. 8.9.x core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php \Drupal\Tests\jsonapi\Functional\ResourceTestBase::getEntityDuplicate()
  3. 11.x core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php \Drupal\Tests\jsonapi\Functional\ResourceTestBase::getEntityDuplicate()
2 calls to ResourceTestBase::getEntityDuplicate()
ResourceTestBase::createAnotherEntity in core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php
Creates another entity to be tested.
UserTest::createAnotherEntity in core/modules/jsonapi/tests/src/Functional/UserTest.php
Creates another entity to be tested.

File

core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php, line 421

Class

ResourceTestBase
Subclass this for every JSON:API resource type.

Namespace

Drupal\Tests\jsonapi\Functional

Code

protected function getEntityDuplicate(EntityInterface $original, $key) {
  $duplicate = $original->createDuplicate();
  if ($label_key = $original->getEntityType()
    ->getKey('label')) {
    $duplicate->set($label_key, $original->label() . '_' . $key);
  }
  $id_key = $duplicate->getEntityType()
    ->getKey('id');
  $needs_manual_id = $duplicate instanceof ConfigEntityInterface && $id_key;
  if ($duplicate instanceof FieldableEntityInterface && $id_key) {
    $id_field = $duplicate->getFieldDefinition($id_key);
    if ($id_field->getType() !== 'integer') {
      $needs_manual_id = TRUE;
    }
  }
  if ($needs_manual_id) {
    $duplicate->set($id_key, $original->id() . '_' . $key);
  }
  return $duplicate;
}

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