示例#1
0
        public void SetAndSaveNormal()
        {
            RegistryConfigSource source = new RegistryConfigSource();

            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");

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

            Assert.AreEqual("Chi-chi", config.Get("cat"));
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual(5, config.GetInt("count"));

            config.Set("cat", "Muffy");
            config.Set("dog", "Spots");
            config.Set("DoesNotExist", "SomeValue");
            config.Set("count", 4);

            source.Save();

            source = new RegistryConfigSource();
            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");

            config = source.Configs["Pets"];
            Assert.AreEqual("Muffy", config.Get("cat"));
            Assert.AreEqual("Spots", config.Get("dog"));
            Assert.AreEqual("SomeValue", config.Get("DoesNotExist"));
            Assert.AreEqual(4, config.GetInt("count"));
        }
示例#2
0
        public void Flattened()
        {
            RegistryConfigSource source = new RegistryConfigSource();

            source.AddMapping(Registry.LocalMachine,
                              "Software\\NiniTestApp",
                              RegistryRecurse.Flattened);

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

            Assert.AreEqual("Configuration Library", config.Get("Description"));

            config = source.Configs["Pets"];
            Assert.AreEqual("Pets", config.Name);
            Assert.AreEqual(3, config.GetKeys().Length);
            Assert.AreEqual(source, config.ConfigSource);

            Assert.AreEqual("Chi-chi", config.Get("cat"));
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual(5, config.GetInt("count"));

            config.Set("cat", "Muffy");
            config.Set("dog", "Spots");
            config.Set("count", 4);

            source.Save();

            source = new RegistryConfigSource();
            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");

            config = source.Configs["Pets"];
            Assert.AreEqual("Muffy", config.Get("cat"));
            Assert.AreEqual("Spots", config.Get("dog"));
            Assert.AreEqual(4, config.GetInt("count"));
        }
示例#3
0
        public void RemoveKey()
        {
            RegistryConfigSource source = new RegistryConfigSource();

            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");

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

            Assert.AreEqual("Pets", config.Name);
            Assert.AreEqual(3, config.GetKeys().Length);
            Assert.AreEqual(source, config.ConfigSource);

            Assert.AreEqual("Chi-chi", config.Get("cat"));
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual(5, config.GetInt("count"));

            config.Remove("dog");

            source.Save();

            source = new RegistryConfigSource();
            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");

            config = source.Configs["Pets"];
            Assert.AreEqual("Pets", config.Name);
            Assert.AreEqual(2, config.GetKeys().Length);
            Assert.AreEqual(source, config.ConfigSource);

            Assert.AreEqual("Chi-chi", config.Get("cat"));
            Assert.IsNull(config.Get("dog"));
            Assert.AreEqual(5, config.GetInt("count"));
        }
示例#4
0
        public void Reload()
        {
            RegistryConfigSource source = new RegistryConfigSource();

            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");
            source.Configs["Pets"].Set("cat", "Muffy");
            source.Save();

            Assert.AreEqual(3, source.Configs["Pets"].GetKeys().Length);
            Assert.AreEqual("Muffy", source.Configs["Pets"].Get("cat"));

            RegistryConfigSource newSource = new RegistryConfigSource();

            newSource.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");
            Assert.AreEqual(3, newSource.Configs["Pets"].GetKeys().Length);
            Assert.AreEqual("Muffy", newSource.Configs["Pets"].Get("cat"));

            source = new RegistryConfigSource();
            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");
            source.Configs["Pets"].Set("cat", "Misha");
            source.Save();  // saves new value

            newSource.Reload();
            Assert.AreEqual(3, newSource.Configs["Pets"].GetKeys().Length);
            Assert.AreEqual("Misha", newSource.Configs["Pets"].Get("cat"));
        }
示例#5
0
        public void MergeAndSave()
        {
            RegistryConfigSource source = new RegistryConfigSource();

            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");

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

            Assert.AreEqual("Chi-chi", config.Get("cat"));
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual(5, config.GetInt("count"));

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

            source.Merge(iniSource);

            config = source.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 = source.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");

            source.Save();

            source = new RegistryConfigSource();
            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");

            config = source.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 = source.Configs["People"];
            Assert.IsNull(config);  // you cannot merge new sections

            /*
             * Assert.AreEqual (2, config.GetKeys ().Length);
             * Assert.AreEqual ("Tara", config.Get ("woman"));
             * Assert.AreEqual ("Quentin", config.Get ("man"));
             */
        }
示例#6
0
        public void AddConfigNoDefaultKey()
        {
            RegistryConfigSource source = new RegistryConfigSource();

            source.AddMapping(Registry.LocalMachine, "Software\\NiniTestApp\\Pets");

            IConfig config = source.AddConfig("People");
        }
        public void AddConfigNoDefaultKey()
        {
            var source = new RegistryConfigSource();

            source.AddMapping(Registry.LocalMachine, "Software\\Tests\\NiniTestApp\\Pets");

            Assert.Throws <ApplicationException>(() => source.AddConfig("People"));
        }
        public void AddConfig()
        {
            var source = new RegistryConfigSource();
            var key    = Registry.LocalMachine.OpenSubKey("Software\\Tests\\NiniTestApp", true);

            var config = source.AddConfig("People", key);

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

            source.Save();

            source = new RegistryConfigSource();
            source.AddMapping(Registry.LocalMachine, "Software\\Tests\\NiniTestApp\\People");

            Assert.AreEqual(1, source.Configs.Count);
            config = source.Configs["People"];
            Assert.AreEqual(2, config.GetKeys().Length);
            Assert.AreEqual("Tara", config.Get("woman"));
            Assert.AreEqual("Quentin", config.Get("man"));
        }
        public void Namespacing()
        {
            var source = new RegistryConfigSource();
            var key    = Registry.LocalMachine.OpenSubKey("Software\\Tests");

            source.AddMapping(key, "NiniTestApp",
                              RegistryRecurse.Namespacing);

            var config = source.Configs["NiniTestApp"];

            Assert.AreEqual("Configuration Library", config.Get("Description"));

            config = source.Configs["NiniTestApp\\Pets"];
            Assert.AreEqual("NiniTestApp\\Pets", config.Name);
            Assert.AreEqual(3, config.GetKeys().Length);
            Assert.AreEqual(source, config.ConfigSource);

            Assert.AreEqual("Chi-chi", config.Get("cat"));
            Assert.AreEqual("Rover", config.Get("dog"));
            Assert.AreEqual(5, config.GetInt("count"));

            config.Set("cat", "Muffy");
            config.Set("dog", "Spots");
            config.Set("count", 4);

            source.Save();

            source = new RegistryConfigSource();
            key    = Registry.LocalMachine.OpenSubKey("Software\\Tests");
            source.AddMapping(key, "NiniTestApp",
                              RegistryRecurse.Namespacing);

            config = source.Configs["NiniTestApp\\Pets"];
            Assert.AreEqual("Muffy", config.Get("cat"));
            Assert.AreEqual("Spots", config.Get("dog"));
            Assert.AreEqual(4, config.GetInt("count"));
        }
示例#10
0
        public void NonExistantKey()
        {
            RegistryConfigSource source = new RegistryConfigSource();

            source.AddMapping(Registry.LocalMachine, "Software\\Does\\NotExist");
        }
        public void NonExistantKey()
        {
            var source = new RegistryConfigSource();

            Assert.Throws <ArgumentException>(() => source.AddMapping(Registry.LocalMachine, "Software\\Tests\\Does\\NotExist"));
        }