You are here

MigrateEckTest.php in Entity Construction Kit (ECK) 8

File

tests/src/Kernel/Migrate/d7/MigrateEckTest.php
View source
<?php

namespace Drupal\Tests\eck\Kernel\Migrate\d7;

use Drupal\Tests\file\Kernel\Migrate\d7\FileMigrationSetupTrait;

/**
 * Tests migration of ECK entities.
 *
 * @group eck
 */
class MigrateEckTest extends MigrateEckTestBase {
  use FileMigrationSetupTrait;

  /**
   * {@inheritdoc}
   */
  public static $modules = [
    'comment',
    'content_translation',
    'eck',
    'language',
    'node',
    'text',
    'file',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    parent::setUp();
    $this
      ->installEntitySchema('node');
    $this
      ->installConfig(static::$modules);
    $this
      ->installSchema('node', [
      'node_access',
    ]);
    $this
      ->installSchema('system', [
      'sequences',
    ]);
    $this
      ->fileMigrationSetup();
    $this
      ->executeMigrations([
      'language',
      'default_language',
      'd7_eck_type',
      'd7_eck_bundle',
      'd7_comment_type',
    ]);
    $this
      ->migrateFields();
    $this
      ->executeMigrations([
      'd7_eck',
      'd7_eck_translation',
    ]);
  }

  /**
   * Tests migrating Eck entity types.
   */
  public function testEck() {
    $results = [
      [
        'type' => 'simple_entity',
        'bundle' => 'simple_entity',
        'id' => 1,
        'label' => 'Simple entity 1',
        'langcode' => 'und',
        'fields' => [
          'field_text' => [
            0 => [
              'value' => 'Simple entity 1 text value.',
            ],
          ],
        ],
      ],
      [
        'type' => 'complex_entity',
        'bundle' => 'complex_entity',
        'id' => '1',
        'label' => 'Complex entity 1',
        'langcode' => 'en',
        'fields' => [
          'field_text' => [
            0 => [
              'value' => 'Complex entity text value - English version.',
            ],
          ],
          'field_complex_entity' => [
            0 => [
              'target_id' => '3',
            ],
          ],
          'field_file' => [
            0 => [
              'target_id' => '1',
              'display' => '1',
              'description' => '',
            ],
          ],
          'field_node' => [
            0 => [
              'target_id' => '1',
            ],
          ],
          'field_simple_entities' => [
            0 => [
              'target_id' => '1',
            ],
            1 => [
              'target_id' => '2',
            ],
          ],
        ],
        'translations' => [
          'fr' => [
            'fields' => [
              'field_text' => [
                0 => [
                  'value' => 'Complex entity text value - French version.',
                ],
              ],
            ],
          ],
        ],
      ],
      [
        'type' => 'complex_entity',
        'bundle' => 'complex_entity',
        'id' => '3',
        'label' => 'Complex entity 3',
        'langcode' => 'fr',
        'fields' => [
          'field_text' => [
            0 => [
              'value' => 'Complex entity 3 text value - French version.',
            ],
          ],
        ],
      ],
      [
        'type' => 'complex_entity',
        'bundle' => 'another_bundle',
        'id' => '4',
        'label' => 'Entity of another complex bundle 1',
        'langcode' => 'en',
        'fields' => [
          'field_text' => [
            0 => [
              'value' => 'Text value of another complex bundle 1.',
            ],
          ],
        ],
      ],
    ];
    $count = \Drupal::entityQuery('simple_entity')
      ->accessCheck(FALSE)
      ->count()
      ->execute();
    $this
      ->assertSame('2', $count);
    $count = \Drupal::entityQuery('complex_entity')
      ->accessCheck(FALSE)
      ->count()
      ->execute();
    $this
      ->assertSame('5', $count);
    foreach ($results as $result) {
      $this
        ->assertEck($result);
    }
  }

  /**
   * {@inheritdoc}
   */
  protected function getFileMigrationInfo() {
    return [
      'path' => 'public://sites/default/files/test.txt',
      'size' => '14',
      'base_path' => 'public://',
      'plugin_id' => 'd7_file',
    ];
  }

}

Classes

Namesort descending Description
MigrateEckTest Tests migration of ECK entities.