public function EntityDefinitionUpdateTest::testBaseFieldDeleteWithExistingData in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/system/src/Tests/Entity/EntityDefinitionUpdateTest.php \Drupal\system\Tests\Entity\EntityDefinitionUpdateTest::testBaseFieldDeleteWithExistingData()
Tests deleting a base field when it has existing data.
File
- core/modules/ system/ src/ Tests/ Entity/ EntityDefinitionUpdateTest.php, line 385 
- Contains \Drupal\system\Tests\Entity\EntityDefinitionUpdateTest.
Class
- EntityDefinitionUpdateTest
- Tests EntityDefinitionUpdateManager functionality.
Namespace
Drupal\system\Tests\EntityCode
public function testBaseFieldDeleteWithExistingData() {
  // Add the base field and run the update.
  $this
    ->addBaseField();
  $this->entityDefinitionUpdateManager
    ->applyUpdates();
  // Save an entity with the base field populated.
  $this->entityManager
    ->getStorage('entity_test_update')
    ->create(array(
    'new_base_field' => 'foo',
  ))
    ->save();
  // Remove the base field and apply updates. It's expected to throw an
  // exception.
  // @todo Revisit that expectation once purging is implemented for
  //   all fields: https://www.drupal.org/node/2282119.
  $this
    ->removeBaseField();
  try {
    $this->entityDefinitionUpdateManager
      ->applyUpdates();
    $this
      ->fail('FieldStorageDefinitionUpdateForbiddenException thrown when trying to apply an update that deletes a non-purgeable field with data.');
  } catch (FieldStorageDefinitionUpdateForbiddenException $e) {
    $this
      ->pass('FieldStorageDefinitionUpdateForbiddenException thrown when trying to apply an update that deletes a non-purgeable field with data.');
  }
}