using System.Linq; using System.Text; using System.Threading.Tasks; using Util.Helpers; using Xunit; using Xunit.Abstractions; namespace Util.Tests.Helpers; /// /// Xml操作测试 /// public class XmlTest { /// /// 输出工具 /// private readonly ITestOutputHelper _output; /// /// Xml操作 /// private readonly Xml _xml; /// /// 测试初始化 /// public XmlTest( ITestOutputHelper output ) { _output = output; _xml = new Xml(); } /// /// 测试添加节点 /// [Fact] public void TestAddNode_1() { //结果 var result = new StringBuilder(); result.Append( "" ); result.Append( "1" ); result.Append( "" ); //操作 _xml.AddNode( "a", "1" ); //验证 Assert.Equal( result.ToString(), _xml.ToString() ); //输出结果 _output.WriteLine( _xml.ToString() ); } /// /// 测试添加节点 - 父子节点 /// [Fact] public void TestAddNode_2() { //结果 var result = new StringBuilder(); result.Append( "" ); result.Append( "" ); result.Append( "2" ); result.Append( "" ); result.Append( "" ); //操作 var parent = _xml.AddNode( "a" ); _xml.AddNode( "b", "2", parent ); //验证 Assert.Equal( result.ToString(), _xml.ToString() ); //输出结果 _output.WriteLine( _xml.ToString() ); } /// /// 测试添加注释类型节点 /// [Fact] public void TestAddCDataNode_1() { //结果 var result = new StringBuilder(); result.Append( "" ); result.Append( "" ); result.Append( "" ); //操作 _xml.AddCDataNode( "1" ); //验证 Assert.Equal( result.ToString(), _xml.ToString() ); //输出结果 _output.WriteLine( _xml.ToString() ); } /// /// 测试添加注释类型节点 - 父节点 /// [Fact] public void TestAddCDataNode_2() { //结果 var result = new StringBuilder(); result.Append( "" ); result.Append( "" ); result.Append( "" ); result.Append( "" ); result.Append( "" ); //操作 var parent = _xml.AddNode( "a" ); _xml.AddCDataNode( "1", parent ); //验证 Assert.Equal( result.ToString(), _xml.ToString() ); //输出结果 _output.WriteLine( _xml.ToString() ); } /// /// 测试添加注释类型节点 - 父节点 - 通过设置字符串父节点名称 /// [Fact] public void TestAddCDataNode_3() { //结果 var result = new StringBuilder(); result.Append( "" ); result.Append( "" ); result.Append( "" ); result.Append( "" ); result.Append( "" ); //操作 _xml.AddCDataNode( "1", "a" ); //验证 Assert.Equal( result.ToString(), _xml.ToString() ); //输出结果 _output.WriteLine( _xml.ToString() ); } /// /// xml字符串转换为XElement列表 /// [Fact] public void TestToElements_1() { //输入 var input = new StringBuilder(); input.Append( "" ); input.Append( "1" ); input.Append( "2" ); input.Append( "" ); //操作 var elements = Xml.ToElements( input.ToString() ); var element = elements.FirstOrDefault( t => t.Name == "b"); //验证 Assert.Equal( "2",element?.Value ); } /// /// xml字符串转换为XElement列表 /// [Fact] public void TestToElements_2() { //输入 var input = new StringBuilder(); input.Append( "" ); input.Append( "1" ); input.Append( "2" ); input.Append( "" ); input.Append( "" ); input.Append( "" ); input.Append( "" ); //操作 var elements = Xml.ToElements( input.ToString() ); var element = elements.FirstOrDefault( t => t?.Name == "c" ); //验证 Assert.Equal( "3", element?.Value ); } /// /// 加载Xml文件到XDocument /// [Fact] public async Task TestLoadFileToDocumentAsync() { var file = Common.GetPhysicalPath( "./Samples/version.xml" ); var document = await Util.Helpers.Xml.LoadFileToDocumentAsync( file ); Assert.Equal( "123", document?.Root?.Value ); } /// /// 加载Xml文件到XElement列表 /// [Fact] public async Task TestLoadFileToElementsAsync() { var file = Common.GetPhysicalPath( "./Samples/version.xml" ); var elements = await Util.Helpers.Xml.LoadFileToElementsAsync( file ); var element = elements.FirstOrDefault( t => t?.Name == "VersionMinor" ); Assert.Equal( "2", element?.Value ); } }