/** * @covers ::preDelete */ public function testPreDelete() { // This method is internal, so check for errors on calling it only. $storage = $this->getMock('\\Drupal\\Core\\Entity\\EntityStorageInterface'); // Our mocked entity->preDelete() returns NULL, so assert that. $this->assertNull($this->entity->preDelete($storage, array($this->entity))); }
/** * {@inheritdoc} */ public static function preDelete(EntityStorageInterface $storage, array $entities) { parent::preDelete($storage, $entities); foreach ($entities as $entity) { if ($entity->isUninstalling() || $entity->isSyncing()) { // During extension uninstall and configuration synchronization // deletions are already managed. break; } // Fix or remove any dependencies. $config_entities = static::getConfigManager()->getConfigEntitiesToChangeOnDependencyRemoval('config', [$entity->getConfigDependencyName()], FALSE); /** @var \Drupal\Core\Config\Entity\ConfigEntityInterface $dependent_entity */ foreach ($config_entities['update'] as $dependent_entity) { $dependent_entity->save(); } foreach ($config_entities['delete'] as $dependent_entity) { $dependent_entity->delete(); } } }
/** * {@inheritdoc} */ public static function preDelete(EntityStorageInterface $storage, array $entities) { parent::preDelete($storage, $entities); // Nothing to do if we don't want to reparent children. if ($storage->getPreventReparenting()) { return; } foreach ($entities as $entity) { // Children get re-attached to the item's parent. if ($entity->has_children) { $children = $storage->loadByProperties(array('plid' => $entity->plid)); foreach ($children as $child) { $child->plid = $entity->plid; $storage->save($child); } } } }