Chris@0: $group_id, Chris@0: 'shared_configuration' => [ Chris@0: 'migration_tags' => ['Drupal 6'], // In migration, so will be overridden. Chris@0: 'source' => [ Chris@0: 'constants' => [ Chris@0: 'type' => 'image', // Not in migration, so will be added. Chris@0: 'cardinality' => '1', // In migration, so will be overridden. Chris@0: ], Chris@0: ], Chris@0: 'destination' => ['plugin' => 'field_storage_config'], // Not in migration, so will be added. Chris@0: ], Chris@0: ]; Chris@0: $this->container->get('entity_type.manager')->getStorage('migration_group') Chris@0: ->create($group_configuration)->save(); Chris@0: Chris@0: /** @var \Drupal\migrate_plus\Entity\MigrationInterface $migration */ Chris@0: $migration = $this->container->get('entity_type.manager') Chris@0: ->getStorage('migration')->create([ Chris@0: 'id' => 'specific_migration', Chris@0: 'load' => [], Chris@0: 'migration_group' => $group_id, Chris@0: 'label' => 'Unaffected by the group', Chris@0: 'migration_tags' => ['Drupal 7'], // Overrides group. Chris@0: 'destination' => [], Chris@0: 'source' => [], Chris@0: 'migration_dependencies' => [], Chris@0: ]); Chris@0: $migration->set('source', [ Chris@0: 'plugin' => 'empty', // Not in group, persists. Chris@0: 'constants' => [ Chris@0: 'entity_type' => 'user', // Not in group, persists. Chris@0: 'cardinality' => '3', // Overrides group. Chris@0: ], Chris@0: ]); Chris@0: $migration->save(); Chris@0: Chris@0: $expected_config = [ Chris@0: 'migration_group' => $group_id, Chris@0: 'label' => 'Unaffected by the group', Chris@0: 'migration_tags' => ['Drupal 7'], Chris@0: 'source' => [ Chris@0: 'plugin' => 'empty', Chris@0: 'constants' => [ Chris@0: 'entity_type' => 'user', Chris@0: 'type' => 'image', Chris@0: 'cardinality' => '3', Chris@0: ], Chris@0: ], Chris@0: 'destination' => ['plugin' => 'field_storage_config'], Chris@0: ]; Chris@0: /** @var \Drupal\migrate\Plugin\MigrationInterface $loaded_migration */ Chris@0: $loaded_migration = $this->container->get('plugin.manager.config_entity_migration') Chris@0: ->createInstance('specific_migration'); Chris@0: foreach ($expected_config as $key => $expected_value) { Chris@0: $actual_value = $loaded_migration->get($key); Chris@0: $this->assertEquals($expected_value, $actual_value); Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * Test that deleting a group deletes its migrations. Chris@0: */ Chris@0: public function testDelete() { Chris@0: /** @var MigrationGroupInterface $migration_group */ Chris@0: $group_configuration = [ Chris@0: 'id' => 'test_group', Chris@0: ]; Chris@0: $migration_group = $this->container->get('entity_type.manager') Chris@0: ->getStorage('migration_group')->create($group_configuration); Chris@0: $migration_group->save(); Chris@0: Chris@0: /** @var \Drupal\migrate_plus\Entity\MigrationInterface $migration */ Chris@0: $migration = $this->container->get('entity_type.manager') Chris@0: ->getStorage('migration')->create([ Chris@0: 'id' => 'specific_migration', Chris@0: 'migration_group' => 'test_group', Chris@0: 'migration_tags' => [], Chris@0: 'load' => [], Chris@0: 'destination' => [], Chris@0: 'source' => [], Chris@0: 'migration_dependencies' => [], Chris@0: ]); Chris@0: $migration->save(); Chris@0: Chris@0: /** @var \Drupal\migrate_plus\Entity\MigrationGroupInterface $loaded_migration_group */ Chris@0: $loaded_migration_group = MigrationGroup::load('test_group'); Chris@0: $loaded_migration_group->delete(); Chris@0: Chris@0: /** @var \Drupal\migrate_plus\Entity\MigrationInterface $loaded_migration */ Chris@0: $loaded_migration = Migration::load('specific_migration'); Chris@0: $this->assertNull($loaded_migration); Chris@0: } Chris@0: Chris@0: }