Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / modules / contrib / migrate_plus / tests / src / Unit / process / ArrayShiftTest.php
diff --git a/web/modules/contrib/migrate_plus/tests/src/Unit/process/ArrayShiftTest.php b/web/modules/contrib/migrate_plus/tests/src/Unit/process/ArrayShiftTest.php
new file mode 100644 (file)
index 0000000..6c6950f
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+
+namespace Drupal\Tests\migrate_plus\Unit\process;
+
+use Drupal\Tests\migrate\Unit\process\MigrateProcessTestCase;
+use Drupal\migrate_plus\Plugin\migrate\process\ArrayShift;
+use Drupal\migrate\MigrateException;
+
+/**
+ * Tests the array shift process plugin.
+ *
+ * @group migrate
+ * @coversDefaultClass \Drupal\migrate_plus\Plugin\migrate\process\ArrayShift
+ */
+class ArrayShiftTest extends MigrateProcessTestCase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    $this->plugin = new ArrayShift([], 'array_shift', []);
+    parent::setUp();
+  }
+
+  /**
+   * Data provider for testArrayShift().
+   *
+   * @return array
+   *   An array containing input values and expected output values.
+   */
+  public function arrayShiftDataProvider() {
+    return [
+      'indexed array' => [
+        'input' => ['v1', 'v2', 'v3'],
+        'expected_output' => 'v1',
+      ],
+      'associative array' => [
+        'input' => ['i1' => 'v1', 'i2' => 'v2', 'i3' => 'v3'],
+        'expected_output' => 'v1',
+      ],
+      'empty array' => [
+        'input' => [],
+        'expected_output' => NULL,
+      ],
+    ];
+  }
+
+  /**
+   * Test array shift plugin.
+   *
+   * @param array $input
+   *   The input values.
+   * @param mixed $expected_output
+   *   The expected output.
+   *
+   * @dataProvider arrayShiftDataProvider
+   */
+  public function testArrayShift(array $input, $expected_output) {
+    $output = $this->plugin->transform($input, $this->migrateExecutable, $this->row, 'destinationproperty');
+    $this->assertSame($output, $expected_output);
+  }
+
+  /**
+   * Test invalid input.
+   */
+  public function testArrayShiftFromString() {
+    $this->setExpectedException(MigrateException::class, 'Input should be an array.');
+    $this->plugin->transform('foo', $this->migrateExecutable, $this->row, 'destinationproperty');
+  }
+
+}