function MigrateExecutableTest::testContinuePipeline
Same name in other branches
- 11.x core/modules/migrate/tests/src/Unit/MigrateExecutableTest.php \Drupal\Tests\migrate\Unit\MigrateExecutableTest::testContinuePipeline()
Tests a plugin which does not stop the pipeline.
File
-
core/
modules/ migrate/ tests/ src/ Unit/ MigrateExecutableTest.php, line 380
Class
- MigrateExecutableTest
- @coversDefaultClass \Drupal\migrate\MigrateExecutable @group migrate
Namespace
Drupal\Tests\migrate\UnitCode
public function testContinuePipeline() : void {
$row = new Row();
// Prophesize a plugin that does not stop the pipeline.
$continue_plugin = $this->prophesize(MigrateProcessInterface::class);
$continue_plugin->getPluginDefinition()
->willReturn([
'handle_multiples' => FALSE,
]);
$continue_plugin->transform(NULL, $this->executable, $row, 'destination_id')
->willReturn('first_plugin');
$continue_plugin->multiple()
->willReturn(FALSE);
$continue_plugin->reset()
->shouldBeCalled();
$continue_plugin->isPipelineStopped()
->willReturn(FALSE);
// Prophesize a plugin that transforms 'first_plugin' to 'final_plugin'.
$final_plugin = $this->prophesize(MigrateProcessInterface::class);
$final_plugin->getPluginDefinition()
->willReturn([
'handle_multiples' => FALSE,
]);
$final_plugin->transform('first_plugin', $this->executable, $row, 'destination_id')
->willReturn('final_plugin');
$final_plugin->multiple()
->willReturn(FALSE);
$final_plugin->reset()
->shouldBeCalled();
$final_plugin->isPipelineStopped()
->willReturn(FALSE);
$plugins['destination_id'] = [
$continue_plugin->reveal(),
$final_plugin->reveal(),
];
$this->migration
->method('getProcessPlugins')
->willReturn($plugins);
// Process the row and confirm that the destination value is 'final_plugin'.
$this->executable
->processRow($row);
$this->assertEquals('final_plugin', $row->getDestinationProperty('destination_id'));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.