public function testFieldableEntityTypeUpdates($initial_rev,
$initial_mul,
$new_rev,
$new_mul,
$data_migration_supported) { // The 'entity_test_update' entity type is neither revisionable nor
// translatable by default, so we need to get it into the initial testing
// state. This also covers the "no existing data" scenario for fieldable
// entity type updates.
if ($initial_rev ||
$initial_mul) { $entity_type =
$this->
getUpdatedEntityTypeDefinition($initial_rev,
$initial_mul);
$field_storage_definitions =
$this->
getUpdatedFieldStorageDefinitions($initial_rev,
$initial_mul);
$this->entityDefinitionUpdateManager->
updateFieldableEntityType($entity_type,
$field_storage_definitions);
$this->
assertEntityTypeSchema($initial_rev,
$initial_mul);
} // Add a few entities so we can test the data copying step.
$this->
insertData($initial_rev,
$initial_mul);
$updated_entity_type =
$this->
getUpdatedEntityTypeDefinition($new_rev,
$new_mul);
$updated_field_storage_definitions =
$this->
getUpdatedFieldStorageDefinitions($new_rev,
$new_mul);
if (!
$data_migration_supported) { $this->
expectException(EntityStorageException::
class);
$this->
expectExceptionMessage('Converting an entity type from revisionable to non-revisionable or from translatable to non-translatable is not supported.'
);
}