public function MigrateSqlIdMapTest::testLookupDestinationIdMapping in Drupal 9
Same name and namespace in other branches
- 8 core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php \Drupal\Tests\migrate\Unit\MigrateSqlIdMapTest::testLookupDestinationIdMapping()
Performs destination ID test on source and destination fields.
@dataProvider lookupDestinationIdMappingDataProvider
Parameters
int $num_source_fields: Number of source fields to test.
int $num_destination_fields: Number of destination fields to test.
File
- core/
modules/ migrate/ tests/ src/ Unit/ MigrateSqlIdMapTest.php, line 402
Class
- MigrateSqlIdMapTest
- Tests the SQL ID map plugin.
Namespace
Drupal\Tests\migrate\UnitCode
public function testLookupDestinationIdMapping($num_source_fields, $num_destination_fields) {
// Adjust the migration configuration according to the number of source and
// destination fields.
$this->sourceIds = [];
$this->destinationIds = [];
$source_id_values = [];
$nonexistent_id_values = [];
$row = $this
->idMapDefaults();
for ($i = 1; $i <= $num_source_fields; $i++) {
$row["sourceid{$i}"] = "source_id_value_{$i}";
$source_id_values[] = "source_id_value_{$i}";
$nonexistent_id_values[] = "nonexistent_source_id_value_{$i}";
$this->sourceIds["source_id_property_{$i}"] = [];
}
$expected_result = [];
for ($i = 1; $i <= $num_destination_fields; $i++) {
$row["destid{$i}"] = "destination_id_value_{$i}";
$expected_result[] = "destination_id_value_{$i}";
$this->destinationIds["destination_id_property_{$i}"] = [];
}
$row['source_ids_hash'] = $this
->getIdMap()
->getSourceIdsHash($source_id_values);
$this
->saveMap($row);
$id_map = $this
->getIdMap();
// Test for a valid hit.
$destination_ids = $id_map
->lookupDestinationIds($source_id_values);
$this
->assertSame([
$expected_result,
], $destination_ids);
// Test for a miss.
$destination_ids = $id_map
->lookupDestinationIds($nonexistent_id_values);
$this
->assertCount(0, $destination_ids);
}