// accordingly.
$this->
modifyBundleField();
$this->
assertTrue($this->entityDefinitionUpdateManager->
needsUpdates(), 'EntityDefinitionUpdateManager reports that updates are needed.'
);
$changes =
$this->entityDefinitionUpdateManager->
getChangeSummary();
$this->
assertCount(1,
$changes['entity_test_update'
]);
$this->
assertEquals('The A new bundle field field needs to be updated.',
strip_tags($changes['entity_test_update'
][0
]));
$this->
applyEntityUpdates();
$this->
assertTrue($this->database->
schema()->
fieldExists('entity_test_update__new_bundle_field', 'new_bundle_field_format'
), 'Format column created in dedicated table for new_base_field.'
);
// Remove the bundle field, ensure the update manager reports it, and the
// update deletes the schema.
$this->
removeBundleField();
$this->
assertTrue($this->entityDefinitionUpdateManager->
needsUpdates(), 'EntityDefinitionUpdateManager reports that updates are needed.'
);
$changes =
$this->entityDefinitionUpdateManager->
getChangeSummary();
$this->
assertCount(1,
$changes['entity_test_update'
]);
$this->
assertEquals('The A new bundle field field needs to be uninstalled.',
strip_tags($changes['entity_test_update'
][0
]));
$this->
applyEntityUpdates();
$this->
assertFalse($this->database->
schema()->
tableExists('entity_test_update__new_bundle_field'
), 'Dedicated table deleted for new_bundle_field.'
);
} /**
* Tests creating and deleting a base field if entities exist.
*
* This tests deletion when there are existing entities, but non-existent data
* for the field being deleted.
*
* @see testBaseFieldDeleteWithExistingData()
*/