Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / migrate / tests / src / Unit / process / GetTest.php
index 5bc6247e7d8b1e6f8cb521934f183322e8858f2e..df5f98ab8044f30ade79c357b8662c999bd6fe12 100644 (file)
@@ -1,13 +1,8 @@
 <?php
 
-/**
- * @file
- * Contains \Drupal\Tests\migrate\Unit\process\GetTest.
- */
-
 namespace Drupal\Tests\migrate\Unit\process;
 
-use Drupal\migrate\Plugin\migrate\process\TestGet;
+use Drupal\migrate\Plugin\migrate\process\Get;
 
 /**
  * Tests the get process plugin.
@@ -16,14 +11,6 @@ use Drupal\migrate\Plugin\migrate\process\TestGet;
  */
 class GetTest extends MigrateProcessTestCase {
 
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    $this->plugin = new TestGet();
-    parent::setUp();
-  }
-
   /**
    * Tests the Get plugin when source is a string.
    */
@@ -32,7 +19,7 @@ class GetTest extends MigrateProcessTestCase {
       ->method('getSourceProperty')
       ->with('test')
       ->will($this->returnValue('source_value'));
-    $this->plugin->setSource('test');
+    $this->plugin = new Get(['source' => 'test'], '', []);
     $value = $this->plugin->transform(NULL, $this->migrateExecutable, $this->row, 'destinationproperty');
     $this->assertSame('source_value', $value);
   }
@@ -45,7 +32,7 @@ class GetTest extends MigrateProcessTestCase {
       'test1' => 'source_value1',
       'test2' => 'source_value2',
     ];
-    $this->plugin->setSource(['test1', 'test2']);
+    $this->plugin = new Get(['source' => ['test1', 'test2']], '', []);
     $this->row->expects($this->exactly(2))
       ->method('getSourceProperty')
       ->will($this->returnCallback(function ($argument) use ($map) {
@@ -63,7 +50,7 @@ class GetTest extends MigrateProcessTestCase {
       ->method('getSourceProperty')
       ->with('@test')
       ->will($this->returnValue('source_value'));
-    $this->plugin->setSource('@@test');
+    $this->plugin = new Get(['source' => '@@test'], '', []);
     $value = $this->plugin->transform(NULL, $this->migrateExecutable, $this->row, 'destinationproperty');
     $this->assertSame('source_value', $value);
   }
@@ -78,7 +65,7 @@ class GetTest extends MigrateProcessTestCase {
       '@test3' => 'source_value3',
       'test4' => 'source_value4',
     ];
-    $this->plugin->setSource(['test1', '@@test2', '@@test3', 'test4']);
+    $this->plugin = new Get(['source' => ['test1', '@@test2', '@@test3', 'test4']], '', []);
     $this->row->expects($this->exactly(4))
       ->method('getSourceProperty')
       ->will($this->returnCallback(function ($argument) use ($map) {
@@ -90,34 +77,47 @@ class GetTest extends MigrateProcessTestCase {
 
   /**
    * Tests the Get plugin when source has integer values.
+   *
+   * @dataProvider integerValuesDataProvider
    */
-  public function testIntegerValues() {
-    $this->row->expects($this->exactly(2))
+  public function testIntegerValues($source, $expected_value) {
+    $this->row->expects($this->atMost(2))
       ->method('getSourceProperty')
       ->willReturnOnConsecutiveCalls('val1', 'val2');
 
-    $this->plugin->setSource([0 => 0, 1 => 'test']);
+    $this->plugin = new Get(['source' => $source], '', []);
     $return = $this->plugin->transform(NULL, $this->migrateExecutable, $this->row, 'destinationproperty');
-    $this->assertSame([0 => 'val1', 1 => 'val2'], $return);
-
-    $this->plugin->setSource([FALSE]);
-    $return = $this->plugin->transform(NULL, $this->migrateExecutable, $this->row, 'destinationproperty');
-    $this->assertSame([NULL], $return);
-
-    $this->plugin->setSource([NULL]);
-    $return = $this->plugin->transform(NULL, $this->migrateExecutable, $this->row, 'destinationproperty');
-    $this->assertSame([NULL], $return);
+    $this->assertSame($expected_value, $return);
   }
 
-}
-
-namespace Drupal\migrate\Plugin\migrate\process;
-
-class TestGet extends Get {
-  public function __construct() {
+  /**
+   * Provides data for the successful lookup test.
+   *
+   * @return array
+   */
+  public function integerValuesDataProvider() {
+    return [
+      [
+        'source' => [0 => 0, 1 => 'test'],
+        'expected_value' => [0 => 'val1', 1 => 'val2'],
+      ],
+      [
+        'source' => [FALSE],
+        'expected_value' => [NULL],
+      ],
+      [
+        'source' => [NULL],
+        'expected_value' => [NULL],
+      ],
+    ];
   }
-  public function setSource($source) {
-    $this->configuration['source'] = $source;
+
+  /**
+   * Tests the Get plugin for syntax errors, e.g. "Invalid tag_line detected" by
+   * creating a prophecy of the class.
+   */
+  public function testPluginSyntax() {
+    $this->assertNotNull($this->prophesize(Get::class));
   }
 
 }