예제 #1
0
 /**
  * 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);
 }