class ImporterTest
Tests the Default Content Importer.
Attributes
#[Group('DefaultContent')]
#[CoversClass(Importer::class)]
#[RunTestsInSeparateProcesses]
Hierarchy
- class \Drupal\KernelTests\KernelTestBase implements \Drupal\Core\DependencyInjection\ServiceProviderInterface uses \Drupal\KernelTests\AssertContentTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\ExtensionListTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\PhpUnitCompatibilityTrait, \Prophecy\PhpUnit\ProphecyTrait, \Drupal\TestTools\Extension\DeprecationBridge\ExpectDeprecationTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\KernelTests\Core\DefaultContent\ImporterTest implements \Symfony\Component\EventDispatcher\EventSubscriberInterface uses \Drupal\Tests\user\Traits\UserCreationTrait extends \Drupal\KernelTests\KernelTestBase
Expanded class hierarchy of ImporterTest
File
-
core/
tests/ Drupal/ KernelTests/ Core/ DefaultContent/ ImporterTest.php, line 22
Namespace
Drupal\KernelTests\Core\DefaultContentView source
class ImporterTest extends KernelTestBase implements EventSubscriberInterface {
use UserCreationTrait;
/**
* {@inheritdoc}
*/
protected static $modules = [
'system',
'user',
'entity_test',
];
/**
* {@inheritdoc}
*/
protected function setUp() : void {
parent::setUp();
$this->installEntitySchema('entity_test');
$this->container
->get(EventDispatcherInterface::class)
->addSubscriber($this);
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() : array {
return [
PreEntityImportEvent::class => 'onPreEntityImport',
];
}
/**
* Modify entity data before it is imported.
*
* @param \Drupal\Core\DefaultContent\PreEntityImportEvent $event
* The event being handled.
*/
public function onPreEntityImport(PreEntityImportEvent $event) : void {
self::assertSame('entity_test', $event->metadata['entity_type']);
if ($event->metadata['uuid'] === '01234567-89ab-cdef-0123-456789abcdef') {
$event->data['default']['name'] = [
[
'value' => 'Changed name',
],
];
}
// Anything we put in `_meta` should be discarded.
$event->data['_meta']['entity_type'] = 'This will be ignored.';
}
/**
* Tests changing entity data upon import.
*/
public function testChangeDataOnImport() : void {
$this->setUpCurrentUser(admin: TRUE);
$finder = new Finder($this->getDrupalRoot() . '/core/tests/fixtures/pre_entity_import_default_content');
$this->container
->get(Importer::class)
->importContent($finder);
$entity = $this->container
->get(EntityRepositoryInterface::class)
->loadEntityByUuid('entity_test', '01234567-89ab-cdef-0123-456789abcdef');
self::assertSame('Changed name', $entity?->label());
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.