function ConfigEntityBaseUnitTest::testPreSaveDuringSync

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php \Drupal\Tests\Core\Config\Entity\ConfigEntityBaseUnitTest::testPreSaveDuringSync()
  2. 10 core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php \Drupal\Tests\Core\Config\Entity\ConfigEntityBaseUnitTest::testPreSaveDuringSync()
  3. 11.x core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php \Drupal\Tests\Core\Config\Entity\ConfigEntityBaseUnitTest::testPreSaveDuringSync()

@covers ::preSave

File

core/tests/Drupal/Tests/Core/Config/Entity/ConfigEntityBaseUnitTest.php, line 185

Class

ConfigEntityBaseUnitTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Config%21Entity%21ConfigEntityBase.php/class/ConfigEntityBase/8.9.x" title="Defines a base configuration entity class." class="local">\Drupal\Core\Config\Entity\ConfigEntityBase</a> @group Config

Namespace

Drupal\Tests\Core\Config\Entity

Code

public function testPreSaveDuringSync() {
    $this->moduleHandler
        ->moduleExists('node')
        ->willReturn(TRUE);
    $query = $this->createMock('\\Drupal\\Core\\Entity\\Query\\QueryInterface');
    $storage = $this->createMock('\\Drupal\\Core\\Config\\Entity\\ConfigEntityStorageInterface');
    $query->expects($this->any())
        ->method('execute')
        ->will($this->returnValue([]));
    $query->expects($this->any())
        ->method('condition')
        ->will($this->returnValue($query));
    $storage->expects($this->any())
        ->method('getQuery')
        ->will($this->returnValue($query));
    $storage->expects($this->any())
        ->method('loadUnchanged')
        ->will($this->returnValue($this->entity));
    // Saving an entity will not reset the dependencies array during config
    // synchronization.
    $this->entity
        ->set('dependencies', [
        'module' => [
            'node',
        ],
    ]);
    $this->entity
        ->preSave($storage);
    $this->assertEmpty($this->entity
        ->getDependencies());
    $this->entity
        ->setSyncing(TRUE);
    $this->entity
        ->set('dependencies', [
        'module' => [
            'node',
        ],
    ]);
    $this->entity
        ->preSave($storage);
    $dependencies = $this->entity
        ->getDependencies();
    $this->assertContains('node', $dependencies['module']);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.