You are here

protected function MigrateSqlIdMapTest::setupRows in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php \Drupal\Tests\migrate\Unit\MigrateSqlIdMapTest::setupRows()

Setup a database with the given rows.

Parameters

array $source_keys: The source keys for the ID map table.

array $dest_keys: The destination keys for the ID map table.

array $rows: An array of source and destination value arrays for the ID map table.

Return value

\Drupal\Tests\migrate\Unit\TestSqlIdMap An ID map instance for testing.

3 calls to MigrateSqlIdMapTest::setupRows()
MigrateSqlIdMapTest::testCurrentDestinationAndSource in core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php
Tests currentDestination() and currentSource().
MigrateSqlIdMapTest::testLookupDestinationId in core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php
Tests lookupDestinationId().
MigrateSqlIdMapTest::testLookupDestinationIds in core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php
Tests lookupDestinationIds().

File

core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php, line 457

Class

MigrateSqlIdMapTest
Tests the SQL ID map plugin.

Namespace

Drupal\Tests\migrate\Unit

Code

protected function setupRows($source_keys, $dest_keys, $rows) {
  $this->database = $this
    ->getDatabase([]);
  $this->sourceIds = array_fill_keys($source_keys, []);
  $this->destinationIds = array_fill_keys($dest_keys, []);
  $db_keys = [];
  foreach (array_keys($source_keys) as $i) {
    $db_keys[] = 'sourceid' . ($i + 1);
  }
  foreach (array_keys($dest_keys) as $i) {
    $db_keys[] = 'destid' . ($i + 1);
  }
  foreach ($rows as $row) {
    $values = array_combine($db_keys, $row);
    $source_values = array_slice($row, 0, count($source_keys));
    $values['source_ids_hash'] = $this
      ->getIdMap()
      ->getSourceIdsHash($source_values);
    $this
      ->saveMap($values);
  }
  return $this
    ->getIdMap();
}