Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / modules / contrib / migrate_upgrade / tests / src / Unit / MigrateUpgradeDrushRunnerTest.php
diff --git a/web/modules/contrib/migrate_upgrade/tests/src/Unit/MigrateUpgradeDrushRunnerTest.php b/web/modules/contrib/migrate_upgrade/tests/src/Unit/MigrateUpgradeDrushRunnerTest.php
new file mode 100644 (file)
index 0000000..86e906f
--- /dev/null
@@ -0,0 +1,173 @@
+<?php
+
+namespace Drupal\Tests\migrate_upgrade\Unit;
+
+use Drupal\migrate_upgrade\MigrateUpgradeDrushRunner;
+use Drupal\Tests\migrate\Unit\MigrateTestCase;
+
+/**
+ * Tests for the  MigrateUpgradeDrushRunner class.
+ *
+ * @group migrate_upgrade
+ * @coversDefaultClass \Drupal\migrate_upgrade\MigrateUpgradeDrushRunner
+ */
+class MigrateUpgradeDrushRunnerTest extends MigrateTestCase {
+
+  /**
+   * Test the id substitution functions.
+   *
+   * @param array $source
+   *   The source data.
+   * @param array $expected
+   *   The expected results.
+   *
+   * @covers ::substituteIds
+   * @covers ::substituteMigrationIds
+   *
+   * @dataProvider getData
+   */
+  public function testIdSubstitution(array $source, array $expected) {
+    $runner = new TestMigrateUpgradeDrushRunner();
+    $results = $runner->substituteIds($source);
+    $this->assertArrayEquals($expected, $results);
+  }
+
+  /**
+   * Returns test data for the test.
+   *
+   * @return array
+   *   The test data.
+   */
+  public function getData() {
+    return [
+      'Single Migration Lookup' => [
+        'source_data' => [
+          'id' => 'my_migration',
+          'process' => [
+            'element' => [
+              'plugin' => 'migration_lookup',
+              'migration' => 'my_previous_migration',
+              'source' => 'value',
+            ],
+          ],
+          'migration_dependencies' => [
+            'required' => [
+              'my_previous_migration',
+              'required_dependency',
+            ],
+            'optional' => ['optional_dependency'],
+          ],
+        ],
+        'expected_result' => [
+          'id' => 'upgrade_my_migration',
+          'process' => [
+            'element' => [
+              'plugin' => 'migration_lookup',
+              'migration' => 'upgrade_my_previous_migration',
+              'source' => 'value',
+            ],
+          ],
+          'migration_dependencies' => [
+            'required' => [
+              'upgrade_my_previous_migration',
+              'upgrade_required_dependency',
+            ],
+            'optional' => ['upgrade_optional_dependency'],
+          ],
+        ],
+      ],
+      'Dual Migration Lookup' => [
+        'source_data' => [
+          'id' => 'my_migration',
+          'process' => [
+            'element' => [
+              'plugin' => 'migration_lookup',
+              'migration' => [
+                'my_previous_migration_1',
+                'my_previous_migration_2',
+              ],
+              'source_ids' => [
+                'my_previous_migration_1' => ['source_1'],
+                'my_previous_migration_2' => ['source_2'],
+              ],
+              'source' => 'value',
+            ],
+          ],
+          'migration_dependencies' => [
+            'required' => [
+              'my_previous_migration_1',
+              'required_dependency',
+            ],
+            'optional' => [
+              'my_previous_migration_2',
+              'optional_dependency',
+            ],
+          ],
+        ],
+        'expected_result' => [
+          'id' => 'upgrade_my_migration',
+          'process' => [
+            'element' => [
+              'plugin' => 'migration_lookup',
+              'migration' => [
+                'upgrade_my_previous_migration_1',
+                'upgrade_my_previous_migration_2',
+              ],
+              'source_ids' => [
+                'upgrade_my_previous_migration_1' => ['source_1'],
+                'upgrade_my_previous_migration_2' => ['source_2'],
+              ],
+              'source' => 'value',
+            ],
+          ],
+          'migration_dependencies' => [
+            'required' => [
+              'upgrade_my_previous_migration_1',
+              'upgrade_required_dependency',
+            ],
+            'optional' => [
+              'upgrade_my_previous_migration_2',
+              'upgrade_optional_dependency',
+            ],
+          ],
+        ],
+      ],
+    ];
+  }
+
+}
+
+/**
+ * Test class to expose protected methods.
+ */
+class TestMigrateUpgradeDrushRunner extends MigrateUpgradeDrushRunner {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function substituteIds($entity_array) {
+    return parent::substituteIds($entity_array);
+  }
+
+}
+
+namespace Drupal\migrate_upgrade;
+
+if (!function_exists('drush_get_option')) {
+
+  /**
+   * Override for called function.
+   *
+   * @param mixed $option
+   *   An option.
+   * @param mixed $default
+   *   The default.
+   *
+   * @return mixed
+   *   The default, for this override.
+   */
+  function drush_get_option($option, $default) {
+    return $default;
+  }
+
+}