function MigrateExternalTranslatedTest::testMigrations

Same name and namespace in other branches
  1. 9 core/modules/migrate/tests/src/Kernel/MigrateExternalTranslatedTest.php \Drupal\Tests\migrate\Kernel\MigrateExternalTranslatedTest::testMigrations()
  2. 8.9.x core/modules/migrate/tests/src/Kernel/MigrateExternalTranslatedTest.php \Drupal\Tests\migrate\Kernel\MigrateExternalTranslatedTest::testMigrations()
  3. 11.x core/modules/migrate/tests/src/Kernel/MigrateExternalTranslatedTest.php \Drupal\Tests\migrate\Kernel\MigrateExternalTranslatedTest::testMigrations()

Tests importing and rolling back our data.

File

core/modules/migrate/tests/src/Kernel/MigrateExternalTranslatedTest.php, line 57

Class

MigrateExternalTranslatedTest
Tests migrating non-Drupal translated content.

Namespace

Drupal\Tests\migrate\Kernel

Code

public function testMigrations() : void {
  /** @var \Drupal\Core\Entity\ContentEntityStorageInterface $storage */
  $storage = $this->container
    ->get('entity_type.manager')
    ->getStorage('node');
  $this->assertCount(0, $storage->loadMultiple());
  // Run the migrations.
  $migration_ids = [
    'external_translated_test_node',
    'external_translated_test_node_translation',
  ];
  $this->executeMigrations($migration_ids);
  $this->assertCount(3, $storage->loadMultiple());
  $node = $storage->load(1);
  $this->assertEquals('en', $node->language()
    ->getId());
  $this->assertEquals('Cat', $node->title->value);
  $this->assertEquals('Chat', $node->getTranslation('fr')->title->value);
  $this->assertEquals('es - Cat', $node->getTranslation('es')->title->value);
  $node = $storage->load(2);
  $this->assertEquals('en', $node->language()
    ->getId());
  $this->assertEquals('Dog', $node->title->value);
  $this->assertEquals('fr - Dog', $node->getTranslation('fr')->title->value);
  $this->assertFalse($node->hasTranslation('es'), "No spanish translation for node 2");
  $node = $storage->load(3);
  $this->assertEquals('en', $node->language()
    ->getId());
  $this->assertEquals('Monkey', $node->title->value);
  $this->assertFalse($node->hasTranslation('fr'), "No french translation for node 3");
  $this->assertFalse($node->hasTranslation('es'), "No spanish translation for node 3");
  $this->assertNull($storage->load(4), "No node 4 migrated");
  // Roll back the migrations.
  foreach ($migration_ids as $migration_id) {
    $migration = $this->getMigration($migration_id);
    $executable = new MigrateExecutable($migration, $this);
    $executable->rollback();
  }
  $this->assertCount(0, $storage->loadMultiple());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.