Chris@0: installSchema('system', ['sequences']); Chris@0: $this->installSchema('node', ['node_access']); Chris@0: $this->installEntitySchema('user'); Chris@0: $this->installEntitySchema('node'); Chris@0: Chris@0: // Create some languages. Chris@0: ConfigurableLanguage::createFromLangcode('en')->save(); Chris@0: ConfigurableLanguage::createFromLangcode('fr')->save(); Chris@0: ConfigurableLanguage::createFromLangcode('es')->save(); Chris@0: Chris@0: // Create a content type. Chris@0: NodeType::create([ Chris@0: 'type' => 'external_test', Chris@0: 'name' => 'Test node type', Chris@0: ])->save(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Test importing and rolling back our data. Chris@0: */ Chris@0: public function testMigrations() { Chris@0: /** @var \Drupal\Core\Entity\ContentEntityStorageInterface $storage */ Chris@0: $storage = $this->container->get('entity.manager')->getStorage('node'); Chris@0: $this->assertEquals(0, count($storage->loadMultiple())); Chris@0: Chris@0: // Run the migrations. Chris@0: $migration_ids = ['external_translated_test_node', 'external_translated_test_node_translation']; Chris@0: $this->executeMigrations($migration_ids); Chris@0: $this->assertEquals(3, count($storage->loadMultiple())); Chris@0: Chris@0: $node = $storage->load(1); Chris@0: $this->assertEquals('en', $node->language()->getId()); Chris@0: $this->assertEquals('Cat', $node->title->value); Chris@0: $this->assertEquals('Chat', $node->getTranslation('fr')->title->value); Chris@0: $this->assertEquals('Gato', $node->getTranslation('es')->title->value); Chris@0: Chris@0: $node = $storage->load(2); Chris@0: $this->assertEquals('en', $node->language()->getId()); Chris@0: $this->assertEquals('Dog', $node->title->value); Chris@0: $this->assertEquals('Chien', $node->getTranslation('fr')->title->value); Chris@0: $this->assertFalse($node->hasTranslation('es'), "No spanish translation for node 2"); Chris@0: Chris@0: $node = $storage->load(3); Chris@0: $this->assertEquals('en', $node->language()->getId()); Chris@0: $this->assertEquals('Monkey', $node->title->value); Chris@0: $this->assertFalse($node->hasTranslation('fr'), "No french translation for node 3"); Chris@0: $this->assertFalse($node->hasTranslation('es'), "No spanish translation for node 3"); Chris@0: Chris@0: $this->assertNull($storage->load(4), "No node 4 migrated"); Chris@0: Chris@0: // Roll back the migrations. Chris@0: foreach ($migration_ids as $migration_id) { Chris@0: $migration = $this->getMigration($migration_id); Chris@0: $executable = new MigrateExecutable($migration, $this); Chris@0: $executable->rollback(); Chris@0: } Chris@0: Chris@0: $this->assertEquals(0, count($storage->loadMultiple())); Chris@0: } Chris@0: Chris@0: }