installEntitySchema('taxonomy_term'); } /** * Tests creation of taxonomy term stubs. */ public function testStub() { Vocabulary::create([ 'vid' => 'test_vocabulary', 'name' => 'Test vocabulary', ])->save(); $this->performStubTest('taxonomy_term'); } /** * Tests creation of stubs when weight is mapped. */ public function testStubWithWeightMapping() { // Create a vocabulary via migration for the terms to reference. $vocabulary_data_rows = [ ['id' => '1', 'name' => 'tags'], ]; $ids = ['id' => ['type' => 'integer']]; $definition = [ 'migration_tags' => ['Stub test'], 'source' => [ 'plugin' => 'embedded_data', 'data_rows' => $vocabulary_data_rows, 'ids' => $ids, ], 'process' => [ 'vid' => 'id', 'name' => 'name', ], 'destination' => ['plugin' => 'entity:taxonomy_vocabulary'], ]; $vocabulary_migration = \Drupal::service('plugin.manager.migration')->createStubMigration($definition); $vocabulary_executable = new MigrateExecutable($vocabulary_migration, $this); $vocabulary_executable->import(); // We have a term referencing an unmigrated parent, forcing a stub to be // created. $migration = $this->getMigration('taxonomy_term_stub_test'); $term_executable = new MigrateExecutable($migration, $this); $term_executable->import(); $this->assertTrue($migration->getIdMap()->getRowBySource(['2']), 'Stub row exists in the ID map table'); // Load the referenced term, which should exist as a stub. /** @var \Drupal\Core\Entity\ContentEntityBase $stub_entity */ $stub_entity = Term::load(2); $this->assertTrue($stub_entity, 'Stub successfully created'); if ($stub_entity) { $this->assertIdentical(count($stub_entity->validate()), 0, 'Stub is a valid entity'); } } }