View source
<?php
namespace Drupal\Tests\migrate_drupal\Kernel;
use Drupal\Component\Discovery\YamlDiscovery;
use Drupal\KernelTests\FileSystemModuleDiscoveryDataProviderTrait;
use Drupal\migrate_drupal\MigrationConfigurationTrait;
class StateFileExists extends MigrateDrupalTestBase {
use FileSystemModuleDiscoveryDataProviderTrait;
use MigrationConfigurationTrait;
protected static $modules = [
'migrate_state_finished_test',
'migrate_state_not_finished_test',
];
protected $stateFileRequired = [
'action',
'aggregator',
'ban',
'block',
'block_content',
'book',
'color',
'comment',
'config_translation',
'contact',
'content_translation',
'datetime',
'dblog',
'field',
'file',
'filter',
'forum',
'image',
'language',
'link',
'locale',
'menu_link_content',
'migrate_state_finished_test',
'migrate_state_not_finished_test',
'menu_ui',
'migrate_drupal',
'node',
'options',
'path',
'rdf',
'responsive_image',
'search',
'shortcut',
'statistics',
'syslog',
'system',
'taxonomy',
'telephone',
'text',
'tracker',
'update',
'user',
];
public function testMigrationState() {
$module_handler = $this->container
->get('module_handler');
$all_modules = $this
->coreModuleListDataProvider();
$modules_enabled = $module_handler
->getModuleList();
$modules_to_enable = array_keys(array_diff_key($all_modules, $modules_enabled));
$this
->enableModules($modules_to_enable);
$has_state_file = (new YamlDiscovery('migrate_drupal', array_map(function ($value) {
return $value . '/migrations/state';
}, $module_handler
->getModuleDirectories())))
->findAll();
foreach ($this->stateFileRequired as $module) {
$this
->assertArrayHasKey($module, $has_state_file, sprintf("Module '%s' should have a migrate_drupal.yml file", $module));
}
$this
->assertSameSize($this->stateFileRequired, $has_state_file);
}
}