diff -u b/core/modules/migrate/tests/src/Kernel/MigrateRollbackTest.php b/core/modules/migrate/tests/src/Kernel/MigrateRollbackTest.php --- b/core/modules/migrate/tests/src/Kernel/MigrateRollbackTest.php +++ b/core/modules/migrate/tests/src/Kernel/MigrateRollbackTest.php @@ -4,7 +4,6 @@ use Drupal\migrate\MigrateExecutable; use Drupal\migrate\Plugin\MigrateIdMapInterface; -use Drupal\migrate\Plugin\migrate\id_map\Sql; use Drupal\migrate\Row; use Drupal\taxonomy\Entity\Term; use Drupal\taxonomy\Entity\Vocabulary; @@ -73,7 +72,7 @@ $vocabulary = Vocabulary::load($row['id']); $this->assertTrue($vocabulary); $map_row = $vocabulary_id_map->getRowBySource(['id' => $row['id']]); - $this->assertNotNull($map_row['vid' . SQL::ID_SUFFIX]); + $this->assertNotNull($map_row['vid' . Sql::ID_SUFFIX]); } // We use taxonomy terms to demonstrate importing and rolling back content @@ -118,7 +117,7 @@ $preserved_term_ids[] = 2; $map_row = $term_id_map->getRowBySource(['id' => 2]); $dummy_row = new Row(['id' => 2], $ids); - $term_id_map->saveIdMapping($dummy_row, [$map_row['id' . SQL::ID_SUFFIX]], + $term_id_map->saveIdMapping($dummy_row, [$map_row['id' . Sql::ID_SUFFIX]], $map_row['source_row_status'], MigrateIdMapInterface::ROLLBACK_PRESERVE); foreach ($term_data_rows as $row) { @@ -126,7 +125,7 @@ $term = Term::load($row['id']); $this->assertTrue($term); $map_row = $term_id_map->getRowBySource(['id' => $row['id']]); - $this->assertNotNull($map_row['id' . SQL::ID_SUFFIX]); + $this->assertNotNull($map_row['id' . Sql::ID_SUFFIX]); } // Rollback and verify the entities are gone. diff -u b/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php b/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php --- b/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php +++ b/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php @@ -265,10 +265,10 @@ // Convert names foreach ($test_row as $key => $value) { switch ($key) { - case 'source_id_property' . SQL::ID_SUFFIX; + case 'source_id_property' . Sql::ID_SUFFIX; $key = 'sourceid1'; break; - case 'destination_id_property' . SQL::ID_SUFFIX: + case 'destination_id_property' . Sql::ID_SUFFIX: $key = 'destid1'; break; } @@ -399,14 +399,14 @@ ] + $this->idMapDefaults(); $this->saveMap($row); $expected = [ - 'source_id_property1' . SQL::ID_SUFFIX => 'source_id_value_3', - 'source_id_property2' . SQL::ID_SUFFIX => 'source_id_value_4', + 'source_id_property1' . Sql::ID_SUFFIX => 'source_id_value_3', + 'source_id_property2' . Sql::ID_SUFFIX => 'source_id_value_4', 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash( [ 'source_id_property1' => 'source_id_value_3', 'source_id_property2' => 'source_id_value_4' ]), - 'destination_id_property' . SQL::ID_SUFFIX => 'destination_id_value_2', + 'destination_id_property' . Sql::ID_SUFFIX => 'destination_id_value_2', ] + $this->idMapDefaults(); $source_id_values = [ 'source_id_property1' => $row['sourceid1'], @@ -528,14 +528,14 @@ ] + $this->idMapDefaults(); $this->saveMap($row); $expected = [ - 'source_id_property1' . SQL::ID_SUFFIX => 'source_id_value_3', - 'source_id_property2' . SQL::ID_SUFFIX => 'source_id_value_4', + 'source_id_property1' . Sql::ID_SUFFIX => 'source_id_value_3', + 'source_id_property2' . Sql::ID_SUFFIX => 'source_id_value_4', 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash( [ 'source_id_property1' => 'source_id_value_3', 'source_id_property2' => 'source_id_value_4' ]), - 'destination_id_property' . SQL::ID_SUFFIX => 'destination_id_value_2', + 'destination_id_property' . Sql::ID_SUFFIX => 'destination_id_value_2', ] + $this->idMapDefaults(); $dest_id_values = ['destination_id_property' => $row['destid1']]; $id_map = $this->getIdMap(); only in patch2: unchanged: --- a/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php +++ b/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php @@ -154,13 +154,20 @@ protected function testMigrateUpgrade() { /** @var \Drupal\migrate\Plugin\Migration[] $all_migrations */ $all_migrations = $plugin_manager->createInstancesByTag($version_tag); foreach ($all_migrations as $migration) { + $count = 1; + $source_id_field = []; + foreach ($migration->getSourcePlugin()->getIds() as $field => $schema) { + $source_id_field['sourceid' . $count] = $field; + } $id_map = $migration->getIdMap(); foreach ($id_map as $source_id => $map) { - // Convert $source_id into a keyless array so that - // \Drupal\migrate\Plugin\migrate\id_map\Sql::getSourceHash() works as - // expected. - $source_id_values = array_values(unserialize($source_id)); - $row = $id_map->getRowBySource($source_id_values); + $source_id_values = unserialize($source_id); + // Change the keys to the ids defined in the migration. + $source_field_values = []; + foreach ($source_id_values as $key => $value) { + $source_field_values[$source_id_field[$key]] = $value; + } + $row = $id_map->getRowBySource($source_field_values); $destination = serialize($id_map->currentDestination()); $message = "Successful migration of $source_id to $destination as part of the {$migration->id()} migration. The source row status is " . $row['source_row_status']; // A completed migration should have maps with