You are here

public function FieldStorageConfigEntityUnitTest::testCalculateDependencies in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/field/tests/src/Unit/FieldStorageConfigEntityUnitTest.php \Drupal\Tests\field\Unit\FieldStorageConfigEntityUnitTest::testCalculateDependencies()

@covers ::calculateDependencies

File

core/modules/field/tests/src/Unit/FieldStorageConfigEntityUnitTest.php, line 71
Contains \Drupal\Tests\field\Unit\FieldStorageConfigEntityUnitTest.

Class

FieldStorageConfigEntityUnitTest
@coversDefaultClass \Drupal\field\Entity\FieldStorageConfig

Namespace

Drupal\Tests\field\Unit

Code

public function testCalculateDependencies() {

  // Create a mock entity type for FieldStorageConfig.
  $fieldStorageConfigentityType = $this
    ->createMock('\\Drupal\\Core\\Config\\Entity\\ConfigEntityTypeInterface');
  $fieldStorageConfigentityType
    ->expects($this
    ->any())
    ->method('getProvider')
    ->will($this
    ->returnValue('field'));

  // Create a mock entity type to attach the field to.
  $attached_entity_type_id = $this
    ->randomMachineName();
  $attached_entity_type = $this
    ->createMock('\\Drupal\\Core\\Entity\\EntityTypeInterface');
  $attached_entity_type
    ->expects($this
    ->any())
    ->method('getProvider')
    ->will($this
    ->returnValue('entity_provider_module'));

  // Get definition is called three times. Twice in
  // ConfigEntityBase::addDependency() to get the provider of the field config
  // entity type and once in FieldStorageConfig::calculateDependencies() to
  // get the provider of the entity type that field is attached to.
  $this->entityTypeManager
    ->expects($this
    ->any())
    ->method('getDefinition')
    ->willReturnMap([
    [
      'field_storage_config',
      TRUE,
      $fieldStorageConfigentityType,
    ],
    [
      $attached_entity_type_id,
      TRUE,
      $attached_entity_type,
    ],
  ]);
  $this->fieldTypeManager
    ->expects($this
    ->atLeastOnce())
    ->method('getDefinition')
    ->with('test_field_type', FALSE)
    ->willReturn([
    'class' => TestFieldType::class,
  ]);
  $field_storage = new FieldStorageConfig([
    'entity_type' => $attached_entity_type_id,
    'field_name' => 'test_field',
    'type' => 'test_field_type',
    'module' => 'test_module',
  ]);
  $dependencies = $field_storage
    ->calculateDependencies()
    ->getDependencies();
  $this
    ->assertEquals([
    'entity_provider_module',
    'entity_test',
    'test_module',
  ], $dependencies['module']);
  $this
    ->assertEquals([
    'stark',
  ], $dependencies['theme']);
}