public void Reload()
        {
            string          filePath = "Reload.xml";
            XmlConfigSource source   = new XmlConfigSource();

            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);

            XmlConfigSource newSource = new XmlConfigSource(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);
        }
        public void SaveToStream()
        {
            string     filePath = "SaveToStream.ini";
            FileStream stream   = new FileStream(filePath, FileMode.Create);

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

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

            XmlConfigSource newSource = new XmlConfigSource(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);
        }
        public void EmptyConstructor()
        {
            string          filePath = "EmptyConstructor.xml";
            XmlConfigSource source   = new XmlConfigSource();

            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 XmlConfigSource(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);
        }
        public void SaveNewSection()
        {
            string filePath = "Test.xml";

            StringWriter  textWriter = new StringWriter();
            XmlTextWriter writer     = NiniWriter(textWriter);

            WriteSection(writer, "new section");
            WriteKey(writer, "dog", "Rover");
            WriteKey(writer, "cat", "Muffy");
            writer.WriteEndDocument();

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(textWriter.ToString());
            doc.Save(filePath);

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

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

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

            File.Delete(filePath);
        }
        public void RemoveConfigAndKeyFromFile()
        {
            string filePath = "Test.xml";

            StreamWriter  xmlWriter = new StreamWriter(filePath);
            XmlTextWriter writer    = NiniWriter(xmlWriter);

            WriteSection(writer, "test 1");
            WriteKey(writer, "dog", "Rover");
            writer.WriteEndElement();
            WriteSection(writer, "test 2");
            WriteKey(writer, "cat", "Muffy");
            WriteKey(writer, "lizard", "Lizzy");
            writer.WriteEndDocument();
            xmlWriter.Close();

            XmlConfigSource source = new XmlConfigSource(filePath);

            Assert.IsNotNull(source.Configs["test 1"]);
            Assert.IsNotNull(source.Configs["test 2"]);
            Assert.IsNotNull(source.Configs["test 2"].Get("cat"));

            source.Configs.Remove(source.Configs["test 1"]);
            source.Configs["test 2"].Remove("cat");
            source.AddConfig("cause error");
            source.Save();

            source = new XmlConfigSource(filePath);
            Assert.IsNull(source.Configs["test 1"]);
            Assert.IsNotNull(source.Configs["test 2"]);
            Assert.IsNull(source.Configs["test 2"].Get("cat"));

            File.Delete(filePath);
        }
Esempio n. 6
0
        public void SaveToStream() {
            string filePath = "SaveToStream.ini";
            FileStream stream = new FileStream(filePath, FileMode.Create);

            // Create a new document and save to stream
            XmlConfigSource source = new XmlConfigSource();
            IConfig config = source.AddConfig("Pets");
            config.Set("dog", "rover");
            config.Set("cat", "muffy");
            source.Save(stream);
            stream.Close();

            XmlConfigSource newSource = new XmlConfigSource(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);
        }
Esempio n. 7
0
        public void Reload() {
            string filePath = "Reload.xml";
            XmlConfigSource source = new XmlConfigSource();

            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);

            XmlConfigSource newSource = new XmlConfigSource(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);
        }
Esempio n. 8
0
        public void EmptyConstructor() {
            string filePath = "EmptyConstructor.xml";
            XmlConfigSource source = new XmlConfigSource();

            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 XmlConfigSource(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);
        }
Esempio n. 9
0
        public void RemoveConfigAndKeyFromFile() {
            string filePath = "Test.xml";

            StreamWriter xmlWriter = new StreamWriter(filePath);
            XmlTextWriter writer = NiniWriter(xmlWriter);
            WriteSection(writer, "test 1");
            WriteKey(writer, "dog", "Rover");
            writer.WriteEndElement();
            WriteSection(writer, "test 2");
            WriteKey(writer, "cat", "Muffy");
            WriteKey(writer, "lizard", "Lizzy");
            writer.WriteEndDocument();
            xmlWriter.Close();

            XmlConfigSource source = new XmlConfigSource(filePath);
            Assert.IsNotNull(source.Configs["test 1"]);
            Assert.IsNotNull(source.Configs["test 2"]);
            Assert.IsNotNull(source.Configs["test 2"].Get("cat"));

            source.Configs.Remove(source.Configs["test 1"]);
            source.Configs["test 2"].Remove("cat");
            source.AddConfig("cause error");
            source.Save();

            source = new XmlConfigSource(filePath);
            Assert.IsNull(source.Configs["test 1"]);
            Assert.IsNotNull(source.Configs["test 2"]);
            Assert.IsNull(source.Configs["test 2"].Get("cat"));

            File.Delete(filePath);
        }
Esempio n. 10
0
        public void SaveNewSection() {
            string filePath = "Test.xml";

            StringWriter textWriter = new StringWriter();
            XmlTextWriter writer = NiniWriter(textWriter);
            WriteSection(writer, "new section");
            WriteKey(writer, "dog", "Rover");
            WriteKey(writer, "cat", "Muffy");
            writer.WriteEndDocument();

            XmlDocument doc = new XmlDocument();
            doc.LoadXml(textWriter.ToString());
            doc.Save(filePath);

            XmlConfigSource source = new XmlConfigSource(filePath);
            IConfig config = source.AddConfig("test");
            Assert.IsNotNull(source.Configs["test"]);
            source.Save();

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

            File.Delete(filePath);
        }