View source
<?php
namespace Drupal\Tests\migrate_plus\Kernel;
use Drupal\KernelTests\KernelTestBase;
use Drupal\migrate_plus\Entity\Migration;
use Drupal\migrate_plus\Entity\MigrationGroup;
use Drupal\migrate_plus\Entity\MigrationGroupInterface;
class MigrationGroupTest extends KernelTestBase {
public static $modules = [
'migrate',
'migrate_plus',
];
public function testConfigurationMerge() {
$group_id = 'test_group';
$group_configuration = [
'id' => $group_id,
'shared_configuration' => [
'migration_tags' => [
'Drupal 6',
],
'source' => [
'constants' => [
'type' => 'image',
'cardinality' => '1',
],
],
'destination' => [
'plugin' => 'field_storage_config',
],
],
];
$this->container
->get('entity_type.manager')
->getStorage('migration_group')
->create($group_configuration)
->save();
$migration = $this->container
->get('entity_type.manager')
->getStorage('migration')
->create([
'id' => 'specific_migration',
'load' => [],
'migration_group' => $group_id,
'label' => 'Unaffected by the group',
'migration_tags' => [
'Drupal 7',
],
'destination' => [],
'source' => [],
'process' => [],
'migration_dependencies' => [],
]);
$migration
->set('source', [
'plugin' => 'empty',
'constants' => [
'entity_type' => 'user',
'cardinality' => '3',
],
]);
$migration
->save();
$expected_config = [
'migration_group' => $group_id,
'label' => 'Unaffected by the group',
'migration_tags' => [
'Drupal 7',
],
'source' => [
'plugin' => 'empty',
'constants' => [
'entity_type' => 'user',
'type' => 'image',
'cardinality' => '3',
],
],
'destination' => [
'plugin' => 'field_storage_config',
],
];
$loaded_migration = $this->container
->get('plugin.manager.config_entity_migration')
->createInstance('specific_migration');
foreach ($expected_config as $key => $expected_value) {
$actual_value = $loaded_migration
->get($key);
$this
->assertEquals($expected_value, $actual_value);
}
}
public function testDelete() {
$group_configuration = [
'id' => 'test_group',
];
$migration_group = $this->container
->get('entity_type.manager')
->getStorage('migration_group')
->create($group_configuration);
$migration_group
->save();
$migration = $this->container
->get('entity_type.manager')
->getStorage('migration')
->create([
'id' => 'specific_migration',
'migration_group' => 'test_group',
'migration_tags' => [],
'load' => [],
'destination' => [],
'source' => [],
'migration_dependencies' => [],
]);
$migration
->save();
$loaded_migration_group = MigrationGroup::load('test_group');
$loaded_migration_group
->delete();
$loaded_migration = Migration::load('specific_migration');
$this
->assertNull($loaded_migration);
}
}