/** * @covers ::onDependencyRemoval */ public function testOnDependencyRemoval() { $this->fieldTypePluginManager->expects($this->any())->method('getDefinition')->with('test_field')->willReturn(['class' => '\\Drupal\\Tests\\field\\Unit\\DependencyFieldItem']); $field = new FieldConfig(['field_name' => $this->fieldStorage->getName(), 'entity_type' => 'test_entity_type', 'bundle' => 'test_bundle', 'field_type' => 'test_field', 'dependencies' => ['module' => ['fruiter']], 'third_party_settings' => ['fruiter' => ['fruit' => 'apple']]]); $changed = $field->onDependencyRemoval(['module' => ['fruiter']]); $this->assertTrue($changed); }
/** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->entityManager = $this->getMock('Drupal\\Core\\Entity\\EntityManagerInterface'); $this->formatterPluginManager = $this->getMockBuilder('Drupal\\Core\\Field\\FormatterPluginManager')->disableOriginalConstructor()->getMock(); $this->fieldTypePluginManager = $this->getMock('Drupal\\Core\\Field\\FieldTypePluginManagerInterface'); $this->fieldTypePluginManager->expects($this->any())->method('getDefaultStorageSettings')->willReturn([]); $this->fieldTypePluginManager->expects($this->any())->method('getDefaultFieldSettings')->willReturn([]); $this->languageManager = $this->getMock('Drupal\\Core\\Language\\LanguageManagerInterface'); $this->renderer = $this->getMock('Drupal\\Core\\Render\\RendererInterface'); $this->setupExecutableAndView(); $this->setupViewsData(); $this->display = $this->getMockBuilder('Drupal\\views\\Plugin\\views\\display\\DisplayPluginBase')->disableOriginalConstructor()->getMock(); $this->container = new ContainerBuilder(); $this->container->set('plugin.manager.field.field_type', $this->fieldTypePluginManager); \Drupal::setContainer($this->container); }
/** * @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']); }
/** * Test that invalid bundles are handled. * * @expectedException \LogicException * @expectedExceptionMessage Missing bundle entity, entity type bundle_entity_type, entity id test_bundle_not_exists. */ public function testCalculateDependenciesIncorrectBundle() { $storage = $this->getMock('\\Drupal\\Core\\Config\\Entity\\ConfigEntityStorageInterface'); $storage->expects($this->any())->method('load')->with('test_bundle_not_exists')->will($this->returnValue(NULL)); $this->entityManager->expects($this->any())->method('getStorage')->with('bundle_entity_type')->will($this->returnValue($storage)); $target_entity_type = new EntityType(array('id' => 'test_entity_type', 'bundle_entity_type' => 'bundle_entity_type')); $this->entityManager->expects($this->at(0))->method('getDefinition')->with($this->entityTypeId)->willReturn($this->entityType); $this->entityManager->expects($this->at(1))->method('getDefinition')->with($this->entityTypeId)->willReturn($this->entityType); $this->entityManager->expects($this->at(2))->method('getDefinition')->with($this->entityTypeId)->willReturn($this->entityType); $this->entityManager->expects($this->at(3))->method('getDefinition')->with('test_entity_type')->willReturn($target_entity_type); $this->fieldTypePluginManager->expects($this->any())->method('getDefinition')->with('test_field')->willReturn(['provider' => 'test_module', 'config_dependencies' => ['module' => ['test_module2']], 'class' => '\\Drupal\\Tests\\field\\Unit\\DependencyFieldItem']); $field = new FieldConfig(array('field_name' => $this->fieldStorage->getName(), 'entity_type' => 'test_entity_type', 'bundle' => 'test_bundle_not_exists', 'field_type' => 'test_field'), $this->entityTypeId); $field->calculateDependencies(); }
/** * @covers ::calculateDependencies */ public function testCalculateDependencies() { // Mock the interfaces necessary to create a dependency on a bundle entity. $bundle_entity = $this->getMock('Drupal\\Core\\Config\\Entity\\ConfigEntityInterface'); $bundle_entity->expects($this->any())->method('getConfigDependencyName')->will($this->returnValue('test.test_entity_type.id')); $storage = $this->getMock('\\Drupal\\Core\\Config\\Entity\\ConfigEntityStorageInterface'); $storage->expects($this->any())->method('load')->with('test_bundle')->will($this->returnValue($bundle_entity)); $this->entityManager->expects($this->any())->method('getStorage')->with('bundle_entity_type')->will($this->returnValue($storage)); $target_entity_type = $this->getMock('\\Drupal\\Core\\Entity\\EntityTypeInterface'); $target_entity_type->expects($this->any())->method('getBundleEntityType')->will($this->returnValue('bundle_entity_type')); $this->entityManager->expects($this->at(0))->method('getDefinition')->with($this->entityTypeId)->willReturn($this->entityType); $this->entityManager->expects($this->at(1))->method('getDefinition')->with($this->entityTypeId)->willReturn($this->entityType); $this->entityManager->expects($this->at(2))->method('getDefinition')->with($this->entityTypeId)->willReturn($this->entityType); $this->entityManager->expects($this->at(3))->method('getDefinition')->with('test_entity_type')->willReturn($target_entity_type); $this->fieldTypePluginManager->expects($this->any())->method('getDefinition')->with('test_field')->willReturn(['provider' => 'test_module', 'config_dependencies' => ['module' => ['test_module2']], 'class' => '\\Drupal\\Tests\\field\\Unit\\DependencyFieldItem']); $this->fieldStorage->expects($this->once())->method('getConfigDependencyName')->will($this->returnValue('field.storage.test_entity_type.test_field')); $field = new FieldConfig(array('field_name' => $this->fieldStorage->getName(), 'entity_type' => 'test_entity_type', 'bundle' => 'test_bundle', 'field_type' => 'test_field'), $this->entityTypeId); $dependencies = $field->calculateDependencies(); $this->assertContains('field.storage.test_entity_type.test_field', $dependencies['config']); $this->assertContains('test.test_entity_type.id', $dependencies['config']); $this->assertEquals(['test_module', 'test_module2', 'test_module3'], $dependencies['module']); }