Same filename and directory in other branches
- 8.9.x core/modules/migrate/tests/src/Kernel/Plugin/MigrationPluginListTest.php
- 9 core/modules/migrate/tests/src/Kernel/Plugin/MigrationPluginListTest.php
Namespace
Drupal\Tests\migrate\Kernel\Plugin
File
core/modules/migrate/tests/src/Kernel/Plugin/MigrationPluginListTest.php
View source
<?php
namespace Drupal\Tests\migrate\Kernel\Plugin;
use Drupal\Core\Database\Database;
use Drupal\KernelTests\KernelTestBase;
use Drupal\migrate\Exception\RequirementsException;
use Drupal\migrate\Plugin\migrate\source\SqlBase;
use Drupal\migrate\Plugin\RequirementsInterface;
use Drupal\Tests\field\Traits\EntityReferenceFieldCreationTrait;
class MigrationPluginListTest extends KernelTestBase {
use EntityReferenceFieldCreationTrait;
protected static $modules = [
'migrate',
'ban',
'block',
'block_content',
'book',
'comment',
'contact',
'content_translation',
'dblog',
'field',
'file',
'filter',
'forum',
'image',
'language',
'locale',
'menu_link_content',
'menu_ui',
'node',
'options',
'path',
'search',
'shortcut',
'statistics',
'syslog',
'system',
'taxonomy',
'text',
'tracker',
'update',
'user',
];
protected function setUp() : void {
parent::setUp();
$this
->installEntitySchema('user');
}
public function testGetDefinitions() {
$this
->createEntityReferenceField('user', 'user', 'field_entity_reference', 'Entity Reference', 'node');
$migration_plugins = $this->container
->get('plugin.manager.migration')
->getDefinitions();
$this
->assertEmpty($migration_plugins);
$this
->enableModules([
'migrate_external_translated_test',
]);
$migration_plugins = $this->container
->get('plugin.manager.migration')
->getDefinitions();
$this::assertArrayHasKey('external_translated_test_node', $migration_plugins);
$this::assertArrayHasKey('external_translated_test_node_translation', $migration_plugins);
$this
->disableModules([
'migrate_external_translated_test',
]);
$migration_plugins = $this->container
->get('plugin.manager.migration')
->getDefinitions();
$this
->assertEmpty($migration_plugins);
$this
->enableModules([
'migrate_drupal',
]);
$migration_plugins = $this->container
->get('plugin.manager.migration')
->createInstances([]);
$source_plugins = array_map(function ($migration_plugin) {
return $migration_plugin
->getSourcePlugin();
}, $migration_plugins);
foreach ($source_plugins as $id => $source_plugin) {
if ($source_plugin instanceof RequirementsInterface) {
try {
$source_plugin
->checkRequirements();
} catch (RequirementsException $e) {
unset($source_plugins[$id]);
}
}
}
foreach ($source_plugins as $id => $source_plugin) {
$this
->assertNotInstanceOf(SqlBase::class, $source_plugin);
}
$connection_info = Database::getConnectionInfo('migrate');
if ($connection_info) {
Database::renameConnection('migrate', 'simpletest_original_migrate');
}
$connection_info = Database::getConnectionInfo('default');
foreach ($connection_info as $target => $value) {
$prefix = $value['prefix'];
$connection_info[$target]['prefix'] = $prefix . '0';
}
Database::addConnectionInfo('migrate', 'default', $connection_info['default']);
foreach ($migration_plugins as $migration_plugin) {
$source_plugin = $migration_plugin
->getSourcePlugin();
if ($source_plugin instanceof SqlBase) {
$source_plugin
->getDatabase();
}
$this
->assertNotEmpty(serialize($source_plugin));
}
$migration_plugins = $this->container
->get('plugin.manager.migration')
->getDefinitions();
$this
->assertNotEmpty($migration_plugins);
$this
->assertArrayHasKey('d6_entity_reference_translation:user__user', $migration_plugins);
$this
->assertArrayHasKey('d7_entity_reference_translation:user__user', $migration_plugins);
}
}
Classes