public void TestEmptyJsonCfg() { var cfg = new AttributeCfg(@"{}"); Assert.AreEqual(1, cfg.Errors().Length); Assert.AreEqual("sites must be populated.", cfg.Errors()[0]); }
public void TestEmptySites() { var cfg = new AttributeCfg(@"<cfg><sites/></cfg>"); Assert.AreEqual(1, cfg.Errors().Length); Assert.AreEqual("sites must be populated in cfg.", cfg.Errors()[0]); }
public void TestNewJson() { var cfg = new AttributeCfg(@"{}"); Assert.IsNotNull(cfg); Assert.IsNotNull(cfg.Sites); Assert.AreEqual(0, cfg.Sites.Count); }
public void TestMultipleSites() { var xml = @"<cfg> <sites> <add name='google' url='http://www.google.com' something='<'/> <add name='github' url='http://www.github.com' numeric='x'/> <add name='stackoverflow' url='http://www.stackoverflow.com' numeric='7' /> <add name='github' url='http://www.anotherGitHub.com' something='this is a duplicate!' /> </sites> </cfg>".Replace("'", "\""); var parser = new NanoXmlParser(); var stopWatch = new Stopwatch(); stopWatch.Start(); var x = parser.Parse(xml); stopWatch.Stop(); Console.WriteLine("nano load ms:" + stopWatch.ElapsedMilliseconds); stopWatch.Restart(); var doc = XDocument.Parse(xml); stopWatch.Stop(); Console.WriteLine("xdoc parse ms:" + stopWatch.ElapsedMilliseconds); Assert.IsNotNull(x); Assert.IsNotNull(doc); var cfg = new AttributeCfg(xml); var problems = cfg.Errors(); foreach (var problem in problems) { Console.WriteLine(problem); } Assert.AreEqual(2, problems.Length); Assert.AreEqual("Could not set numeric to x inside sites item. Input string was not in a correct format.", problems[0]); Assert.AreEqual("Duplicate name value github in sites.", problems[1]); Assert.AreEqual(4, cfg.Sites.Count); Assert.AreEqual("google", cfg.Sites[0].Name); Assert.AreEqual("http://www.google.com", cfg.Sites[0].Url); Assert.AreEqual("<", cfg.Sites[0].Something); Assert.AreEqual(0, cfg.Sites[0].Numeric); Assert.AreEqual("github", cfg.Sites[1].Name); Assert.AreEqual("http://www.github.com", cfg.Sites[1].Url); Assert.AreEqual(7, cfg.Sites[2].Numeric); }
public void TestGetJsonDefaultOf() { var cfg = new AttributeCfg(@"{}"); Assert.IsNotNull(cfg); Assert.IsNotNull(cfg.Sites); Assert.AreEqual(0, cfg.Sites.Count); var sites = new AttributeSite(); Assert.IsNotNull(sites); Assert.IsNotNull(sites.Something); }
public void TestInvalidSiteAttribute() { var cfg = new AttributeCfg( @"<cfg> <sites> <add name='dale' invalid='true' /> </sites> </cfg>".Replace("'", "\"") ); var problems = cfg.Errors(); foreach (var problem in problems) { Console.WriteLine(problem); } Assert.AreEqual(2, problems.Length); Assert.AreEqual("A sites item contains an invalid invalid. It may only contain: name, url, something, numeric, common.", problems[0]); Assert.AreEqual("A sites item is missing url.", problems[1]); }
public void TestInvalidProcess() { var cfg = new AttributeCfg( @"<cfg> <sites> <add/> </sites> </cfg>" ); var problems = cfg.Errors(); Assert.AreEqual(2, problems.Length); foreach (var problem in problems) { Console.WriteLine(problem); } Assert.IsTrue(problems[0] == "A sites item is missing name."); Assert.IsTrue(problems[1] == "A sites item is missing url."); }