/// <summary> /// Creates an instance of configuration initialized from JSON content passed as JsonDataMap /// </summary> public static JSONConfiguration CreateFromJson(JsonDataMap content) { var result = new JSONConfiguration(); result.read(content); return(result); }
/// <summary> /// Creates an instance of configuration initialized from JSON content passed as string /// </summary> public static JSONConfiguration CreateFromJson(string content) { var result = new JSONConfiguration(); result.readFromString(content); return(result); }
public void ReadOnlyErrorOnNodeDelete() { var conf = new Azos.Conf.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); conf.SetReadOnly(true); conf.Root["A"].Delete(); }
public void ReadOnlyErrorOnNodeRename() { var conf = new Azos.Conf.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); conf.SetReadOnly(true); conf.Root.Name = "changed-name"; }
public void NodeCreate() { var conf = new Azos.Conf.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); Aver.AreEqual("A", conf.Root["A"].Name); }
public void RootDelete() { var conf = new Azos.Conf.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); Aver.AreEqual(true, conf.Root.Exists); conf.Root.Delete(); Aver.AreEqual(false, conf.Root.Exists); }
public void NodeDelete() { var conf = new Azos.Conf.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); conf.Root.AddChildNode("B", null).AddChildNode("B1"); conf.Root["A"].Delete(); Aver.AreEqual(false, conf.Root["A"].Exists); Aver.AreEqual(true, conf.Root["B"].Exists); conf.Root.ResetModified(); Aver.AreEqual(false, conf.Root["B"].Modified); conf.Root["B"]["B1"].Delete(); Aver.AreEqual(true, conf.Root["B"].Modified); }
public void NavigationAndValueAccessors() { var conf = new Azos.Conf.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", 10).AddChildNode("A.A", 20); conf.Root.AddChildNode("B", 789); conf.Root.AddChildNode("URI", UriKind.RelativeOrAbsolute); conf.Root["A"]["A.A"].AddChildNode("MARS", -1000); Aver.AreEqual(-1000, conf.Root["A"]["A.A"]["MARS"].ValueAsInt()); Aver.AreEqual(-1000, conf.Root[0][0][0].ValueAsInt()); Aver.AreEqual(789, conf.Root[1].ValueAsInt()); Aver.IsTrue(UriKind.RelativeOrAbsolute == conf.Root["URI"].ValueAsEnum <UriKind>()); Aver.IsTrue(UriKind.RelativeOrAbsolute == conf.Root["URI"].ValueAsEnum <UriKind>(UriKind.Absolute)); Aver.IsTrue(UriKind.RelativeOrAbsolute == conf.Root["NONENTITY"].ValueAsEnum <UriKind>(UriKind.RelativeOrAbsolute)); }
public void EmptySectionAndAttributeNodes() { var conf = new Azos.Conf.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null).AddChildNode("A.A", "haha!").AddAttributeNode("good", true); Aver.AreEqual("haha!", conf.Root["A"]["A.A"].Value); Aver.AreEqual(true, conf.Root["A"]["A.A"].Exists); Aver.AreEqual(true, conf.Root["A"]["A.A"].AttrByName("good").Exists); Aver.AreEqual(true, conf.Root["A"]["A.A"].AttrByIndex(0).Exists); Aver.AreEqual(false, conf.Root["A1"]["A.A"].Exists); Aver.AreEqual(false, conf.Root["A"]["A.A1"].Exists); Aver.AreEqual(false, conf.Root["A"]["A.A"].AttrByName("bad").Exists); Aver.AreEqual(false, conf.Root["A"]["A.A"].AttrByIndex(100).Exists); }
/// <summary> /// Loads the supplied string content in the specified format, which may be format name like "xml" or "laconfig" with or without extension period /// </summary> public static Configuration ProviderLoadFromString(string content, string format, string fallbackFormat = null) { if (format.IsNullOrWhiteSpace()) { format = fallbackFormat; fallbackFormat = null; } if (format != null) { if (format.StartsWith(".")) { format = format.Remove(0, 1); } //since C# does not support first-class types, these if statements below must handle what AllSupportedFormat returns //in future Aum conversion replace with Dictionary<format, configType> lookup if (Azos.CodeAnalysis.Laconfig.LaconfigLanguage.Instance.FileExtensions.Any(e => string.Equals(e, format, StringComparison.InvariantCultureIgnoreCase))) { return(LaconicConfiguration.CreateFromString(content)); } if (Azos.CodeAnalysis.XML.XMLLanguage.Instance.FileExtensions.Any(e => string.Equals(e, format, StringComparison.InvariantCultureIgnoreCase))) { return(XMLConfiguration.CreateFromXML(content)); } if (Azos.CodeAnalysis.JSON.JsonLanguage.Instance.FileExtensions.Any(e => string.Equals(e, format, StringComparison.InvariantCultureIgnoreCase))) { return(JSONConfiguration.CreateFromJson(content)); } if (fallbackFormat.IsNotNullOrWhiteSpace()) { return(ProviderLoadFromString(content, fallbackFormat)); } } throw new ConfigException(StringConsts.CONFIG_NO_PROVIDER_LOAD_FORMAT_ERROR + format); }