You are here

public function MigrateImportTest::testImport in Migrate Tools 8.5

Same name and namespace in other branches
  1. 8.4 tests/src/Kernel/MigrateImportTest.php \Drupal\Tests\migrate_tools\Kernel\MigrateImportTest::testImport()

Tests rolling back configuration and content entities.

File

tests/src/Kernel/MigrateImportTest.php, line 45

Class

MigrateImportTest
Tests imports.

Namespace

Drupal\Tests\migrate_tools\Kernel

Code

public function testImport() : void {

  // We use vocabularies to demonstrate importing and rolling back
  // configuration entities.
  $vocabulary_data_rows = [
    [
      'id' => '1',
      'name' => 'categories',
      'weight' => '2',
    ],
    [
      'id' => '2',
      'name' => 'tags',
      'weight' => '1',
    ],
  ];
  $ids = [
    'id' => [
      'type' => 'integer',
    ],
  ];
  $definition = [
    'id' => 'vocabularies',
    'migration_tags' => [
      'Import and rollback test',
    ],
    'source' => [
      'plugin' => 'embedded_data',
      'data_rows' => $vocabulary_data_rows,
      'ids' => $ids,
    ],
    'process' => [
      'vid' => 'id',
      'name' => 'name',
      'weight' => 'weight',
    ],
    'destination' => [
      'plugin' => 'entity:taxonomy_vocabulary',
    ],
  ];

  /** @var \Drupal\migrate\Plugin\MigrationInterface $vocabulary_migration */
  $vocabulary_migration = \Drupal::service('plugin.manager.migration')
    ->createStubMigration($definition);
  $vocabulary_id_map = $vocabulary_migration
    ->getIdMap();

  // Test id list import.
  $executable = new MigrateExecutable($vocabulary_migration, $this, [
    'idlist' => 2,
  ]);
  $executable
    ->import();

  /** @var \Drupal\taxonomy\Entity\Vocabulary $vocabulary */
  $vocabulary = Vocabulary::load(1);
  $this
    ->assertEmpty($vocabulary);
  $map_row = $vocabulary_id_map
    ->getRowBySource([
    'id' => 1,
  ]);
  $this
    ->assertEmpty($map_row);

  /** @var \Drupal\taxonomy\Entity\Vocabulary $vocabulary */
  $vocabulary = Vocabulary::load(2);
  $this
    ->assertInstanceOf(VocabularyInterface::class, $vocabulary);
  $map_row = $vocabulary_id_map
    ->getRowBySource([
    'id' => 2,
  ]);
  $this
    ->assertEqual($map_row['destid1'], $vocabulary
    ->id());
}