You are here

protected function EntityDefinitionTestTrait::getUpdatedFieldStorageDefinitions in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php \Drupal\Tests\system\Functional\Entity\Traits\EntityDefinitionTestTrait::getUpdatedFieldStorageDefinitions()

Returns the required rev / mul field definitions for an entity type.

Parameters

bool $revisionable: (optional) Whether the entity type should be revisionable or not. Defaults to FALSE.

bool $translatable: (optional) Whether the entity type should be translatable or not. Defaults to FALSE.

Return value

\Drupal\Core\Field\FieldStorageDefinitionInterface[] An array of field storage definition objects.

10 calls to EntityDefinitionTestTrait::getUpdatedFieldStorageDefinitions()
EntityDefinitionTestTrait::resetEntityType in core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
Resets the entity type definition.
EntityDefinitionTestTrait::updateEntityTypeToNotRevisionable in core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
Updates the 'entity_test_update' entity type not revisionable.
EntityDefinitionTestTrait::updateEntityTypeToNotTranslatable in core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
Updates the 'entity_test_update' entity type to not translatable.
EntityDefinitionTestTrait::updateEntityTypeToRevisionable in core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
Updates the 'entity_test_update' entity type to revisionable.
EntityDefinitionTestTrait::updateEntityTypeToRevisionableAndTranslatable in core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php
Updates the 'entity_test_update' entity type to revisionable and translatable.

... See full list

File

core/modules/system/tests/src/Functional/Entity/Traits/EntityDefinitionTestTrait.php, line 493

Class

EntityDefinitionTestTrait
Provides some test methods used to update existing entity definitions.

Namespace

Drupal\Tests\system\Functional\Entity\Traits

Code

protected function getUpdatedFieldStorageDefinitions($revisionable = FALSE, $translatable = FALSE) {

  /** @var \Drupal\Core\Field\BaseFieldDefinition[] $field_storage_definitions */
  $field_storage_definitions = \Drupal::service('entity_field.manager')
    ->getFieldStorageDefinitions('entity_test_update');
  if ($revisionable) {

    // The 'langcode' is already available for the 'entity_test_update' entity
    // type because it has the 'langcode' entity key defined.
    $field_storage_definitions['langcode']
      ->setRevisionable(TRUE);
    $field_storage_definitions['revision_id'] = BaseFieldDefinition::create('integer')
      ->setName('revision_id')
      ->setTargetEntityTypeId('entity_test_update')
      ->setTargetBundle(NULL)
      ->setLabel(new TranslatableMarkup('Revision ID'))
      ->setReadOnly(TRUE)
      ->setSetting('unsigned', TRUE);
    $field_storage_definitions['revision_default'] = BaseFieldDefinition::create('boolean')
      ->setName('revision_default')
      ->setTargetEntityTypeId('entity_test_update')
      ->setTargetBundle(NULL)
      ->setLabel(new TranslatableMarkup('Default revision'))
      ->setDescription(new TranslatableMarkup('A flag indicating whether this was a default revision when it was saved.'))
      ->setStorageRequired(TRUE)
      ->setInternal(TRUE)
      ->setTranslatable(FALSE)
      ->setRevisionable(TRUE);
  }
  if ($translatable) {

    // The 'langcode' is already available for the 'entity_test_update' entity
    // type because it has the 'langcode' entity key defined.
    $field_storage_definitions['langcode']
      ->setTranslatable(TRUE);
    $field_storage_definitions['default_langcode'] = BaseFieldDefinition::create('boolean')
      ->setName('default_langcode')
      ->setTargetEntityTypeId('entity_test_update')
      ->setTargetBundle(NULL)
      ->setLabel(new TranslatableMarkup('Default translation'))
      ->setDescription(new TranslatableMarkup('A flag indicating whether this is the default translation.'))
      ->setTranslatable(TRUE)
      ->setRevisionable(TRUE)
      ->setDefaultValue(TRUE);
  }
  if ($revisionable && $translatable) {
    $field_storage_definitions['revision_translation_affected'] = BaseFieldDefinition::create('boolean')
      ->setName('revision_translation_affected')
      ->setTargetEntityTypeId('entity_test_update')
      ->setTargetBundle(NULL)
      ->setLabel(new TranslatableMarkup('Revision translation affected'))
      ->setDescription(new TranslatableMarkup('Indicates if the last edit of a translation belongs to current revision.'))
      ->setReadOnly(TRUE)
      ->setRevisionable(TRUE)
      ->setTranslatable(TRUE);
  }
  return $field_storage_definitions;
}