Version 1
[yaffs-website] / web / core / modules / comment / tests / src / Kernel / Migrate / MigrateCommentStubTest.php
diff --git a/web/core/modules/comment/tests/src/Kernel/Migrate/MigrateCommentStubTest.php b/web/core/modules/comment/tests/src/Kernel/Migrate/MigrateCommentStubTest.php
new file mode 100644 (file)
index 0000000..0b256ea
--- /dev/null
@@ -0,0 +1,73 @@
+<?php
+
+namespace Drupal\Tests\comment\Kernel\Migrate;
+
+use Drupal\comment\Entity\CommentType;
+use Drupal\migrate\MigrateException;
+use Drupal\Tests\migrate_drupal\Kernel\MigrateDrupalTestBase;
+use Drupal\migrate_drupal\Tests\StubTestTrait;
+use Drupal\node\Entity\NodeType;
+
+/**
+ * Test stub creation for comment entities.
+ *
+ * @group comment
+ */
+class MigrateCommentStubTest extends MigrateDrupalTestBase {
+
+  use StubTestTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['comment', 'node'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('comment');
+    $this->installEntitySchema('node');
+    // Make sure uid 0 is created (default uid for comments is 0).
+    $storage = \Drupal::entityManager()->getStorage('user');
+    // Insert a row for the anonymous user.
+    $storage
+      ->create([
+        'uid' => 0,
+        'status' => 0,
+        'name' => '',
+      ])
+      ->save();
+    // Need at least one node type and comment type present.
+    NodeType::create([
+      'type' => 'testnodetype',
+      'name' => 'Test node type',
+    ])->save();
+    CommentType::create([
+      'id' => 'testcommenttype',
+      'label' => 'Test comment type',
+      'target_entity_type_id' => 'node',
+    ])->save();
+  }
+
+  /**
+   * Tests creation of comment stubs.
+   */
+  public function testStub() {
+    try {
+      // We expect an exception, because there's no node to reference.
+      $this->performStubTest('comment');
+      $this->fail('Expected exception has not been thrown.');
+    }
+    catch (MigrateException $e) {
+      $this->assertIdentical($e->getMessage(),
+        'Stubbing failed, unable to generate value for field entity_id');
+    }
+
+    // The stub should pass when there's a node to point to.
+    $this->createStub('node');
+    $this->performStubTest('comment');
+  }
+
+}