function EntityDefinitionUpdateMultipleTypesTest::testBaseFieldUpdateWithExistingData

Tests updating a base field when it has existing data.

File

core/tests/Drupal/KernelTests/Core/Entity/EntityDefinitionUpdateMultipleTypesTest.php, line 547

Class

EntityDefinitionUpdateMultipleTypesTest
Tests EntityDefinitionUpdateManager functionality.

Namespace

Drupal\KernelTests\Core\Entity

Code

public function testBaseFieldUpdateWithExistingData() : void {
  // Add the base field and run the update.
  $this->addBaseField();
  $this->applyEntityUpdates();
  // Save an entity with the base field populated.
  $this->entityTypeManager
    ->getStorage('entity_test_update')
    ->create([
    'new_base_field' => 'foo',
  ])
    ->save();
  // Change the field's field type and apply updates. It's expected to
  // throw an exception.
  $this->modifyBaseField();
  try {
    $this->applyEntityUpdates();
    $this->fail('FieldStorageDefinitionUpdateForbiddenException thrown when trying to update a field schema that has data.');
  } catch (FieldStorageDefinitionUpdateForbiddenException) {
    // Expected exception; just continue testing.
  }
}

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