function FieldableEntityDefinitionUpdateTest::insertData

Same name in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php \Drupal\KernelTests\Core\Entity\FieldableEntityDefinitionUpdateTest::insertData()
  2. 8.9.x core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php \Drupal\KernelTests\Core\Entity\FieldableEntityDefinitionUpdateTest::insertData()
  3. 10 core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php \Drupal\KernelTests\Core\Entity\FieldableEntityDefinitionUpdateTest::insertData()

Generates test entities for the 'entity_test_update' entity type.

Parameters

bool $revisionable: Whether the entity type is revisionable or not.

bool $translatable: Whether the entity type is translatable or not.

1 call to FieldableEntityDefinitionUpdateTest::insertData()
FieldableEntityDefinitionUpdateTest::testFieldableEntityTypeUpdatesErrorHandling in core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php
Tests that a failed entity schema update preserves the existing data.

File

core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php, line 135

Class

FieldableEntityDefinitionUpdateTest
Tests EntityDefinitionUpdateManager's fieldable entity update functionality.

Namespace

Drupal\KernelTests\Core\Entity

Code

protected function insertData($revisionable, $translatable) : void {
    // Add three test entities in order to make the "data copy" step run at
    // least three times.
    
    /** @var \Drupal\Core\Entity\TranslatableRevisionableStorageInterface|\Drupal\Core\Entity\EntityStorageInterface $storage */
    $storage = $this->entityTypeManager
        ->getStorage($this->entityTypeId);
    $next_id = $storage->getQuery()
        ->accessCheck(FALSE)
        ->count()
        ->execute() + 1;
    // Create test entities with two translations and two revisions.
    
    /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
    for ($i = $next_id; $i <= $next_id + 2; $i++) {
        $entity = $storage->create([
            'id' => $i,
            'type' => 'test_bundle',
            'name' => 'test entity - ' . $i . ' - en',
            'new_bundle_field' => 'bundle field - ' . $i . ' - en',
            'test_multiple_properties' => [
                'value1' => 'shared table - ' . $i . ' - value 1 - en',
                'value2' => 'shared table - ' . $i . ' - value 2 - en',
            ],
            'test_multiple_properties_multiple_values' => [
                [
                    'value1' => 'dedicated table - ' . $i . ' - delta 0 - value 1 - en',
                    'value2' => 'dedicated table - ' . $i . ' - delta 0 - value 2 - en',
                ],
                [
                    'value1' => 'dedicated table - ' . $i . ' - delta 1 - value 1 - en',
                    'value2' => 'dedicated table - ' . $i . ' - delta 1 - value 2 - en',
                ],
            ],
        ]);
        $entity->save();
        if ($translatable) {
            $translation = $entity->addTranslation('ro', [
                'name' => 'test entity - ' . $i . ' - ro',
                'new_bundle_field' => 'bundle field - ' . $i . ' - ro',
                'test_multiple_properties' => [
                    'value1' => 'shared table - ' . $i . ' - value 1 - ro',
                    'value2' => 'shared table - ' . $i . ' - value 2 - ro',
                ],
                'test_multiple_properties_multiple_values' => [
                    [
                        'value1' => 'dedicated table - ' . $i . ' - delta 0 - value 1 - ro',
                        'value2' => 'dedicated table - ' . $i . ' - delta 0 - value 2 - ro',
                    ],
                    [
                        'value1' => 'dedicated table - ' . $i . ' - delta 1 - value 1 - ro',
                        'value2' => 'dedicated table - ' . $i . ' - delta 1 - value 2 - ro',
                    ],
                ],
            ]);
            $translation->save();
        }
        $this->testEntities[$entity->id()] = $entity;
        if ($revisionable) {
            // Create a new pending revision.
            $revision_2 = $storage->createRevision($entity, FALSE);
            $revision_2->name = 'test entity - ' . $i . ' - en - rev2';
            $revision_2->new_bundle_field = 'bundle field - ' . $i . ' - en - rev2';
            $revision_2->test_multiple_properties->value1 = 'shared table - ' . $i . ' - value 1 - en - rev2';
            $revision_2->test_multiple_properties->value2 = 'shared table - ' . $i . ' - value 2 - en - rev2';
            $revision_2->test_multiple_properties_multiple_values[0]->value1 = 'dedicated table - ' . $i . ' - delta 0 - value 1 - en - rev2';
            $revision_2->test_multiple_properties_multiple_values[0]->value2 = 'dedicated table - ' . $i . ' - delta 0 - value 2 - en - rev2';
            $revision_2->test_multiple_properties_multiple_values[1]->value1 = 'dedicated table - ' . $i . ' - delta 1 - value 1 - en - rev2';
            $revision_2->test_multiple_properties_multiple_values[1]->value2 = 'dedicated table - ' . $i . ' - delta 1 - value 2 - en - rev2';
            $revision_2->save();
            if ($translatable) {
                $revision_2_translation = $storage->createRevision($entity->getTranslation('ro'), FALSE);
                $revision_2_translation->name = 'test entity - ' . $i . ' - ro - rev2';
                $revision_2->new_bundle_field = 'bundle field - ' . $i . ' - ro - rev2';
                $revision_2->test_multiple_properties->value1 = 'shared table - ' . $i . ' - value 1 - ro - rev2';
                $revision_2->test_multiple_properties->value2 = 'shared table - ' . $i . ' - value 2 - ro - rev2';
                $revision_2_translation->test_multiple_properties_multiple_values[0]->value1 = 'dedicated table - ' . $i . ' - delta 0 - value 1 - ro - rev2';
                $revision_2_translation->test_multiple_properties_multiple_values[0]->value2 = 'dedicated table - ' . $i . ' - delta 0 - value 2 - ro - rev2';
                $revision_2_translation->test_multiple_properties_multiple_values[1]->value1 = 'dedicated table - ' . $i . ' - delta 1 - value 1 - ro - rev2';
                $revision_2_translation->test_multiple_properties_multiple_values[1]->value2 = 'dedicated table - ' . $i . ' - delta 1 - value 2 - ro - rev2';
                $revision_2_translation->save();
            }
        }
    }
}

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