MigrateUserProfileTranslationRollbackTest.php
Same filename in other branches
Namespace
Drupal\Tests\config_translation\Kernel\Migrate\d6File
-
core/
modules/ config_translation/ tests/ src/ Kernel/ Migrate/ d6/ MigrateUserProfileTranslationRollbackTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\config_translation\Kernel\Migrate\d6;
use Drupal\migrate\MigrateExecutable;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/**
* Tests rollback of user profile translations.
*
* @group migrate_drupal_6
*/
class MigrateUserProfileTranslationRollbackTest extends MigrateDrupal6TestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'config_translation',
'locale',
'language',
'field',
];
/**
* Tests rollback of the complete node migration.
*/
public function testRollback() : void {
$migration_ids = [
'user_profile_field',
'd6_profile_field_option_translation',
'user_profile_field_instance',
'd6_user_profile_field_instance_translation',
'language',
];
/** @var \Drupal\migrate\Plugin\MigrationPluginManager $migration_plugin_manager */
$migration_plugin_manager = \Drupal::service('plugin.manager.migration');
$migrations = [];
foreach ($migration_ids as $migration_id) {
$migrations[$migration_id] = $migration_plugin_manager->createInstance($migration_id, []);
}
$migrations = $migration_plugin_manager->buildDependencyMigration($migrations, []);
// Execute the import.
$ids = array_keys($migrations);
$this->executeMigrations($ids);
// Execute the rollback.
$ids = array_reverse($ids);
try {
foreach ($ids as $id) {
// Language rollback tries to rollback the default language so skip it.
if ($id == 'language') {
continue;
}
$migration = $migrations[$id];
(new MigrateExecutable($migration, $this))->rollback();
}
} catch (\Exception $e) {
}
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
MigrateUserProfileTranslationRollbackTest | Tests rollback of user profile translations. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.