AssertConfigEntityImportTrait.php

Same filename in other branches
  1. 8.9.x core/modules/config/src/Tests/AssertConfigEntityImportTrait.php
  2. 8.9.x core/modules/config/tests/src/Traits/AssertConfigEntityImportTrait.php
  3. 10 core/modules/config/tests/src/Traits/AssertConfigEntityImportTrait.php
  4. 11.x core/modules/config/tests/src/Traits/AssertConfigEntityImportTrait.php

Namespace

Drupal\Tests\config\Traits

File

core/modules/config/tests/src/Traits/AssertConfigEntityImportTrait.php

View source
<?php

namespace Drupal\Tests\config\Traits;

use Drupal\Core\Config\Entity\ConfigEntityInterface;

/**
 * Provides test assertions for testing config entity synchronization.
 *
 * Can be used by test classes that extend \Drupal\Tests\BrowserTestBase or
 * \Drupal\KernelTests\KernelTestBase.
 */
trait AssertConfigEntityImportTrait {
    
    /**
     * Asserts that a config entity can be imported without changing it.
     *
     * @param \Drupal\Core\Config\Entity\ConfigEntityInterface $entity
     *   The config entity to test importing.
     */
    public function assertConfigEntityImport(ConfigEntityInterface $entity) {
        // Save original config information.
        $entity_uuid = $entity->uuid();
        $entity_type_id = $entity->getEntityTypeId();
        $original_data = $entity->toArray();
        // Copy everything to sync.
        $this->copyConfig(\Drupal::service('config.storage'), \Drupal::service('config.storage.sync'));
        // Delete the configuration from active. Don't worry about side effects of
        // deleting config like fields cleaning up field storages. The coming import
        // should recreate everything as necessary.
        $entity->delete();
        $this->configImporter()
            ->reset()
            ->import();
        $imported_entity = \Drupal::service('entity.repository')->loadEntityByUuid($entity_type_id, $entity_uuid);
        $this->assertSame($original_data, $imported_entity->toArray());
    }

}

Traits

Title Deprecated Summary
AssertConfigEntityImportTrait Provides test assertions for testing config entity synchronization.

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