];
}
+ /**
+ * Tests that a message is successfully created if import fails.
+ */
+ public function testImportException() {
+ $migration_plugin = $this->prophesize(MigrationInterface::class);
+ $migration_plugin_manager = $this->prophesize(MigrationPluginManagerInterface::class);
+ $process_plugin_manager = $this->prophesize(MigratePluginManager::class);
+
+ $destination_id_map = $this->prophesize(MigrateIdMapInterface::class);
+ $destination_migration = $this->prophesize('Drupal\migrate\Plugin\Migration');
+ $destination_migration->getIdMap()->willReturn($destination_id_map->reveal());
+ $migration_plugin_manager->createInstances(['destination_migration'])
+ ->willReturn(['destination_migration' => $destination_migration->reveal()]);
+ $destination_id_map->lookupDestinationId([1])->willReturn(NULL);
+ $destination_id_map->saveMessage(Argument::any(), Argument::any())->willReturn(NULL);
+ $destination_id_map->saveIdMapping(Argument::any(), Argument::any(), Argument::any())->shouldNotBeCalled();
+
+ $configuration = [
+ 'no_stub' => FALSE,
+ 'migration' => 'destination_migration',
+ ];
+
+ $destination_migration->id()->willReturn('destination_migration');
+ $destination_migration->getDestinationPlugin(TRUE)->shouldBeCalled();
+ $destination_migration->getProcess()->willReturn([]);
+ $destination_migration->getSourceConfiguration()->willReturn([]);
+
+ $source_plugin = $this->prophesize(MigrateSourceInterface::class);
+ $source_plugin->getIds()->willReturn(['nid']);
+ $destination_migration->getSourcePlugin()->willReturn($source_plugin->reveal());
+ $destination_plugin = $this->prophesize(MigrateDestinationInterface::class);
+ $e = new \Exception();
+ $destination_plugin->import(Argument::any())->willThrow($e);
+ $destination_migration->getDestinationPlugin(TRUE)->willReturn($destination_plugin->reveal());
+
+ $migration = new MigrationLookup($configuration, '', [], $migration_plugin->reveal(), $migration_plugin_manager->reveal(), $process_plugin_manager->reveal());
+ $migration->transform(1, $this->migrateExecutable, $this->row, '');
+ }
+
}