X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fcore%2Fmodules%2Fmigrate%2Ftests%2Fsrc%2FKernel%2FPlugin%2FMigrationProvidersExistTest.php;fp=web%2Fcore%2Fmodules%2Fmigrate%2Ftests%2Fsrc%2FKernel%2FPlugin%2FMigrationProvidersExistTest.php;h=8e166998c4a1983e044deace4fa50813c17fb17e;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hp=0000000000000000000000000000000000000000;hpb=aea91e65e895364e460983b890e295aa5d5540a5;p=yaffs-website diff --git a/web/core/modules/migrate/tests/src/Kernel/Plugin/MigrationProvidersExistTest.php b/web/core/modules/migrate/tests/src/Kernel/Plugin/MigrationProvidersExistTest.php new file mode 100644 index 000000000..8e166998c --- /dev/null +++ b/web/core/modules/migrate/tests/src/Kernel/Plugin/MigrationProvidersExistTest.php @@ -0,0 +1,64 @@ +container->get('module_handler'); + $modules = $this->coreModuleListDataProvider(); + $modules_enabled = $module_handler->getModuleList(); + $modules_to_enable = array_keys(array_diff_key($modules, $modules_enabled)); + $this->enableModules($modules_to_enable); + + /** @var \Drupal\migrate\Plugin\MigrationPluginManager $plugin_manager */ + $plugin_manager = $this->container->get('plugin.manager.migration'); + // Get all the migrations + $migrations = $plugin_manager->createInstances(array_keys($plugin_manager->getDefinitions())); + // Ensure the test module was enabled. + $this->assertTrue(array_key_exists('migration_provider_test', $migrations)); + $this->assertTrue(array_key_exists('migration_provider_no_annotation', $migrations)); + /** @var \Drupal\migrate\Plugin\Migration $migration */ + foreach ($migrations as $migration) { + $source_module = $migration->getSourcePlugin()->getSourceModule(); + $destination_module = $migration->getDestinationPlugin()->getDestinationModule(); + $migration_id = $migration->getPluginId(); + if ($migration_id == 'migration_provider_test') { + $this->assertFalse($source_module, new FormattableMarkup('Source module not found for @migration_id.', ['@migration_id' => $migration_id])); + $this->assertFalse($destination_module, new FormattableMarkup('Destination module not found for @migration_id.', ['@migration_id' => $migration_id])); + } + elseif ($migration_id == 'migration_provider_no_annotation') { + $this->assertFalse($source_module, new FormattableMarkup('Source module not found for @migration_id.', ['@migration_id' => $migration_id])); + $this->assertTrue($destination_module, new FormattableMarkup('Destination module found for @migration_id.', ['@migration_id' => $migration_id])); + } + else { + $this->assertTrue($source_module, new FormattableMarkup('Source module found for @migration_id.', ['@migration_id' => $migration_id])); + $this->assertTrue($destination_module, new FormattableMarkup('Destination module found for @migration_id.', ['@migration_id' => $migration_id])); + } + // Destination module can't be migrate or migrate_drupal or migrate_drupal_ui + $invalid_destinations = ['migrate', 'migrate_drupal', 'migrate_drupal_ui']; + $this->assertNotContains($destination_module, $invalid_destinations, new FormattableMarkup('Invalid destination for @migration_id.', ['@migration_id' => $migration_id])); + } + } + +}