public function MigrateSqlIdMapTest::testLookupDestinationIdMapping in Zircon Profile 8
Same name and namespace in other branches
- 8.0 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 373  - Contains \Drupal\Tests\migrate\Unit\MigrateSqlIdMapTest.
 
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}"] = [];
  }
  $this
    ->saveMap($row);
  $id_map = $this
    ->getIdMap();
  // Test for a valid hit.
  $destination_id = $id_map
    ->lookupDestinationId($source_id_values);
  $this
    ->assertSame($expected_result, $destination_id);
  // Test for a miss.
  $destination_id = $id_map
    ->lookupDestinationId($nonexistent_id_values);
  $this
    ->assertSame(0, count($destination_id));
}