/// <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; }
/// <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) { 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 (NFX.CodeAnalysis.Laconfig.LaconfigLanguage.Instance.FileExtensions.Any(e => string.Equals(e, format, StringComparison.InvariantCultureIgnoreCase))) { return(LaconicConfiguration.CreateFromString(content)); } if (NFX.CodeAnalysis.XML.XMLLanguage.Instance.FileExtensions.Any(e => string.Equals(e, format, StringComparison.InvariantCultureIgnoreCase))) { return(XMLConfiguration.CreateFromXML(content)); } if (NFX.CodeAnalysis.JSON.JSONLanguage.Instance.FileExtensions.Any(e => string.Equals(e, format, StringComparison.InvariantCultureIgnoreCase))) { return(JSONConfiguration.CreateFromJSON(content)); } throw new ConfigException(StringConsts.CONFIG_NO_PROVIDER_LOAD_FORMAT_ERROR + format); }
/// <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 NodeRename() { var conf = new NFX.Environment.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); conf.Root["A"].Name = "B"; Aver.AreEqual("B", conf.Root["B"].Name); }
public void ReadOnlyErrorOnNodeRename() { var conf = new NFX.Environment.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); conf.SetReadOnly(true); conf.Root.Name = "changed-name"; }
public void ReadOnlyErrorOnNodeDelete() { var conf = new NFX.Environment.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); conf.SetReadOnly(true); conf.Root["A"].Delete(); }
public void NodeCreate() { var conf = new NFX.Environment.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); Assert.AreEqual("A", conf.Root["A"].Name); }
public void RootDelete() { var conf = new NFX.Environment.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); Assert.AreEqual(true, conf.Root.Exists); conf.Root.Delete(); Assert.AreEqual(false, conf.Root.Exists); }
public void NodeDelete() { var conf = new NFX.Environment.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); conf.Root.AddChildNode("B", null).AddChildNode("B1"); conf.Root["A"].Delete(); Assert.AreEqual(false, conf.Root["A"].Exists); Assert.AreEqual(true, conf.Root["B"].Exists); conf.Root.ResetModified(); Assert.AreEqual(false, conf.Root["B"].Modified); conf.Root["B"]["B1"].Delete(); Assert.AreEqual(true, conf.Root["B"].Modified); }
public void NavigationAndValueAccessors() { var conf = new NFX.Environment.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); Assert.AreEqual(-1000, conf.Root["A"]["A.A"]["MARS"].ValueAsInt()); Assert.AreEqual(-1000, conf.Root[0][0][0].ValueAsInt()); Assert.AreEqual(789, conf.Root[1].ValueAsInt()); Assert.AreEqual(UriKind.RelativeOrAbsolute, conf.Root["URI"].ValueAsEnum <UriKind>()); Assert.AreEqual(UriKind.RelativeOrAbsolute, conf.Root["URI"].ValueAsEnum <UriKind>(UriKind.Absolute)); Assert.AreEqual(UriKind.RelativeOrAbsolute, conf.Root["NONENTITY"].ValueAsEnum <UriKind>(UriKind.RelativeOrAbsolute)); }
public void EmptySectionAndAttributeNodes() { var conf = new NFX.Environment.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null).AddChildNode("A.A", "haha!").AddAttributeNode("good", true); Assert.AreEqual("haha!", conf.Root["A"]["A.A"].Value); Assert.AreEqual(true, conf.Root["A"]["A.A"].Exists); Assert.AreEqual(true, conf.Root["A"]["A.A"].AttrByName("good").Exists); Assert.AreEqual(true, conf.Root["A"]["A.A"].AttrByIndex(0).Exists); Assert.AreEqual(false, conf.Root["A1"]["A.A"].Exists); Assert.AreEqual(false, conf.Root["A"]["A.A1"].Exists); Assert.AreEqual(false, conf.Root["A"]["A.A"].AttrByName("bad").Exists); Assert.AreEqual(false, conf.Root["A"]["A.A"].AttrByIndex(100).Exists); }
public void NavigationAndValueAccessors() { var conf = new NFX.Environment.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); Assert.AreEqual(-1000, conf.Root["A"]["A.A"]["MARS"].ValueAsInt()); Assert.AreEqual(-1000, conf.Root[0][0][0].ValueAsInt()); Assert.AreEqual(789, conf.Root[1].ValueAsInt()); Assert.AreEqual(UriKind.RelativeOrAbsolute, conf.Root["URI"].ValueAsEnum<UriKind>()); Assert.AreEqual(UriKind.RelativeOrAbsolute, conf.Root["URI"].ValueAsEnum<UriKind>(UriKind.Absolute)); Assert.AreEqual(UriKind.RelativeOrAbsolute, conf.Root["NONENTITY"].ValueAsEnum<UriKind>(UriKind.RelativeOrAbsolute)); }
public void NodeRename() { var conf = new NFX.Environment.JSONConfiguration(); conf.Create(); conf.Root.AddChildNode("A", null); conf.Root["A"].Name = "B"; Assert.AreEqual("B", conf.Root["B"].Name); }