public void TestConfTree_Clone_Modify_Save() { ConfTree conf1 = Builder.Generate(new Dictionary <string, string> { { "Item1", "Value1" }, { "Item2", "Value2" }, }, "DictionaryConf"); Builder.Xml.Save(conf1, $"{GlobalVar.ResultPath}/Conf.xml"); GlobalVar.Log.Debug(conf1.ShowAll()); ConfTree conf2 = conf1.Clone("new") as ConfTree; Builder.Xml.Save(conf2 as ConfTree); conf1["Item1"] = "Value3"; Builder.Xml.Save(conf1 as ConfTree); Debug.WriteLine(conf2.ToString()); conf2["Item2"] = "Value4"; Builder.Xml.Save(conf2 as ConfTree); ConfTree readback = Builder.Xml.Generate($"{GlobalVar.ResultPath}/Conf.xml"); Debug.WriteLine(readback.ToString()); JbAssert.Equal(readback["Default:Item1"], "Value3"); JbAssert.Equal(readback["Default:Item2"], "Value2"); JbAssert.Equal(readback["new:Item1"], "Value1"); JbAssert.Equal(readback["new:Item2"], "Value4"); }
public void TestConfTree_Clone_SaveToDiffFile() { ConfTree conf1 = Builder.Generate(new Dictionary <string, string> { { "Item1", "Value1" }, { "Item2", "Value2" }, }, "DictionaryConf"); Assert.IsTrue(conf1.XmlDoc == null); Builder.Xml.Save(conf1, $"{GlobalVar.ResultPath}/Conf1.xml"); JbAssert.PathEqual((conf1.XmlDoc as XmlDocument).BaseURI, $"file:///{GlobalVar.ResultPath}/Conf1.xml"); var conf2 = conf1.Clone("new"); Debug.WriteLine(conf2.ToString()); Assert.IsTrue((conf2 as ConfTree).XmlDoc == null); Builder.Xml.Save(conf2 as ConfTree, $"{GlobalVar.ResultPath}/Conf2.xml"); JbAssert.PathEqual(((conf2 as ConfTree).XmlDoc as XmlDocument).BaseURI, $"file:///{GlobalVar.ResultPath}/Conf2.xml"); ConfTree conf = new ConfTree("DictionaryConf"); conf.Add(conf1); conf.Add(conf2); Debug.WriteLine(conf.ToString()); Builder.Xml.Save(conf as ConfTree, $"{GlobalVar.ResultPath}/Conf.xml"); JbAssert.PathEqual(((conf as ConfTree).XmlDoc as XmlDocument).BaseURI, $"file:///{GlobalVar.ResultPath}/Conf.xml"); var conf4 = conf.Clone("conf4"); ConfTree super = new ConfTree("SuperConf"); super.Add(conf); super.Add(conf4); Builder.Xml.Save(super, $"{GlobalVar.ResultPath}/Super.xml"); JbAssert.PathEqual(((super as ConfTree).XmlDoc as XmlDocument).BaseURI, $"file:///{GlobalVar.ResultPath}/Super.xml"); }
public void TestConfMgmt_AddNewConf() { ConfMgmt.Generate($@"{GlobalVar.SamplePath}/ConfigFiles"); var conf = ConfMgmt.GetTree("SystemSetting"); GlobalVar.Log.Debug(conf.ShowAll()); Assert.ThrowsException <Exception>(() => { var result = conf["new:DutsCount"]; }); var newconf = conf.Find("System").Clone("new") as ConfTree; newconf["DutsCount"] = "20"; Builder.Xml.Save(newconf as ConfTree); //restore ConfMgmt.Clear(); ConfMgmt.Generate($@"{GlobalVar.SamplePath}/ConfigFiles"); conf = ConfMgmt.GetTree("SystemSetting"); JbAssert.Equal(conf["DutsCount"], "40"); JbAssert.Equal(conf["new:DutsCount"], "20"); conf.XmlDoc.RemoveNode(conf.Find("DutsCount", new List <string>() { "new" }).Path); conf.XmlDoc.Save($@"{GlobalVar.SamplePath}/ConfigFiles/Configs/SystemSetting.xml"); }
public void TestConfTreeFind_Conflict() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/MultiLevel.xml"); GlobalVar.Log.Debug(conf.ShowAll()); JbAssert.Equal(conf[@"Level1/Item"], "1.0"); JbAssert.Equal(conf[@"Level1/Item1"], "1.1"); JbAssert.Equal(conf[@"Level2/Item"], "2.0"); JbAssert.Equal(conf[@"Level2/Item2"], "2.1"); JbAssert.Equal(conf[@"Level2/Item22"], "2.2"); JbAssert.Equal(conf[@"Level1/Level2/Item"], "2.0"); JbAssert.Equal(conf[@"Level1/Level2/Item2"], "2.1"); JbAssert.Equal(conf[@"Level1/Level2/Item22"], "2.2"); JbAssert.Equal(conf[@"Level3/Item"], "3.0"); JbAssert.Equal(conf[@"Level3/Item3"], "3.1"); JbAssert.Equal(conf[@"Level2/Level3/Item"], "3.0"); JbAssert.Equal(conf[@"Level2/Level3/Item3"], "3.1"); JbAssert.Equal(conf[@"Level1/Level2/Level3/Item"], "3.0"); JbAssert.Equal(conf[@"Level1/Level2/Level3/Item3"], "3.1"); JbAssert.Equal(conf[@"Level4/Item"], "4.0"); JbAssert.Equal(conf.FindStrict("Item", null, false).Value, "1.0"); JbAssert.Equal(conf.FindStrict(@"Level1/Item").Value, "1.0"); Assert.ThrowsException <Exception>(() => { conf.FindStrict("Item"); }); }
public void TestBuild_Xml_Tag_FindItem() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/Tag.xml"); JbAssert.Equal(conf[@"Default:Item1"], "0"); JbAssert.Equal(conf[@"Tag1:Item1"], "1.1"); JbAssert.Equal(conf[@"Tag2:Item1"], "2.1"); }
public void TestBuild_Xml_Tag() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/Tag.xml"); Debug.WriteLine(conf.ToString()); JbAssert.Equal(conf[@"Default:Func/Item1"], "0"); JbAssert.Equal(conf[@"Tag1:Func/Item1"], "1.1"); JbAssert.Equal(conf[@"Tag2:Func/Item1"], "2.1"); }
public void TestBuild_Xml_Attribute() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/Attribute.xml"); Debug.WriteLine(conf.ToString()); JbAssert.Equal(conf[@"CW/Ith.Min"], "0"); JbAssert.Equal(conf[@"CW/Ith.Max"], "10000"); }
public void TestBuild_Xml_SameItemName() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/SameItemName.xml"); Debug.WriteLine(conf.ToString()); JbAssert.Equal(conf[@"Function1/Item1"], "Value1"); JbAssert.Equal(conf[@"Function2/Item1"], "Func2-1"); JbAssert.Equal(conf[@"Function3/Item1"], "Func3-1"); }
public void TestBuild_Xml_MultiTagWithDefault() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/MultiTagWithDefault.xml"); Debug.WriteLine(conf.ToString()); JbAssert.Equal(conf[@"T1.1:Item1"], "1.1.1.1"); JbAssert.Equal(conf[@"T1.2:Item1"], "1.2.2.1"); JbAssert.Equal(conf[@"T1.2.1:Item1"], "1.2.1.3"); }
public void TestBuild_Xml_MultiLevel_SameItemName() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/MultiLevel.xml"); Debug.Write(conf); JbAssert.Equal(conf[@"Level1/Item"], "1.0"); JbAssert.Equal(conf[@"Level2/Item"], "2.0"); JbAssert.Equal(conf[@"Level3/Item"], "3.0"); JbAssert.Equal(conf[@"Level4/Item"], "4.0"); }
public void TestConfMgmt_Getter() { ConfMgmt.Generate($@"{GlobalVar.SamplePath}/ConfigFiles"); JbAssert.Equal(ConfMgmt.GetItem("K7001_Adr"), "7"); JbAssert.Equal(ConfMgmt.GetItem("Equipments/K7001_Adr"), "7"); //暂不支持冲突检测 //Assert.ThrowsException<Exception>(() => { var result = ConfMgmt.Item("Channel1"); }); JbAssert.Equal(ConfMgmt.GetItem("ChannelSettings/Channel1"), "1!1"); JbAssert.Equal(ConfMgmt.GetItem("RSettings/Channel1"), "0.5"); }
public void TestBuild_Xml_CheckPath() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/Basic.xml"); JbAssert.Equal(conf.Find("Item1").Path, "/Basic(Basic)/Function1"); JbAssert.Equal(conf.Find("Item2").Path, "/Basic(Basic)/Function1"); JbAssert.Equal(conf.Find("Item3").Path, "/Basic(Basic)/Function2"); JbAssert.Equal(conf.Find("Item4").Path, "/Basic(Basic)/Function2"); JbAssert.Equal(conf.Find("Item5").Path, "/Basic(Basic)"); conf["Item1"] = "Value5"; JbAssert.Equal(conf.Find("Item1").Path, "/Basic(Basic)/Function1"); }
public void TestBuild_Xml_Attribute_Modify() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/Attribute.xml"); JbAssert.Equal(conf[@"CW/Ith.Min"], "0"); Debug.WriteLine(conf.ToString()); conf[@"Specs/Spec/CW/Ith.Min"] = "1"; Builder.Xml.Save(conf, $@"{GlobalVar.ResultPath}/Attribute.xml"); conf = Builder.Xml.Generate($@"{GlobalVar.ResultPath}/Attribute.xml"); JbAssert.Equal(conf[@"CW/Ith.Min"], "1"); }
public void TestBuild_Dictionary_Save() { ConfTree conf = Builder.Generate(new Dictionary <string, string> { { "Item1", "Value1" }, { "Item2", "Value2" }, }, "DictConf1"); Assert.IsTrue(conf["Item1"] == "Value1"); Assert.IsTrue(conf["Item2"] == "Value2"); JbAssert.Equal(conf.Find("Item1").Path, "/DictConf1(Default)"); JbAssert.Equal(conf.Find("Item2").Path, "/DictConf1(Default)"); Builder.Xml.Save(conf, $@"{GlobalVar.ResultPath}/DictConf1.xml"); }
public void TestConfMgmt_Setter_NoConflict() { FileOp.RmDir(GlobalVar.ResultPath); FileOp.CopyDir($@"{GlobalVar.SamplePath}/ConfigFiles", GlobalVar.ResultPath); ConfMgmt.Clear(); ConfMgmt.Generate(GlobalVar.ResultPath); JbAssert.Equal(ConfMgmt.GetItem("K7001_Adr"), "7"); ConfMgmt.SetItem("K7001_Adr", "0"); ConfMgmt.Save(); ConfMgmt.Clear(); ConfMgmt.Generate(GlobalVar.ResultPath); JbAssert.Equal(ConfMgmt.GetItem("K7001_Adr"), "0"); }
public void TestBuild_Xml_MultiLevel() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/MultiLevel.xml"); conf.Save($@"{GlobalVar.ResultPath}\root.xml"); JbAssert.Equal(conf["Item1"], "1.1"); JbAssert.Equal(conf[@"Level1/Item1"], "1.1"); JbAssert.Equal(conf[@"MultiLevel/Level1/Item1"], "1.1"); JbAssert.Equal(conf["Item2"], "2.1"); JbAssert.Equal(conf[@"Level2/Item2"], "2.1"); JbAssert.Equal(conf[@"MultiLevel/Level1/Level2/Item2"], "2.1"); JbAssert.Equal(conf["Item22"], "2.2"); JbAssert.Equal(conf["Item3"], "3.1"); JbAssert.Equal(conf[@"Level3/Item3"], "3.1"); JbAssert.Equal(conf[@"MultiLevel/Level1/Level2/Level3/Item3"], "3.1"); }
public void TestConfMgmt_Modify() { ConfMgmt.Generate($@"{GlobalVar.SamplePath}/ConfigFiles"); var conf = ConfMgmt.GetTree("SystemSetting"); conf["DutsCount"] = "0"; ConfMgmt.Save(); conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/ConfigFiles/Configs/SystemSetting.xml"); JbAssert.Equal(conf["DutsCount"], "0"); //restore ConfMgmt.Clear(); ConfMgmt.Generate($@"{GlobalVar.SamplePath}/ConfigFiles"); conf = ConfMgmt.GetTree("SystemSetting"); conf["DutsCount"] = "40"; ConfMgmt.Save(); conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/ConfigFiles/Configs/SystemSetting.xml"); JbAssert.Equal(conf["DutsCount"], "40"); }
public void TestBuild_Xml_Build_Modify_Save() { ConfTree conf = Builder.Xml.Generate($@"{GlobalVar.SamplePath}/Basic.xml"); JbAssert.Equal(conf["Item1"], "Value1"); JbAssert.Equal(conf["Item2"], "Value2"); JbAssert.Equal(conf["Item3"], "Value3"); JbAssert.Equal(conf["Item4"], "Value4"); JbAssert.Equal(conf["Item5"], "Value5"); JbAssert.Equal(conf["Item6"], ""); conf["Item1"] = "Value5"; JbAssert.Equal(conf["Item1"], "Value5"); Builder.Xml.Save(conf, $@"{GlobalVar.ResultPath}/BasicResult.xml"); //conf.Save(); GlobalVar.Initialize(ConfMgmt); conf = Builder.Xml.Generate($@"{GlobalVar.ResultPath}/BasicResult.xml"); JbAssert.Equal(conf["Item1"], "Value5"); JbAssert.Equal(conf["Item2"], "Value2"); JbAssert.Equal(conf["Item3"], "Value3"); JbAssert.Equal(conf["Item4"], "Value4"); }