function MigrateSqlSourceTestCase::setUp
Overrides UnitTestCase::setUp
File
-
core/
modules/ migrate/ tests/ src/ Unit/ MigrateSqlSourceTestCase.php, line 82
Class
- MigrateSqlSourceTestCase
- Base class for Migrate module source unit tests.
Namespace
Drupal\Tests\migrate\UnitCode
protected function setUp() {
$module_handler = $this->createMock('Drupal\\Core\\Extension\\ModuleHandlerInterface');
$state = $this->createMock('Drupal\\Core\\State\\StateInterface');
$entity_manager = $this->createMock('Drupal\\Core\\Entity\\EntityManagerInterface');
// Mock a key-value store to return high-water values.
$key_value = $this->createMock(KeyValueStoreInterface::class);
// SourcePluginBase does not yet support full dependency injection so we
// need to make sure that \Drupal::keyValue() works as expected by mocking
// the keyvalue service.
$key_value_factory = $this->createMock(KeyValueFactoryInterface::class);
$key_value_factory->method('get')
->with('migrate:high_water')
->willReturn($key_value);
try {
$container = \Drupal::getContainer();
} catch (ContainerNotInitializedException $e) {
$container = new ContainerBuilder();
}
$container->set('keyvalue', $key_value_factory);
\Drupal::setContainer($container);
$migration = $this->getMigration();
// Set the high water value.
\Drupal::keyValue('migrate:high_water')->expects($this->any())
->method('get')
->willReturn(static::ORIGINAL_HIGH_WATER);
// Setup the plugin.
$plugin_class = static::PLUGIN_CLASS;
$plugin = new $plugin_class($this->migrationConfiguration['source'], $this->migrationConfiguration['source']['plugin'], [], $migration, $state, $entity_manager);
// Do some reflection to set the database and moduleHandler.
$plugin_reflection = new \ReflectionClass($plugin);
$database_property = $plugin_reflection->getProperty('database');
$database_property->setAccessible(TRUE);
$module_handler_property = $plugin_reflection->getProperty('moduleHandler');
$module_handler_property->setAccessible(TRUE);
// Set the database and the module handler onto our plugin.
$database_property->setValue($plugin, $this->getDatabase($this->databaseContents + [
'test_map' => [],
]));
$module_handler_property->setValue($plugin, $module_handler);
$plugin->setStringTranslation($this->getStringTranslationStub());
$migration->expects($this->any())
->method('getSourcePlugin')
->will($this->returnValue($plugin));
$this->source = $plugin;
$this->expectedCount = count($this->expectedResults);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.