Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / migrate / tests / src / Kernel / Plugin / MigrationTest.php
index c2cec4cff6e342d46761dcfc997f483a4b6d63ae..a8dddd277ac9929353d018127ac503eb8dbf82cc 100644 (file)
@@ -3,6 +3,8 @@
 namespace Drupal\Tests\migrate\Kernel\Plugin;
 
 use Drupal\KernelTests\KernelTestBase;
+use Drupal\migrate\MigrateException;
+use Drupal\migrate\MigrateSkipRowException;
 
 /**
  * Tests the migration plugin.
@@ -27,6 +29,17 @@ class MigrationTest extends KernelTestBase {
     $this->assertEquals([], $migration->getProcessPlugins([]));
   }
 
+  /**
+   * Tests Migration::getProcessPlugins() throws an exception.
+   *
+   * @covers ::getProcessPlugins
+   */
+  public function testGetProcessPluginsException() {
+    $migration = \Drupal::service('plugin.manager.migration')->createStubMigration([]);
+    $this->setExpectedException(MigrateException::class, 'Invalid process configuration for foobar');
+    $migration->getProcessPlugins(['foobar' => ['plugin' => 'get']]);
+  }
+
   /**
    * Tests Migration::getMigrationDependencies()
    *
@@ -39,7 +52,7 @@ class MigrationTest extends KernelTestBase {
         'f1' => 'bar',
         'f2' => [
           'plugin' => 'migration',
-          'migration' => 'm1'
+          'migration' => 'm1',
         ],
         'f3' => [
           'plugin' => 'sub_process',
@@ -50,10 +63,32 @@ class MigrationTest extends KernelTestBase {
             ],
           ],
         ],
+        'f4' => [
+          'plugin' => 'migration_lookup',
+          'migration' => 'm3',
+        ],
+        'f5' => [
+          'plugin' => 'sub_process',
+          'process' => [
+            'target_id' => [
+              'plugin' => 'migration_lookup',
+              'migration' => 'm4',
+            ],
+          ],
+        ],
+        'f6' => [
+          'plugin' => 'iterator',
+          'process' => [
+            'target_id' => [
+              'plugin' => 'migration_lookup',
+              'migration' => 'm5',
+            ],
+          ],
+        ],
       ],
     ];
     $migration = $plugin_manager->createStubMigration($plugin_definition);
-    $this->assertSame(['required' => [], 'optional' => ['m1', 'm2']], $migration->getMigrationDependencies());
+    $this->assertSame(['required' => [], 'optional' => ['m1', 'm2', 'm3', 'm4', 'm5']], $migration->getMigrationDependencies());
   }
 
   /**
@@ -81,4 +116,15 @@ class MigrationTest extends KernelTestBase {
     $this->assertEquals(TRUE, $migration->isTrackLastImported());
   }
 
+  /**
+   * Tests Migration::getDestinationPlugin()
+   *
+   * @covers ::getDestinationPlugin
+   */
+  public function testGetDestinationPlugin() {
+    $migration = \Drupal::service('plugin.manager.migration')->createStubMigration(['destination' => ['no_stub' => TRUE]]);
+    $this->setExpectedException(MigrateSkipRowException::class, "Stub requested but not made because no_stub configuration is set.");
+    $migration->getDestinationPlugin(TRUE);
+  }
+
 }