public void WritePrioritizeInnerXmlSpaceTest() { var root = new SavannahTagNode { TagName = "root", PrioritizeInnerXml = " aaaaaa\naa\n aaaa" }; var exp = new SavannahTagNode { TagName = "root", InnerText = " aaaaaa\naa\n aaaa", ChildNodes = new[] { new SavannahTextNode { InnerText = " aaaaaa\naa\n aaaa" }, } }; root.ResolvePrioritizeInnerXml(false); var xml = $"{SavannahXmlConstants.Declaration}\n{root}"; var data = Encoding.UTF8.GetBytes(xml); var stream = new MemoryStream(); stream.Write(data, 0, data.Length); stream.Position = 0; var reader = new SavannahXmlReader(stream); var node = reader.GetAllNodes(); Assert.AreEqual(exp, node); }
public void GetNodeTest() { var exp = new SavannahTagNode { TagName = "property", Attributes = new List <AttributeInfo> { new AttributeInfo { Name = "name", Value = "ServerName" }, new AttributeInfo { Name = "value", Value = "My Game Host" } }, ChildNodes = new[] { new SavannahTextNode { InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。" } }, InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。" }; var reader = new SavannahXmlReader(GetTestPath()); var firstNode = reader.GetNode("/ServerSettings/property[@name='ServerName']"); var SecondNode = reader.GetNode("/ServerSettings/property[@name='ServerName']"); Assert.AreEqual(exp, firstNode); Assert.AreEqual(exp, SecondNode); }
public void ReadCdataTest() { var reader = new SavannahXmlReader(GetTestPath("Cdata.xml")); var root = reader.GetAllNodes(); var exp = new SavannahTagNode { TagName = "root", ChildNodes = new[] { new SavannahTagNode { TagName = "tag", InnerText = "", ChildNodes = new[] { new SavannahCdataNode { InnerText = " <?xml version=\"1.0\"?>\n <document>\n doc.\n </document>", } } } } }; Assert.AreEqual(exp, root); }
public void DeclarationTest() { var exp = "version=\"1.0\" encoding=\"UTF-8\""; var reader = new SavannahXmlReader(GetTestPath()); var declaration = reader.Declaration; Assert.AreEqual(exp, declaration); }
public void WriteTestPrioritizeInnerXml() { var root = new SavannahTagNode { TagName = "root" }; var exp = new SavannahTagNode { TagName = "root", ChildNodes = new [] { new SavannahTagNode { TagName = "test", InnerText = "test\naaaa\nbbb", ChildNodes = new AbstractSavannahXmlNode[] { new SavannahTextNode { InnerText = "test" }, new SavannahTagNode { TagName = "br" }, new SavannahTextNode { InnerText = "aaaa" }, new SavannahTagNode { TagName = "br" }, new SavannahTextNode { InnerText = "bbb" } } } } }; root.PrioritizeInnerXml = "<test>test<br />aaaa<br />bbb</test>"; var writer = new SavannahXmlWriter("version=\"1.0\" encoding=\"UTF-8\""); using var ms = new MemoryStream(); writer.Write(ms, root); ms.Seek(0, SeekOrigin.Begin); var reader = new SavannahXmlReader(ms); var act = reader.GetAllNodes(); Assert.AreEqual(exp, act); }
public void GetValuesNotContainsTest() { var reader = new SavannahXmlReader(GetTestPath()); var attributes = reader.GetValues("/ServerSettings/test"); var exp = new List <string> { }; CollectionAssert.AreEqual(exp, attributes); }
public void GetValuesTest() { var reader = new SavannahXmlReader(GetTestPath()); var attributes = reader.GetValues("/ServerSettings/property"); var exp = new List <string> { "サーバー名を設定します。サーバーリストにはこの名前で表示されます。", "サーバー名を設定します。サーバーリストにはこの名前で表示されます。\n test", "サーバーの説明を設定します。", "サーバーのウェブサイトを設定します。" }; CollectionAssert.AreEqual(exp, attributes); }
public void GetAttributesTest() { var exp = new string[] { "ServerName", "ServerName2", "ServerDescription", "ServerWebsiteURL", "Nested", }; var reader = new SavannahXmlReader(GetTestPath()); var names = reader.GetAttributes("name", "/ServerSettings/property"); CollectionAssert.AreEqual(exp, names); }
public void ReadNamespaceElement() { var reader = new SavannahXmlReader(GetTestPath("Namespace.xml")); reader.AddNamespace("ns", "http://schemas.microsoft.com/developer/msbuild/2003"); reader.AddNamespace("test", "http://schemas.microsoft.com/developer/msbuild/2003"); var value = reader.GetValues("/ns:Project/ns:PropertyGroup/ns:TargetFrameworkVersion")?.Last(); var exp = "v4.8"; Assert.AreEqual(exp, value); var value2 = reader.GetValues("/ns:Project/ns:PropertyGroup/test:FileAlignment")?.Last(); var exp2 = "512"; Assert.AreEqual(exp2, value2); }
public void WriteTest2() { var root = new SavannahTagNode { TagName = "root", InnerText = "aaaaa", ChildNodes = new[] { new SavannahTextNode { InnerText = "bbbbb" } } }; var exp = new SavannahTagNode { TagName = "root", InnerText = "bbbbb", ChildNodes = new[] { new SavannahTextNode { InnerText = "bbbbb" } } }; var writer = new SavannahXmlWriter("version=\"1.0\" encoding=\"UTF-8\""); using var ms = new MemoryStream(); writer.Write(ms, root); ms.Seek(0, SeekOrigin.Begin); using var sr = new StreamReader(ms); var xml = sr.ReadToEnd(); ms.Seek(0, SeekOrigin.Begin); var reader = new SavannahXmlReader(ms); var act = reader.GetAllNodes(); Assert.AreEqual(exp, act); }
public void CommentTest() { var exp = new SavannahTagNode { TagName = "root", ChildNodes = new AbstractSavannahXmlNode[] { new SavannahCommentNode { InnerText = "Comment Test\nNew" }, new SavannahTagNode { TagName = "value", InnerText = "test", Attributes = new [] { new AttributeInfo { Name = "attr", Value = "value" }, new AttributeInfo { Name = "attr2", Value = "value2" } }, ChildNodes = new [] { new SavannahTextNode { InnerText = "test" } } }, } }; var reader = new SavannahXmlReader(GetTestPath("Comment.xml"), false); var node = reader.GetAllNodes(); Assert.AreEqual(exp, node); }
public void WriteTest3() { var root = new SavannahTagNode { TagName = "root", ChildNodes = new[] { new SavannahTagNode { TagName = "test", ChildNodes = new[] { new SavannahTagNode { TagName = "test", ChildNodes = new[] { new SavannahTextNode { InnerText = "bbbbb\naaaaa\nccccc" } } } } }, new SavannahTagNode { TagName = "vehicle", ChildNodes = new AbstractSavannahXmlNode[] { new SavannahTextNode { InnerText = "bbbbb\naaaaa\nccccc" }, new SavannahTagNode { TagName = "br", } } } } }; var exp = new SavannahTagNode { TagName = "root", ChildNodes = new[] { new SavannahTagNode { TagName = "test", ChildNodes = new[] { new SavannahTagNode { TagName = "test", InnerText = "bbbbb\naaaaa\nccccc", ChildNodes = new[] { new SavannahTextNode { InnerText = "bbbbb\naaaaa\nccccc" } } } } }, new SavannahTagNode { TagName = "vehicle", InnerText = "bbbbb\naaaaa\nccccc", ChildNodes = new AbstractSavannahXmlNode[] { new SavannahTextNode { InnerText = "bbbbb\naaaaa\nccccc" }, new SavannahTagNode { TagName = "br", } } } } }; var writer = new SavannahXmlWriter("version=\"1.0\" encoding=\"UTF-8\""); using var ms = new MemoryStream(); writer.Write(ms, root); ms.Seek(0, SeekOrigin.Begin); var reader = new SavannahXmlReader(ms); var act = reader.GetAllNodes(); Assert.AreEqual(exp, act); }
public void SpecifyIndentTest() { var exp = new SavannahTagNode { TagName = "ServerSettings", ChildNodes = new[] { new SavannahTagNode { TagName = "property", Attributes = new AttributeInfo[] { new AttributeInfo { Name = "name", Value = "ServerName" }, new AttributeInfo { Name = "value", Value = "My Game Host" } }, ChildNodes = new[] { new SavannahTextNode { InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。" } }, InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。" }, new SavannahTagNode { TagName = "property", Attributes = new AttributeInfo[] { new AttributeInfo { Name = "name", Value = "ServerName2" }, new AttributeInfo { Name = "value", Value = "My Game Host" } }, ChildNodes = new[] { new SavannahTextNode { InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。\n test" } }, InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。\n test" }, new SavannahTagNode { TagName = "property", Attributes = new AttributeInfo[] { new AttributeInfo { Name = "name", Value = "ServerDescription" }, new AttributeInfo { Name = "value", Value = "A 7 Days to Die server" } }, ChildNodes = new[] { new SavannahTextNode { InnerText = "サーバーの説明を設定します。" } }, InnerText = "サーバーの説明を設定します。" }, new SavannahTagNode { TagName = "property", Attributes = new AttributeInfo[] { new AttributeInfo { Name = "name", Value = "ServerWebsiteURL" }, new AttributeInfo { Name = "value", Value = "" } }, ChildNodes = new[] { new SavannahTextNode { InnerText = "サーバーのウェブサイトを設定します。" } }, InnerText = "サーバーのウェブサイトを設定します。" }, new SavannahTagNode { TagName = "property", Attributes = new AttributeInfo[] { new AttributeInfo { Name = "name", Value = "Nested" } }, ChildNodes = new[] { new SavannahTagNode { TagName = "property", Attributes = new AttributeInfo[] { new AttributeInfo { Name = "name", Value = "NestedElem" } }, ChildNodes = new[] { new SavannahTextNode { InnerText = "Value" } }, InnerText = "Value" } } } } }; var reader = new SavannahXmlReader(GetTestPath("Test_four_indent.xml")) { IndentSize = 4 }; var node = reader.GetAllNodes(); Assert.AreEqual(exp, node); }
public void GetNodesTest() { var exp = new AbstractSavannahXmlNode[] { new SavannahTagNode { TagName = "property", Attributes = new AttributeInfo[] { new AttributeInfo { Name = "name", Value = "ServerName" }, new AttributeInfo { Name = "value", Value = "My Game Host" } }, ChildNodes = new[] { new SavannahTextNode { InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。" } }, InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。" }, new SavannahTagNode { TagName = "property", Attributes = new AttributeInfo[] { new AttributeInfo { Name = "name", Value = "ServerName2" }, new AttributeInfo { Name = "value", Value = "My Game Host" } }, ChildNodes = new[] { new SavannahTextNode { InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。\n test" } }, InnerText = "サーバー名を設定します。サーバーリストにはこの名前で表示されます。\n test" }, }; var reader = new SavannahXmlReader(GetTestPath()); var firstNode = reader.GetNodes("/ServerSettings/property[contains(@name, 'ServerName')]"); var secondNode = reader.GetNodes("/ServerSettings/property[contains(@name, 'ServerName')]"); Assert.AreEqual(exp, firstNode); Assert.AreEqual(exp, secondNode); }