/** * @covers ::calculateDependencies */ public function testCalculateDependencies() { // Create a mock entity type for FieldStorageConfig. $fieldStorageConfigentityType = $this->getMock('\\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->getMock('\\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->entityManager->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']); }
/** * @covers ::calculateDependencies */ public function testCalculateDependencies() { // Create a mock entity type for FieldStorageConfig. $fieldStorageConfigentityType = $this->getMock('\\Drupal\\Core\\Entity\\EntityTypeInterface'); $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->getMock('\\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->entityManager->expects($this->at(0))->method('getDefinition')->with('field_storage_config')->will($this->returnValue($fieldStorageConfigentityType)); $this->entityManager->expects($this->at(1))->method('getDefinition')->with($attached_entity_type_id)->will($this->returnValue($attached_entity_type)); $this->entityManager->expects($this->at(2))->method('getDefinition')->with('field_storage_config')->will($this->returnValue($fieldStorageConfigentityType)); $field_storage = new FieldStorageConfig(array('entity_type' => $attached_entity_type_id, 'field_name' => 'test_field', 'type' => 'test_field_type', 'module' => 'test_module')); $dependencies = $field_storage->calculateDependencies(); $this->assertContains('test_module', $dependencies['module']); $this->assertContains('entity_provider_module', $dependencies['module']); }