X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fmigrate%2Ftests%2Fsrc%2FUnit%2FMigrateSqlIdMapTest.php;fp=web%2Fcore%2Fmodules%2Fmigrate%2Ftests%2Fsrc%2FUnit%2FMigrateSqlIdMapTest.php;h=b0f3d1a35594e579db44b0eb24bd6040b5f2597d;hp=80c55ef13565f24ff443dfb276de73b58e5c4330;hb=0bf8d09d2542548982e81a441b1f16e75873a04f;hpb=74df008bdbb3a11eeea356744f39b802369bda3c diff --git a/web/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php b/web/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php index 80c55ef13..b0f3d1a35 100644 --- a/web/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php +++ b/web/core/modules/migrate/tests/src/Unit/MigrateSqlIdMapTest.php @@ -166,7 +166,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $expected_result = [ [ 'sourceid1' => 'source_value', - 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash($source), + 'source_ids_hash' => $this->getIdMap()->getSourceIdsHash($source), 'destid1' => 2, ] + $this->idMapDefaults(), ]; @@ -178,7 +178,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $id_map->saveIdMapping($row, ['destination_id_property' => 3]); $expected_result[] = [ 'sourceid1' => 'source_value_1', - 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash($source), + 'source_ids_hash' => $this->getIdMap()->getSourceIdsHash($source), 'destid1' => 3, ] + $this->idMapDefaults(); $this->queryResultTest($this->getIdMapContents(), $expected_result); @@ -236,7 +236,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $id_map->saveIdMapping($row, $destination, $status); $expected_results[] = [ 'sourceid1' => 'source_value_' . $status, - 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash($source), + 'source_ids_hash' => $this->getIdMap()->getSourceIdsHash($source), 'destid1' => 'destination_value_' . $status, 'source_row_status' => $status, 'rollback_action' => MigrateIdMapInterface::ROLLBACK_DELETE, @@ -348,14 +348,14 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $row = [ 'sourceid1' => 'source_id_value_1', 'sourceid2' => 'source_id_value_2', - 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash(['source_id_property' => 'source_id_value_1']), + 'source_ids_hash' => $this->getIdMap()->getSourceIdsHash(['source_id_property' => 'source_id_value_1']), 'destid1' => 'destination_id_value_1', ] + $this->idMapDefaults(); $this->saveMap($row); $row = [ 'sourceid1' => 'source_id_value_3', 'sourceid2' => 'source_id_value_4', - 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash(['source_id_property' => 'source_id_value_3', 'sourceid2' => 'source_id_value_4']), + 'source_ids_hash' => $this->getIdMap()->getSourceIdsHash(['source_id_property' => 'source_id_value_3', 'sourceid2' => 'source_id_value_4']), 'destid1' => 'destination_id_value_2', ] + $this->idMapDefaults(); $this->saveMap($row); @@ -419,7 +419,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $expected_result[] = "destination_id_value_$i"; $this->destinationIds["destination_id_property_$i"] = []; } - $row['source_ids_hash'] = $this->getIdMap()->getSourceIDsHash($source_id_values); + $row['source_ids_hash'] = $this->getIdMap()->getSourceIdsHash($source_id_values); $this->saveMap($row); $id_map = $this->getIdMap(); // Test for a valid hit. @@ -458,7 +458,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { 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); + $values['source_ids_hash'] = $this->getIdMap()->getSourceIdsHash($source_values); $this->saveMap($values); } @@ -517,6 +517,8 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $this->assertEquals([[101, 'en'], [101, 'fr'], [101, 'de']], $id_map->lookupDestinationIds(['nid' => 1])); $this->assertEquals([[102, 'en']], $id_map->lookupDestinationIds(['nid' => 2])); $this->assertEquals([], $id_map->lookupDestinationIds(['nid' => 99])); + $this->assertEquals([[101, 'en'], [101, 'fr'], [101, 'de']], $id_map->lookupDestinationIds(['nid' => 1, 'language' => NULL])); + $this->assertEquals([[102, 'en']], $id_map->lookupDestinationIds(['nid' => 2, 'language' => NULL])); // Out-of-order partial associative list. $this->assertEquals([[101, 'en'], [102, 'en']], $id_map->lookupDestinationIds(['language' => 'en'])); $this->assertEquals([[101, 'fr']], $id_map->lookupDestinationIds(['language' => 'fr'])); @@ -527,14 +529,14 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $this->fail('Too many source IDs should throw'); } catch (MigrateException $e) { - $this->assertEquals("Extra unknown items in source IDs", $e->getMessage()); + $this->assertEquals("Extra unknown items in source IDs: array (\n 0 => 3,\n)", $e->getMessage()); } try { $id_map->lookupDestinationIds(['nid' => 1, 'aaa' => '2']); $this->fail('Unknown source ID key should throw'); } catch (MigrateException $e) { - $this->assertEquals("Extra unknown items in source IDs", $e->getMessage()); + $this->assertEquals("Extra unknown items in source IDs: array (\n 'aaa' => '2',\n)", $e->getMessage()); } // Verify that we are looking up by source_id_hash when all source IDs are @@ -554,14 +556,14 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $row = [ 'sourceid1' => 'source_id_value_1', 'sourceid2' => 'source_id_value_2', - 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash(['source_id_property' => 'source_id_value_1']), + 'source_ids_hash' => $this->getIdMap()->getSourceIdsHash(['source_id_property' => 'source_id_value_1']), 'destid1' => 'destination_id_value_1', ] + $this->idMapDefaults(); $this->saveMap($row); $row = [ 'sourceid1' => 'source_id_value_3', 'sourceid2' => 'source_id_value_4', - 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash(['source_id_property' => 'source_id_value_3']), + 'source_ids_hash' => $this->getIdMap()->getSourceIdsHash(['source_id_property' => 'source_id_value_3']), 'destid1' => 'destination_id_value_2', ] + $this->idMapDefaults(); $this->saveMap($row); @@ -577,7 +579,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { } /** - * Data provider for testLookupSourceIDMapping(). + * Data provider for testLookupSourceIdMapping(). * * Scenarios to test (for both hits and misses) are: * - Single-value destination ID to single-value source ID. @@ -588,7 +590,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { * @return array * An array of data values. */ - public function lookupSourceIDMappingDataProvider() { + public function lookupSourceIdMappingDataProvider() { return [ [1, 1], [2, 2], @@ -605,9 +607,9 @@ class MigrateSqlIdMapTest extends MigrateTestCase { * @param int $num_destination_fields * Number of destination fields to test. * - * @dataProvider lookupSourceIDMappingDataProvider + * @dataProvider lookupSourceIdMappingDataProvider */ - public function testLookupSourceIDMapping($num_source_fields, $num_destination_fields) { + public function testLookupSourceIdMapping($num_source_fields, $num_destination_fields) { // Adjust the migration configuration according to the number of source and // destination fields. $this->sourceIds = []; @@ -629,14 +631,14 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $nonexistent_id_values["destination_id_property_$i"] = "nonexistent_destination_id_value_$i"; $this->destinationIds["destination_id_property_$i"] = []; } - $row['source_ids_hash'] = $this->getIdMap()->getSourceIDsHash($source_ids_values); + $row['source_ids_hash'] = $this->getIdMap()->getSourceIdsHash($source_ids_values); $this->saveMap($row); $id_map = $this->getIdMap(); // Test for a valid hit. - $source_id = $id_map->lookupSourceID($destination_id_values); + $source_id = $id_map->lookupSourceId($destination_id_values); $this->assertSame($expected_result, $source_id); // Test for a miss. - $source_id = $id_map->lookupSourceID($nonexistent_id_values); + $source_id = $id_map->lookupSourceId($nonexistent_id_values); $this->assertSame(0, count($source_id)); } @@ -765,7 +767,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { for ($i = 0; $i < 5; $i++) { $row = $this->idMapDefaults(); $row['sourceid1'] = "source_id_value_$i"; - $row['source_ids_hash'] = $this->getIdMap()->getSourceIDsHash(['source_id_property' => $row['sourceid1']]); + $row['source_ids_hash'] = $this->getIdMap()->getSourceIdsHash(['source_id_property' => $row['sourceid1']]); $row['destid1'] = "destination_id_value_$i"; $row['source_row_status'] = MigrateIdMapInterface::STATUS_IMPORTED; $this->saveMap($row); @@ -773,7 +775,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { for (; $i < 5 + $num_update_rows; $i++) { $row = $this->idMapDefaults(); $row['sourceid1'] = "source_id_value_$i"; - $row['source_ids_hash'] = $this->getIdMap()->getSourceIDsHash(['source_id_property' => $row['sourceid1']]); + $row['source_ids_hash'] = $this->getIdMap()->getSourceIdsHash(['source_id_property' => $row['sourceid1']]); $row['destid1'] = "destination_id_value_$i"; $row['source_row_status'] = MigrateIdMapInterface::STATUS_NEEDS_UPDATE; $this->saveMap($row); @@ -813,7 +815,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { for ($i = 0; $i < 5; $i++) { $row = $this->idMapDefaults(); $row['sourceid1'] = "source_id_value_$i"; - $row['source_ids_hash'] = $this->getIdMap()->getSourceIDsHash(['source_id_property' => $row['sourceid1']]); + $row['source_ids_hash'] = $this->getIdMap()->getSourceIdsHash(['source_id_property' => $row['sourceid1']]); $row['destid1'] = "destination_id_value_$i"; $row['source_row_status'] = MigrateIdMapInterface::STATUS_IMPORTED; $this->saveMap($row); @@ -821,7 +823,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { for (; $i < 5 + $num_error_rows; $i++) { $row = $this->idMapDefaults(); $row['sourceid1'] = "source_id_value_$i"; - $row['source_ids_hash'] = $this->getIdMap()->getSourceIDsHash(['source_id_property' => $row['sourceid1']]); + $row['source_ids_hash'] = $this->getIdMap()->getSourceIdsHash(['source_id_property' => $row['sourceid1']]); $row['destid1'] = "destination_id_value_$i"; $row['source_row_status'] = MigrateIdMapInterface::STATUS_FAILED; $this->saveMap($row); @@ -849,7 +851,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { $id_map->saveIdMapping($row, $destination, $status); $expected_results[] = [ 'sourceid1' => 'source_value_' . $status, - 'source_ids_hash' => $this->getIdMap()->getSourceIDsHash($source), + 'source_ids_hash' => $this->getIdMap()->getSourceIdsHash($source), 'destid1' => 'destination_value_' . $status, 'source_row_status' => $status, 'rollback_action' => MigrateIdMapInterface::ROLLBACK_DELETE, @@ -978,7 +980,7 @@ class MigrateSqlIdMapTest extends MigrateTestCase { for ($i = 0; $i < 3; $i++) { $row = $this->idMapDefaults(); $row['sourceid1'] = "source_id_value_$i"; - $row['source_ids_hash'] = $this->getIdMap()->getSourceIDsHash(['source_id_property' => $row['sourceid1']]); + $row['source_ids_hash'] = $this->getIdMap()->getSourceIdsHash(['source_id_property' => $row['sourceid1']]); $row['destid1'] = "destination_id_value_$i"; $row['source_row_status'] = MigrateIdMapInterface::STATUS_IMPORTED; $expected_results[serialize(['sourceid1' => $row['sourceid1']])] = ['destid1' => $row['destid1']]; @@ -1010,4 +1012,27 @@ class MigrateSqlIdMapTest extends MigrateTestCase { return $contents; } + /** + * Tests the delayed creation of the "map" and "message" migrate tables. + */ + public function testMapTableCreation() { + $id_map = $this->getIdMap(); + $map_table_name = $id_map->mapTableName(); + $message_table_name = $id_map->messageTableName(); + + // Check that tables names do exist. + $this->assertEquals('migrate_map_sql_idmap_test', $map_table_name); + $this->assertEquals('migrate_message_sql_idmap_test', $message_table_name); + + // Check that tables don't exist. + $this->assertFalse($this->database->schema()->tableExists($map_table_name)); + $this->assertFalse($this->database->schema()->tableExists($message_table_name)); + + $id_map->getDatabase(); + + // Check that tables do exist. + $this->assertTrue($this->database->schema()->tableExists($map_table_name)); + $this->assertTrue($this->database->schema()->tableExists($message_table_name)); + } + }