/** * Test migrating settings. */ public function test_migrate_settings() { global $DB; $oldcomponent = 'oldcomponent'; $newcomponent = 'newcomponent'; // A setting present in old not present in new. $setting = new \stdClass(); $setting->plugin = $oldcomponent; $setting->name = 'configname1'; $setting->value = 'valuefromold1'; $DB->insert_record('config_plugins', $setting); // A setting present in old and new. $setting = new \stdClass(); $setting->plugin = $oldcomponent; $setting->name = 'configname2'; $setting->value = 'valuefromold2'; $DB->insert_record('config_plugins', $setting); $setting = new \stdClass(); $setting->plugin = $newcomponent; $setting->name = 'configname2'; $setting->value = 'valuefromnew2'; $DB->insert_record('config_plugins', $setting); // Version settings. $setting = new \stdClass(); $setting->plugin = $oldcomponent; $setting->name = 'version'; $setting->value = 20130213; $DB->insert_record('config_plugins', $setting); $setting = new \stdClass(); $setting->plugin = $newcomponent; $setting->name = 'version'; $setting->value = 20140213; $DB->insert_record('config_plugins', $setting); $migrator = new \local_eliscore\install\migration\migrator($oldcomponent, $newcomponent); $migrator->migrate_settings(); // There should be no old config records present. $this->assertEmpty($DB->get_records('config_plugins', array('plugin' => $oldcomponent))); // Assert value only present in old component was migrated. $rec = $DB->get_record('config_plugins', array('plugin' => $newcomponent, 'name' => 'configname1')); $this->assertNotEmpty($rec); $this->assertEquals('valuefromold1', $rec->value); // Assert value present in old and new components is set to value from old component. $rec = $DB->get_record('config_plugins', array('plugin' => $newcomponent, 'name' => 'configname2')); $this->assertNotEmpty($rec); $this->assertEquals('valuefromold2', $rec->value); // Assert new component version config was not touched. $rec = $DB->get_record('config_plugins', array('plugin' => $newcomponent, 'name' => 'version')); $this->assertNotEmpty($rec); $this->assertEquals(20140213, $rec->value); }