You are here

protected function FieldableEntityDefinitionUpdateTest::setUp in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/KernelTests/Core/Entity/FieldableEntityDefinitionUpdateTest.php \Drupal\KernelTests\Core\Entity\FieldableEntityDefinitionUpdateTest::setUp()

Overrides EntityKernelTestBase::setUp

File

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

Class

FieldableEntityDefinitionUpdateTest
Tests EntityDefinitionUpdateManager's fieldable entity update functionality.

Namespace

Drupal\KernelTests\Core\Entity

Code

protected function setUp() : void {
  parent::setUp();
  $this->entityDefinitionUpdateManager = $this->container
    ->get('entity.definition_update_manager');
  $this->lastInstalledSchemaRepository = $this->container
    ->get('entity.last_installed_schema.repository');
  $this->installedStorageSchema = $this->container
    ->get('keyvalue')
    ->get('entity.storage_schema.sql');
  $this->entityTypeManager = $this->container
    ->get('entity_type.manager');
  $this->entityFieldManager = $this->container
    ->get('entity_field.manager');
  $this->database = $this->container
    ->get('database');

  // Add a non-revisionable bundle field to test revision field table
  // handling.
  $this
    ->addBundleField('string', FALSE, TRUE);

  // The 'changed' field type has a special behavior because it updates itself
  // automatically if any of the other field values of an entity have been
  // updated, so add it to the entity type that is being tested in order to
  // provide test coverage for this special case.
  $fields['changed'] = BaseFieldDefinition::create('changed')
    ->setLabel(t('Changed'))
    ->setDescription(t('The time that the custom block was last edited.'))
    ->setTranslatable(TRUE)
    ->setRevisionable(TRUE);
  $this->state
    ->set('entity_test_update.additional_base_field_definitions', $fields);
  $this
    ->installEntitySchema($this->entityTypeId);
  $this
    ->installEntitySchema('configurable_language');

  // Enable an additional language.
  ConfigurableLanguage::createFromLangcode('ro')
    ->save();

  // Force the update function to convert one entity at a time.
  $settings = Settings::getAll();
  $settings['entity_update_batch_size'] = 1;
  new Settings($settings);
}