View source
<?php
namespace Drupal\migrate_plus\Tests;
use Drupal\migrate\Entity\MigrationInterface;
use Drupal\migrate_plus\Entity\MigrationGroupInterface;
use Drupal\simpletest\WebTestBase;
class MigrationGroupTest extends WebTestBase {
public static $modules = array(
'migrate_plus',
);
protected function setUp() {
parent::setUp();
}
public function testConfigurationMerge() {
$group_id = 'test_group';
$migration_group = entity_create('migration_group', array());
$migration_group
->set('id', $group_id);
$migration_group
->set('shared_configuration', array(
'migration_tags' => array(
'Drupal 6',
),
'source' => array(
'constants' => array(
'type' => 'image',
'cardinality' => '1',
),
),
'destination' => array(
'plugin' => 'field_storage_config',
),
));
$migration_group
->save();
$migration = entity_create('migration', array(
'id' => 'specific_migration',
'load' => [],
'third_party_settings' => [
'migrate_plus' => [
'migration_group' => $group_id,
],
],
'label' => 'Unaffected by the group',
'migration_tags' => array(
'Drupal 7',
),
'destination' => array(),
'source' => array(),
));
$migration
->set('source', array(
'plugin' => 'empty',
'constants' => array(
'entity_type' => 'user',
'cardinality' => '3',
),
));
$migration
->save();
$expected_config = array(
'third_party_settings' => [
'migrate_plus' => [
'migration_group' => $group_id,
],
],
'label' => 'Unaffected by the group',
'migration_tags' => array(
'Drupal 7',
),
'source' => array(
'plugin' => 'empty',
'constants' => array(
'entity_type' => 'user',
'type' => 'image',
'cardinality' => '3',
),
),
'destination' => array(
'plugin' => 'field_storage_config',
),
);
$loaded_migration = entity_load('migration', 'specific_migration', TRUE);
foreach ($expected_config as $key => $expected_value) {
$actual_value = $loaded_migration
->get($key);
$this
->assertEqual($expected_value, $actual_value);
}
}
public function testDelete() {
$migration_group = entity_create('migration_group', array());
$migration_group
->set('id', 'test_group');
$migration_group
->save();
$migration = entity_create('migration', [
'id' => 'specific_migration',
'third_party_settings' => [
'migrate_plus' => [
'migration_group' => 'test_group',
],
],
'migration_tags' => array(),
'load' => [],
'destination' => array(),
'source' => array(),
]);
$migration
->save();
$loaded_migration_group = entity_load('migration_group', 'test_group', TRUE);
$loaded_migration_group
->delete();
$loaded_migration = entity_load('migration', 'specific_migration', TRUE);
$this
->assertNull($loaded_migration);
}
}