public void BasicMerge() { var conf1 = Azos.Conf.XMLConfiguration.CreateFromXML(xml1); var conf2 = Azos.Conf.XMLConfiguration.CreateFromXML(xml2); var conf3 = Azos.Conf.XMLConfiguration.CreateFromXML(xml4); var conf = new Azos.Conf.MemoryConfiguration(); conf.CreateFromMerge(conf1.Root, conf2.Root); var conf4 = new Azos.Conf.MemoryConfiguration(); conf4.CreateFromMerge(conf.Root, conf3.Root); Aver.AreEqual("Sub Value 1", conf.Root["section-a"]["sub1"].Value); Aver.AreEqual("Sub Value 2 ammended", conf.Root["section-a"]["sub2"].Value); Aver.AreEqual("Sub Value 3", conf.Root["section-a"]["sub3"].Value); Aver.AreEqual("CSVFile", conf.Root["section-a"].Children.FirstOrDefault(n => n.IsSameName("destination") && n.AttrByName("name").Value == "A").AttrByName("type").Value); Aver.AreEqual("Clock", conf.Root["section-a"].Children.FirstOrDefault(n => n.IsSameName("destination") && n.AttrByName("name").Value == "B").AttrByName("type").Value); Aver.AreEqual("SMTPMail", conf1.Root["section-a"].Children.FirstOrDefault(n => n.IsSameName("destination") && n.AttrByName("name").Value == "B").AttrByName("type").Value); Aver.IsTrue(conf4.Root["section-b"].AttrCount == 1); Aver.IsTrue(!conf4.Root["section-a"].Exists); }
public void MergeStop() { var conf1 = Azos.Conf.XMLConfiguration.CreateFromXML(xml1); var conf2 = Azos.Conf.XMLConfiguration.CreateFromXML(xml2); var conf = new Azos.Conf.MemoryConfiguration(); conf.CreateFromMerge(conf1.Root, conf2.Root); Aver.AreEqual("This can not be overridden and no exception will be thrown", conf.Root["section-d"].Value); Aver.AreEqual(1, conf.Root["section-d"].Attributes.Count()); Aver.IsTrue(OverrideSpec.Stop == NodeOverrideRules.Default.StringToOverrideSpec(conf.Root["section-d"].AttrByName("_override").Value)); }
public void ExpectOverrideException() { var conf1 = Azos.Conf.XMLConfiguration.CreateFromXML(xml1); var conf2 = Azos.Conf.XMLConfiguration.CreateFromXML(xml3); var conf = new Azos.Conf.MemoryConfiguration(); try { conf.CreateFromMerge(conf1.Root, conf2.Root); } catch (Exception error) { Console.WriteLine("Expected and got: " + error.Message); throw error; } }
public void Performance() { const int CNT = 10000; var conf1 = Azos.Conf.XMLConfiguration.CreateFromXML(largexml1); var conf2 = Azos.Conf.XMLConfiguration.CreateFromXML(largexml2); var clock = System.Diagnostics.Stopwatch.StartNew(); for (var i = 0; i < CNT; i++) { var conf = new Azos.Conf.MemoryConfiguration(); conf.CreateFromMerge(conf1.Root, conf2.Root); } clock.Stop(); Console.WriteLine("Config merge performance. Merged {0} times in {1} ms", CNT, clock.ElapsedMilliseconds); }
public void Performance() { const int CNT = 5000; var conf1 = Azos.Conf.XMLConfiguration.CreateFromXML(largexml1); var conf2 = Azos.Conf.XMLConfiguration.CreateFromXML(largexml2); var clock = System.Diagnostics.Stopwatch.StartNew(); for (var i = 0; i < CNT; i++) { var conf = new Azos.Conf.MemoryConfiguration(); conf.CreateFromMerge(conf1.Root, conf2.Root); } clock.Stop(); $"Config merge performance. Merged {CNT} times in {clock.ElapsedMilliseconds} ms".See(); Aver.IsTrue(clock.ElapsedMilliseconds < 7000);//completes on i7 < 1200ms for 5000 iterations }