示例#1
0
        public void AutoChange()
        {
            string cfgFile = Path.GetTempFileName();

            File.WriteAllText(cfgFile, _xmlCfgAutoOrigin);

            var fileSettings = new XmlFileSettings(cfgFile);

            var wait = new ManualResetEvent(false);

            FileChecker.TryCreate(fileSettings).Changed += (a, e) =>
            {
                wait.Set();
            };

            var t = Task.Factory.StartNew(() =>
            {
                File.WriteAllText(cfgFile, _xmlCfgAutoModify);
            }, TaskCreationOptions.LongRunning);

            Task.WaitAll(t);

            Assert.IsTrue(wait.WaitOne(10000), "10 sec elapsed");

            var appSettings = new XmlFileSettings(cfgFile).ToAppSettings();

            Assert.That(appSettings.First <ExampleCombineConfig>("AdditionalConfig").F, Is.EqualTo("Modify"));
        }
        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 BaseInclude()
        {
            var loader = new SettingsLoader();

            loader.XmlFileBySection();

            var settings = loader
                           .LoadSettings(XmlFileSettings.Create("Joining/AppDirectory/Deeper/BaseInclude.config".ResolveTestPath()))
                           .Joined.ToAppSettings();

            Assert.That(settings.LoadSections <AdditionalConfig>().Select(_ => _.F), Is.EquivalentTo(
                            new[] { "BeginMain", "BeginUpper", "InDeeperAdditional", "InAdditional", "EndUpper", "EndMain" }));
        }
示例#4
0
        protected override void AddPlugins(ItemModel source, Endpoint endpoint)
        {
            //
            //create the plugin
            var settings = new XmlFileSettings();

            //
            //populate the plugin using values from the item
            settings.XmlRoot =
                base.GetStringValue(source, XmlFileEndpointItemModel.XmlRoot);
            settings.Path =
                base.GetStringValue(source, XmlFileEndpointItemModel.Path);
            //
            //add the plugin to the endpoint
            endpoint.Plugins.Add(settings);
        }
示例#5
0
 public RohamConfigs(XmlFileSettings xmlFileSettings)
 {
     Objects.Requires(xmlFileSettings != null, () => new NullReferenceException(nameof(XmlFileSettings)));
     _xmlFileSettings = xmlFileSettings;
 }