Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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" }));
        }
Exemplo n.º 3
0
        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" }));
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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();
        }