public function MigrateSourceTest::testPrepareRowGlobalPrepareSkip in Drupal 9
Same name and namespace in other branches
- 8 core/modules/migrate/tests/src/Unit/MigrateSourceTest.php \Drupal\Tests\migrate\Unit\MigrateSourceTest::testPrepareRowGlobalPrepareSkip()
Tests that global prepare hooks can skip rows.
@covers ::prepareRow
File
- core/
modules/ migrate/ tests/ src/ Unit/ MigrateSourceTest.php, line 333 - Contains \Drupal\Tests\migrate\Unit\MigrateSourceTest.
Class
- MigrateSourceTest
- @coversDefaultClass \Drupal\migrate\Plugin\migrate\source\SourcePluginBase @group migrate
Namespace
Drupal\Tests\migrate\UnitCode
public function testPrepareRowGlobalPrepareSkip() {
$this->migrationConfiguration['id'] = 'test_migration';
$migration = $this
->getMigration();
$source = new StubSourcePlugin([], '', [], $migration);
$row = new Row();
$module_handler = $this
->prophesize(ModuleHandlerInterface::class);
// Return a failure from a prepare row hook.
$module_handler
->invokeAll('migrate_prepare_row', [
$row,
$source,
$migration,
])
->willReturn([
TRUE,
FALSE,
TRUE,
])
->shouldBeCalled();
$module_handler
->invokeAll('migrate_' . $migration
->id() . '_prepare_row', [
$row,
$source,
$migration,
])
->willReturn([
TRUE,
TRUE,
])
->shouldBeCalled();
$source
->setModuleHandler($module_handler
->reveal());
$this->idMap
->expects($this
->once())
->method('saveIdMapping')
->with($row, [], MigrateIdMapInterface::STATUS_IGNORED);
$this
->assertFalse($source
->prepareRow($row));
}