public void ConfigCollectionEvents() { IniConfigSource source = new IniConfigSource(); source.Configs.ConfigAdded += new ConfigEventHandler(source_configAdded); source.Configs.ConfigRemoved += new ConfigEventHandler(source_configRemoved); Assert.AreEqual(configAddedCount, 0); eventCollection = null; IConfig config = source.AddConfig("Test"); Assert.IsTrue(source.Configs == eventCollection); Assert.AreEqual(configAddedCount, 1); Assert.AreEqual("Test", eventConfig.Name); eventCollection = null; config = source.Configs.Add("Test 2"); Assert.IsTrue(source.Configs == eventCollection); Assert.AreEqual(configAddedCount, 2); Assert.AreEqual("Test 2", eventConfig.Name); eventCollection = null; source.Configs.RemoveAt(0); Assert.IsTrue(source.Configs == eventCollection); Assert.AreEqual(configAddedCount, 2); Assert.AreEqual("Test", eventConfig.Name); }
public void Reload() { string filePath = "Reload.ini"; // Create the original source file IniConfigSource source = new IniConfigSource(); 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); // Create another source file to set values and reload IniConfigSource newSource = new IniConfigSource(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 IniConfigSource source = new IniConfigSource(); IConfig config = source.AddConfig("Pets"); config.Set("dog", "rover"); config.Set("cat", "muffy"); source.Save(stream); stream.Close(); IniConfigSource newSource = new IniConfigSource(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 RemoveConfigAndKeyFromFile() { string filePath = "Test.ini"; StreamWriter writer = new StreamWriter(filePath); writer.WriteLine("[test 1]"); writer.WriteLine(" dog = Rover"); writer.WriteLine("[test 2]"); writer.WriteLine(" cat = Muffy"); writer.WriteLine(" lizard = Lizzy"); writer.Close(); IniConfigSource source = new IniConfigSource(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 IniConfigSource(filePath); Assert.IsNull(source.Configs["test 1"]); Assert.IsNotNull(source.Configs["test 2"]); Assert.IsNull(source.Configs["test 2"].Get("cat")); File.Delete(filePath); }
public void EmptyConstructor() { string filePath = "EmptyConstructor.ini"; IniConfigSource source = new IniConfigSource(); 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 IniConfigSource(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 Contains() { IniConfigSource source = new IniConfigSource(); IConfig config = source.AddConfig("Pets"); config.Set("cat", "Muffy"); config.Set("dog", "Rover"); Assert.IsTrue(config.Contains("cat")); Assert.IsTrue(config.Contains("dog")); config.Remove("cat"); Assert.IsFalse(config.Contains("cat")); Assert.IsTrue(config.Contains("dog")); }
public void SaveNewSection() { string filePath = "Test.xml"; StringWriter writer = new StringWriter(); writer.WriteLine("; some comment"); writer.WriteLine("[new section]"); writer.WriteLine(" dog = Rover"); writer.WriteLine(" cat = Muffy"); IniConfigSource source = new IniConfigSource (new StringReader(writer.ToString())); IConfig config = source.AddConfig("test"); Assert.IsNotNull(source.Configs["test"]); source.Save(filePath); source = new IniConfigSource(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 Rename() { IniConfigSource source = new IniConfigSource(); IConfig config = source.AddConfig("Pets"); config.Set("cat", "Muffy"); config.Set("dog", "Rover"); config.Name = "MyPets"; Assert.AreEqual("MyPets", config.Name); Assert.IsNull(source.Configs["Pets"]); IConfig newConfig = source.Configs["MyPets"]; Assert.AreEqual(config, newConfig); Assert.AreEqual(2, newConfig.GetKeys().Length); }
public void ConfigEvents() { IConfigSource source = new IniConfigSource(); IConfig config = source.AddConfig("Test"); config.KeySet += new ConfigKeyEventHandler(config_keySet); config.KeyRemoved += new ConfigKeyEventHandler(config_keyRemoved); // Set key events Assert.AreEqual(keySetCount, 0); config.Set("Test 1", "Value 1"); Assert.AreEqual(keySetCount, 1); Assert.AreEqual("Test 1", keyName); Assert.AreEqual("Value 1", keyValue); config.Set("Test 2", "Value 2"); Assert.AreEqual(keySetCount, 2); Assert.AreEqual("Test 2", keyName); Assert.AreEqual("Value 2", keyValue); // Remove key events Assert.AreEqual(keyRemovedCount, 0); config.Remove("Test 1"); Assert.AreEqual(keyRemovedCount, 1); Assert.AreEqual("Test 1", keyName); Assert.AreEqual("Value 1", keyValue); config.Remove("Test 2"); Assert.AreEqual(keyRemovedCount, 2); Assert.AreEqual("Test 2", keyName); Assert.AreEqual("Value 2", keyValue); }
public void ConfigSourceEvents() { string filePath = "EventTest.ini"; IniConfigSource source = new IniConfigSource(); source.Saved += new EventHandler(source_saved); source.Reloaded += new EventHandler(source_reloaded); Assert.IsNull(eventConfig); Assert.IsNull(eventSource); IConfig config = source.AddConfig("Test"); eventSource = null; Assert.AreEqual(savedCount, 0); source.Save(filePath); Assert.AreEqual(savedCount, 1); Assert.IsTrue(source == eventSource); eventSource = null; source.Save(); Assert.AreEqual(savedCount, 2); Assert.IsTrue(source == eventSource); eventSource = null; Assert.AreEqual(reloadedCount, 0); source.Reload(); Assert.AreEqual(reloadedCount, 1); Assert.IsTrue(source == eventSource); File.Delete(filePath); }
public void AddNewConfigsAndKeys() { // Add some new configs and keys here and test. StringWriter writer = new StringWriter(); writer.WriteLine("[Pets]"); writer.WriteLine(" cat = muffy"); writer.WriteLine(" dog = rover"); IniConfigSource source = new IniConfigSource (new StringReader(writer.ToString())); IConfig config = source.Configs["Pets"]; Assert.AreEqual("Pets", config.Name); Assert.AreEqual(2, config.GetKeys().Length); IConfig newConfig = source.AddConfig("NewTest"); newConfig.Set("Author", "Brent"); newConfig.Set("Birthday", "February 8th"); newConfig = source.AddConfig("AnotherNew"); Assert.AreEqual(3, source.Configs.Count); config = source.Configs["NewTest"]; Assert.IsNotNull(config); Assert.AreEqual(2, config.GetKeys().Length); Assert.AreEqual("February 8th", config.Get("Birthday")); Assert.AreEqual("Brent", config.Get("Author")); }
public void AddConfig() { StringWriter writer = new StringWriter(); writer.WriteLine("[Test]"); writer.WriteLine(" bool 1 = TrUe"); IniConfigSource source = new IniConfigSource (new StringReader(writer.ToString())); IConfig newConfig = source.AddConfig("NewConfig"); newConfig.Set("NewKey", "NewValue"); newConfig.Set("AnotherKey", "AnotherValue"); IConfig config = source.Configs["NewConfig"]; Assert.AreEqual(2, config.GetKeys().Length); Assert.AreEqual("NewValue", config.Get("NewKey")); Assert.AreEqual("AnotherValue", config.Get("AnotherKey")); }