/// <summary> /// Load the configuration for the Application /// </summary> /// <param name="configSource"></param> /// <param name="defaultIniFile"></param> /// <returns></returns> private static IConfigSource Configuration(IConfigSource configSource, string defaultIniFile) { ConfigurationLoader m_configLoader = new ConfigurationLoader(); if(defaultIniFile != "") m_configLoader.defaultIniFile = defaultIniFile; return m_configLoader.LoadConfigSettings(configSource); }
public void IncludeTests() { const string mainIniFile = "OpenSimDefaults.ini"; m_config = new IniConfigSource(); // Create ini files in a directory structure IniConfigSource ini; IConfig config; ini = new IniConfigSource(); config = ini.AddConfig("IncludeTest"); config.Set("Include-absolute", "absolute/*/config/*.ini"); config.Set("Include-relative", "../" + m_testSubdirectory + "/relative/*/config/*.ini"); CreateIni(mainIniFile, ini); ini = new IniConfigSource(); ini.AddConfig("Absolute1").Set("name1", "value1"); CreateIni("absolute/one/config/setting.ini", ini); ini = new IniConfigSource(); ini.AddConfig("Absolute2").Set("name2", 2.3); CreateIni("absolute/two/config/setting1.ini", ini); ini = new IniConfigSource(); ini.AddConfig("Absolute2").Set("name3", "value3"); CreateIni("absolute/two/config/setting2.ini", ini); ini = new IniConfigSource(); ini.AddConfig("Relative1").Set("name4", "value4"); CreateIni("relative/one/config/setting.ini", ini); ini = new IniConfigSource(); ini.AddConfig("Relative2").Set("name5", true); CreateIni("relative/two/config/setting1.ini", ini); ini = new IniConfigSource(); ini.AddConfig("Relative2").Set("name6", 6); CreateIni("relative/two/config/setting2.ini", ini); // Prepare call to ConfigurationLoader.LoadConfigSettings() ConfigurationLoader cl = new ConfigurationLoader(); IConfigSource argvSource = new IniConfigSource(); EnvConfigSource envConfigSource = new EnvConfigSource(); argvSource.AddConfig("Startup").Set("inifile", mainIniFile); ConfigSettings configSettings; NetworkServersInfo networkInfo; OpenSimConfigSource source = cl.LoadConfigSettings(argvSource, envConfigSource, out configSettings, out networkInfo); // Remove default config config = source.Source.Configs["Startup"]; source.Source.Configs.Remove(config); config = source.Source.Configs["Network"]; source.Source.Configs.Remove(config); // Finally, we are able to check the result Assert.AreEqual(m_config.ToString(), source.Source.ToString(), "Configuration with includes does not contain all settings."); // The following would be preferable but fails due to a type mismatch which I am not able to resolve //CollectionAssert.AreEquivalent(m_config.Configs, source.Source.Configs, // String.Format("Configuration with includes does not contain all settings.\nAll settings:\n{0}\nSettings read:\n{1}", m_config, source.Source)); }