Example #1
0
        public void Reload()
        {
            string             filePath = "ReloadDot.xml";
            DotNetConfigSource source   = new DotNetConfigSource();

            IConfig petConfig = source.AddConfig("Pets");

            petConfig.Set("cat", "Muffy");
            petConfig.Set("dog", "Rover");
            IConfig weatherConfig = source.AddConfig("Weather");

            weatherConfig.Set("skies", "cloudy");
            weatherConfig.Set("precipitation", "rain");
            source.Save(filePath);

            Assert.AreEqual(2, petConfig.GetKeys().Length);
            Assert.AreEqual("Muffy", petConfig.Get("cat"));
            Assert.AreEqual(2, source.Configs.Count);

            DotNetConfigSource newSource = new DotNetConfigSource(filePath);

            IConfig compareConfig = newSource.Configs["Pets"];

            Assert.AreEqual(2, compareConfig.GetKeys().Length);
            Assert.AreEqual("Muffy", compareConfig.Get("cat"));
            Assert.IsTrue(compareConfig == newSource.Configs["Pets"],
                          "References before are not equal");

            // Set the new values to source
            source.Configs["Pets"].Set("cat", "Misha");
            source.Configs["Pets"].Set("lizard", "Lizzy");
            source.Configs["Pets"].Set("hampster", "Surly");
            source.Configs["Pets"].Remove("dog");
            source.Configs.Remove(weatherConfig);
            source.Save();              // saves new value

            // Reload the new source and check for changes
            newSource.Reload();
            Assert.IsTrue(compareConfig == newSource.Configs["Pets"],
                          "References after are not equal");
            Assert.AreEqual(1, newSource.Configs.Count);
            Assert.AreEqual(3, newSource.Configs["Pets"].GetKeys().Length);
            Assert.AreEqual("Lizzy", newSource.Configs["Pets"].Get("lizard"));
            Assert.AreEqual("Misha", newSource.Configs["Pets"].Get("cat"));
            Assert.IsNull(newSource.Configs["Pets"].Get("dog"));

            File.Delete(filePath);
        }
Example #2
0
File: Editor.cs Project: psla/nini
        /// <summary>
        /// Creates a new config file.
        /// </summary>
        private void CreateNewFile()
        {
            string type = null;;

            if (IsArg("set-type"))
            {
                type = GetArg("set-type").ToLower();
            }
            else
            {
                ThrowError("You must supply a type (--set-type)");
            }

            switch (type)
            {
            case "ini":
                IniConfigSource iniSource = new IniConfigSource();
                iniSource.Save(configPath);
                break;

            case "xml":
                XmlConfigSource xmlSource = new XmlConfigSource();
                xmlSource.Save(configPath);
                break;

            case "config":
                DotNetConfigSource dotnetSource = new DotNetConfigSource();
                dotnetSource.Save(configPath);
                break;

            default:
                ThrowError("Unknown type");
                break;
            }
        }
Example #3
0
        public void SetAndSave()
        {
            string filePath = "Test.xml";

            XmlDocument doc = NiniDoc();

            AddSection(doc, "NewSection");
            AddKey(doc, "NewSection", "dog", "Rover");
            AddKey(doc, "NewSection", "cat", "Muffy");
            doc.Save(filePath);

            DotNetConfigSource source = new DotNetConfigSource(filePath);

            IConfig config = source.Configs["NewSection"];

            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Muffy", config.Get("cat"));

            config.Set("dog", "Spots");
            config.Set("cat", "Misha");
            config.Set("DoesNotExist", "SomeValue");

            Assert.AreEqual("Spots", config.Get("dog"));
            Assert.AreEqual("Misha", config.Get("cat"));
            Assert.AreEqual("SomeValue", config.Get("DoesNotExist"));
            source.Save();

            source = new DotNetConfigSource(filePath);
            config = source.Configs["NewSection"];
            Assert.AreEqual("Spots", config.Get("dog"));
            Assert.AreEqual("Misha", config.Get("cat"));
            Assert.AreEqual("SomeValue", config.Get("DoesNotExist"));

            File.Delete(filePath);
        }
Example #4
0
        public void SaveToStream()
        {
            string     filePath = "SaveToStream.ini";
            FileStream stream   = new FileStream(filePath, FileMode.Create);

            // Create a new document and save to stream
            DotNetConfigSource source = new DotNetConfigSource();
            IConfig            config = source.AddConfig("Pets");

            config.Set("dog", "rover");
            config.Set("cat", "muffy");
            source.Save(stream);
            stream.Close();

            DotNetConfigSource newSource = new DotNetConfigSource(filePath);

            config = newSource.Configs["Pets"];
            Assert.IsNotNull(config);
            Assert.AreEqual(2, config.GetKeys().Length);
            Assert.AreEqual("rover", config.GetString("dog"));
            Assert.AreEqual("muffy", config.GetString("cat"));

            stream.Close();

            File.Delete(filePath);
        }
Example #5
0
        public void EmptyConstructor()
        {
            string             filePath = "EmptyConstructor.xml";
            DotNetConfigSource source   = new DotNetConfigSource();

            IConfig config = source.AddConfig("Pets");

            config.Set("cat", "Muffy");
            config.Set("dog", "Rover");
            config.Set("bird", "Tweety");
            source.Save(filePath);

            Assert.AreEqual(3, config.GetKeys().Length);
            Assert.AreEqual("Muffy", config.Get("cat"));
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Tweety", config.Get("bird"));

            source = new DotNetConfigSource(filePath);
            config = source.Configs["Pets"];

            Assert.AreEqual(3, config.GetKeys().Length);
            Assert.AreEqual("Muffy", config.Get("cat"));
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Tweety", config.Get("bird"));

            File.Delete(filePath);
        }
Example #6
0
        public void SaveNewSection()
        {
            string filePath = "Test.xml";

            XmlDocument doc = NiniDoc();

            AddSection(doc, "NewSection");
            AddKey(doc, "NewSection", "dog", "Rover");
            AddKey(doc, "NewSection", "cat", "Muffy");
            doc.Save(filePath);

            DotNetConfigSource source = new DotNetConfigSource(filePath);
            IConfig            config = source.AddConfig("test");

            Assert.IsNotNull(source.Configs["test"]);
            source.Save();

            source = new DotNetConfigSource(filePath);
            config = source.Configs["NewSection"];
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Muffy", config.Get("cat"));
            Assert.IsNotNull(source.Configs["test"]);

            File.Delete(filePath);
        }
Example #7
0
        public void SaveToWriter()
        {
            string newPath = "TestNew.xml";

            XmlDocument doc = NiniDoc();

            AddSection(doc, "Pets");
            AddKey(doc, "Pets", "cat", "Muffy");
            AddKey(doc, "Pets", "dog", "Rover");

            DotNetConfigSource source =
                new DotNetConfigSource(DocumentToReader(doc));
            IConfig config = source.Configs["Pets"];

            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Muffy", config.Get("cat"));

            StreamWriter textWriter = new StreamWriter(newPath);

            source.Save(textWriter);
            textWriter.Close();              // save to disk

            source = new DotNetConfigSource(newPath);
            config = source.Configs["Pets"];
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Muffy", config.Get("cat"));

            File.Delete(newPath);
        }
Example #8
0
        public void SaveToNewPath()
        {
            string filePath = "Test.xml";
            string newPath  = "TestNew.xml";

            XmlDocument doc = NiniDoc();

            AddSection(doc, "Pets");
            AddKey(doc, "Pets", "cat", "Muffy");
            AddKey(doc, "Pets", "dog", "Rover");
            doc.Save(filePath);

            DotNetConfigSource source = new DotNetConfigSource(filePath);
            IConfig            config = source.Configs["Pets"];

            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Muffy", config.Get("cat"));

            source.Save(newPath);

            source = new DotNetConfigSource(newPath);
            config = source.Configs["Pets"];
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Muffy", config.Get("cat"));

            File.Delete(filePath);
            File.Delete(newPath);
        }
Example #9
0
        public void MergeAndSave()
        {
            string xmlFileName = "NiniConfig.xml";

            XmlDocument doc = NiniDoc();

            AddSection(doc, "Pets");
            AddKey(doc, "Pets", "cat", "Muffy");
            AddKey(doc, "Pets", "dog", "Rover");
            AddKey(doc, "Pets", "bird", "Tweety");
            doc.Save(xmlFileName);

            StringWriter writer = new StringWriter();

            writer.WriteLine("[Pets]");
            writer.WriteLine("cat = Becky");              // overwrite
            writer.WriteLine("lizard = Saurus");          // new
            writer.WriteLine("[People]");
            writer.WriteLine(" woman = Jane");
            writer.WriteLine(" man = John");
            IniConfigSource iniSource = new IniConfigSource
                                            (new StringReader(writer.ToString()));

            DotNetConfigSource xmlSource = new DotNetConfigSource(xmlFileName);

            xmlSource.Merge(iniSource);

            IConfig config = xmlSource.Configs["Pets"];

            Assert.AreEqual(4, config.GetKeys().Length);
            Assert.AreEqual("Becky", config.Get("cat"));
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Saurus", config.Get("lizard"));

            config = xmlSource.Configs["People"];
            Assert.AreEqual(2, config.GetKeys().Length);
            Assert.AreEqual("Jane", config.Get("woman"));
            Assert.AreEqual("John", config.Get("man"));

            config.Set("woman", "Tara");
            config.Set("man", "Quentin");

            xmlSource.Save();

            xmlSource = new DotNetConfigSource(xmlFileName);

            config = xmlSource.Configs["Pets"];
            Assert.AreEqual(4, config.GetKeys().Length);
            Assert.AreEqual("Becky", config.Get("cat"));
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual("Saurus", config.Get("lizard"));

            config = xmlSource.Configs["People"];
            Assert.AreEqual(2, config.GetKeys().Length);
            Assert.AreEqual("Tara", config.Get("woman"));
            Assert.AreEqual("Quentin", config.Get("man"));

            File.Delete(xmlFileName);
        }
Example #10
0
        public void SetFolder(string folder)
        {
            DotNetConfigSource source = new DotNetConfigSource();
            IConfig            cfg    = source.Configs["Config"];

            if (cfg == null)
            {
                cfg = source.Configs.Add("Config");
            }

            cfg.Set("ConfigFolder", folder);
            source.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
        }
Example #11
0
        private void bindButton_Click(object sender, EventArgs e)
        {
            string             configFile = Path.Combine("..", applicationList.SelectedItem + ".exe.config");
            string             configPath = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, configFile));
            DotNetConfigSource source     = new DotNetConfigSource(configPath);
            IConfig            cfg        = source.Configs["Config"];

            if (cfg == null)
            {
                cfg = source.Configs.Add("Config");
            }

            cfg.Set("ConfigFolder", "Configs/" + folderList.SelectedItem);
            source.Save(configPath);
        }