public void IncludedChange() { string cfgMainFile = Path.GetTempFileName(); string cfgAdditionalFile = Path.GetTempFileName(); File.WriteAllText(cfgAdditionalFile, _xmlCfgAutoOrigin); File.WriteAllText(cfgMainFile, string.Format(_xmlCfgMain, cfgAdditionalFile)); var loader = new SettingsLoader(); loader.XmlFileBySection(); var loadResult = loader.LoadSettings(new XmlFileSettings(cfgMainFile)); var wait = new ManualResetEvent(false); var fileCheckers = FileChecker.TryCreate(loadResult.Sources).ToArray(); new FirstChange(fileCheckers).Changed += (s, e) => { wait.Set(); foreach (var fileChecker in fileCheckers) fileChecker.Dispose(); }; var t = Task.Factory.StartNew(() => { File.WriteAllText(cfgAdditionalFile, _xmlCfgAutoModify); }, TaskCreationOptions.LongRunning); Task.WaitAll(t); Assert.IsTrue(wait.WaitOne(10000), "10 sec elapsed"); }
public void IncludeInMiddle() { var loader = new SettingsLoader(); loader.XmlFileBySection(); var settings = loader .LoadSettings(XmlFileSettings.Create("Joining/AppDirectory/IncludeInMiddle.config".ResolveTestPath())) .Joined.ToAppSettings(); Assert.That(settings.LoadSections<AdditionalConfig>().Select(_ => _.F), Is.EquivalentTo(new[] { "InMainPre", "InAdditional", "InMainPost" })); }
public void RelativeInclude() { var loader = new SettingsLoader(); loader.XmlFileBySection(); var settings = loader .LoadSettings(XmlFileSettings.Create("Joining/AppDirectory/Deeper/RelativeInclude.config".ResolveTestPath())) .Joined.ToAppSettings(); Assert.That(settings.LoadSections<AdditionalConfig>().Select(_ => _.F), Is.EquivalentTo( new[] { "BeginMain", "BeginUpper", "InAdditional", "EndUpper", "EndMain" })); }
private static IAppSettings loadSettings(string file) { var loader = new SettingsLoader(); loader.XmlFileBySection(); loader.JsonFileBySection(); loader.IniFileBySection(); loader.Loaded += (s, e) => { Console.WriteLine("Loaded: {0} ({1})", e.Settings.GetType(), e.Settings.Identity); }; if (Path.GetExtension(file) == ".xml") return loader.LoadSettings(new XmlFileSettings(Path.Combine("Including".ResolveTestPath(), file))).Joined.ToAppSettings(); else return loader.LoadSettings(new JsonFileSettings(Path.Combine("Including".ResolveTestPath(), file))).Joined.ToAppSettings(); }
public void AutoCombineLoad() { var loader = new SettingsLoader(); loader.XmlFileBySection(); loader.Loaded += (s, e) => { Console.WriteLine("Loaded: {0} ({1})", e.Settings.GetType(), e.Settings.Identity); }; var settings = loader .LoadSettings(new XmlFileSettings("Examples/AppDirectory/autoMain.config".ResolveTestPath())) .Joined .ToAppSettings(); var cfg = settings.TryGet<ChildAutoCombinableConnectionConfig>(); Assert.IsNotNull(cfg); Assert.AreEqual("Server=localhost;Database=workDb;User ID=admin;Password=pass;Trusted_Connection=True;Connection Timeout=60", cfg.ConnectionString); }
public void Load() { var loader = new SettingsLoader(); loader.XmlFileBySection(); loader.Loaded += (s,e) => { Console.WriteLine("Loaded: {0} ({1})", e.Settings.GetType(), e.Settings.Identity); }; var settings = loader .LoadSettings(new XmlFileSettings("Examples/AppDirectory/main.config".ResolveTestPath())) .Joined .ToAppSettings(); var addCfg = settings.TryGet<ExampleCombineConfig>("AdditionalConfig"); Assert.IsNotNull(addCfg); Assert.AreEqual("InAppDirectory", addCfg.F); }
public void SecureLoad() { KeyManager.Create(); var providerLoader = new ProviderLoader(); var loader = new SettingsLoader(); loader.XmlFileBySection(); loader.Loaded += providerLoader.TryExtractConfigProtectedData; loader.Loaded += (s, e) => { Console.WriteLine("Loaded: {0} ({1})", e.Settings.GetType(), e.Settings.Identity); }; var settings = loader .LoadSettings(new XmlFileSettings("Examples/AppDirectory/secureMain.config".ResolveTestPath())) .Joined.ToAppSettings(); var addCfg = settings.TryGet<ExampleCombineConfig>("AdditionalConfig"); Assert.IsNotNull(addCfg); Assert.AreEqual("InUpDirectory", addCfg.F); Assert.AreEqual("Server=localhost;Database=workDb;User ID=admin;Password=pass;", settings.TryGet<ConnectionConfig>("MyExtConnection").ConnectionString); Assert.AreEqual("Server=localhost;Database=workDb;User ID=admin;Password=pass;", settings.TryGet<ConnectionConfig>("MySecuredConnection").ConnectionString); KeyManager.Delete(); }