class MigrateLookupTest in Drupal 10
Same name in this branch
- 10 core/modules/migrate/tests/src/Unit/MigrateLookupTest.php \Drupal\Tests\migrate\Unit\MigrateLookupTest
- 10 core/modules/migrate/tests/src/Kernel/MigrateLookupTest.php \Drupal\Tests\migrate\Kernel\MigrateLookupTest
Same name and namespace in other branches
- 8 core/modules/migrate/tests/src/Unit/MigrateLookupTest.php \Drupal\Tests\migrate\Unit\MigrateLookupTest
- 9 core/modules/migrate/tests/src/Unit/MigrateLookupTest.php \Drupal\Tests\migrate\Unit\MigrateLookupTest
Provides unit testing for the migration lookup service.
@group migrate
@coversDefaultClass \Drupal\migrate\MigrateLookup
Hierarchy
- class \Drupal\Tests\UnitTestCase extends \PHPUnit\Framework\TestCase uses \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait, PhpUnitWarnings
- class \Drupal\Tests\migrate\Unit\MigrateTestCase
- class \Drupal\Tests\migrate\Unit\MigrateLookupTest
- class \Drupal\Tests\migrate\Unit\MigrateTestCase
Expanded class hierarchy of MigrateLookupTest
File
- core/
modules/ migrate/ tests/ src/ Unit/ MigrateLookupTest.php, line 20
Namespace
Drupal\Tests\migrate\UnitView source
class MigrateLookupTest extends MigrateTestCase {
/**
* Tests the lookup function.
*
* @covers ::lookup
*/
public function testLookup() {
$source_ids = [
'id' => '1',
];
$destination_ids = [
[
2,
],
];
$id_map = $this
->prophesize(MigrateIdMapInterface::class);
$id_map
->lookupDestinationIds($source_ids)
->willReturn($destination_ids);
$destination = $this
->prophesize(MigrateDestinationInterface::class);
$destination
->getIds()
->willReturn([
'id' => [
'type' => 'integer',
],
]);
$migration = $this
->prophesize(MigrationInterface::class);
$migration
->getIdMap()
->willReturn($id_map
->reveal());
$migration
->getDestinationPlugin()
->willReturn($destination
->reveal());
$plugin_manager = $this
->prophesize(MigrationPluginManagerInterface::class);
$plugin_manager
->createInstances('test_migration')
->willReturn([
$migration
->reveal(),
]);
$lookup = new MigrateLookup($plugin_manager
->reveal());
$this
->assertSame([
[
'id' => 2,
],
], $lookup
->lookup('test_migration', $source_ids));
}
/**
* Tests message logged when a single migration is not found.
*
* @dataProvider providerExceptionOnMigrationNotFound
*/
public function testExceptionOnMigrationNotFound($migrations, $message) {
$migration_plugin_manager = $this
->prophesize(MigrationPluginManagerInterface::class);
$migration_plugin_manager
->createInstances($migrations)
->willReturn([]);
$this
->expectException(PluginNotFoundException::class);
$this
->expectExceptionMessage($message);
$lookup = new MigrateLookup($migration_plugin_manager
->reveal());
$lookup
->lookup($migrations, [
1,
]);
}
/**
* Provides data for testExceptionOnMigrationNotFound.
*/
public function providerExceptionOnMigrationNotFound() {
return [
'string' => [
'bad_plugin',
"Plugin ID 'bad_plugin' was not found.",
],
'array one item' => [
[
'bad_plugin',
],
"Plugin ID 'bad_plugin' was not found.",
],
];
}
/**
* Tests message logged when multiple migrations are not found.
*
* @dataProvider providerExceptionOnMultipleMigrationsNotFound
*/
public function testExceptionOnMultipleMigrationsNotFound($migrations, $message) {
$migration_plugin_manager = $this
->prophesize(MigrationPluginManagerInterface::class);
$migration_plugin_manager
->createInstances($migrations)
->willReturn([]);
$this
->expectException(PluginException::class);
$this
->expectExceptionMessage($message);
$lookup = new MigrateLookup($migration_plugin_manager
->reveal());
$lookup
->lookup($migrations, [
1,
]);
}
/**
* Provides data for testExceptionOnMultipleMigrationsNotFound.
*/
public function providerExceptionOnMultipleMigrationsNotFound() {
return [
'array two items' => [
[
'foo',
'bar',
],
"Plugin IDs 'foo', 'bar' were not found.",
],
'empty array' => [
[],
"Plugin IDs '' were not found.",
],
];
}
}