mirror of
https://github.com/dotnetcore/Util.git
synced 2026-10-28 10:56:37 +08:00
185 lines
5.0 KiB
C#
185 lines
5.0 KiB
C#
using System.Linq;
|
|
using Util.Helpers;
|
|
using Xunit;
|
|
using Xunit.Abstractions;
|
|
|
|
namespace Util.Tests.Helpers {
|
|
/// <summary>
|
|
/// Xml操作测试
|
|
/// </summary>
|
|
public class XmlTest {
|
|
/// <summary>
|
|
/// 输出工具
|
|
/// </summary>
|
|
private readonly ITestOutputHelper _output;
|
|
/// <summary>
|
|
/// Xml操作
|
|
/// </summary>
|
|
private readonly Xml _xml;
|
|
|
|
/// <summary>
|
|
/// 测试初始化
|
|
/// </summary>
|
|
public XmlTest( ITestOutputHelper output ) {
|
|
_output = output;
|
|
_xml = new Xml();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试添加节点
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestAddNode_1() {
|
|
//结果
|
|
var result = new String();
|
|
result.Append( "<xml>" );
|
|
result.Append( "<a>1</a>" );
|
|
result.Append( "</xml>" );
|
|
|
|
//操作
|
|
_xml.AddNode( "a", "1" );
|
|
|
|
//验证
|
|
Assert.Equal( result.ToString(), _xml.ToString() );
|
|
|
|
//输出结果
|
|
_output.WriteLine( _xml.ToString() );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试添加节点 - 父子节点
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestAddNode_2() {
|
|
//结果
|
|
var result = new String();
|
|
result.Append( "<xml>" );
|
|
result.Append( "<a>" );
|
|
result.Append( "<b>2</b>" );
|
|
result.Append( "</a>" );
|
|
result.Append( "</xml>" );
|
|
|
|
//操作
|
|
var parent = _xml.AddNode( "a" );
|
|
_xml.AddNode( "b", "2", parent );
|
|
|
|
//验证
|
|
Assert.Equal( result.ToString(), _xml.ToString() );
|
|
|
|
//输出结果
|
|
_output.WriteLine( _xml.ToString() );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试添加注释类型节点
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestAddCDataNode_1() {
|
|
//结果
|
|
var result = new String();
|
|
result.Append( "<xml>" );
|
|
result.Append( "<![CDATA[1]]>" );
|
|
result.Append( "</xml>" );
|
|
|
|
//操作
|
|
_xml.AddCDataNode( "1" );
|
|
|
|
//验证
|
|
Assert.Equal( result.ToString(), _xml.ToString() );
|
|
|
|
//输出结果
|
|
_output.WriteLine( _xml.ToString() );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试添加注释类型节点 - 父节点
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestAddCDataNode_2() {
|
|
//结果
|
|
var result = new String();
|
|
result.Append( "<xml>" );
|
|
result.Append( "<a>" );
|
|
result.Append( "<![CDATA[1]]>" );
|
|
result.Append( "</a>" );
|
|
result.Append( "</xml>" );
|
|
|
|
//操作
|
|
var parent = _xml.AddNode( "a" );
|
|
_xml.AddCDataNode( "1", parent );
|
|
|
|
//验证
|
|
Assert.Equal( result.ToString(), _xml.ToString() );
|
|
|
|
//输出结果
|
|
_output.WriteLine( _xml.ToString() );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试添加注释类型节点 - 父节点 - 通过设置字符串父节点名称
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestAddCDataNode_3() {
|
|
//结果
|
|
var result = new String();
|
|
result.Append( "<xml>" );
|
|
result.Append( "<a>" );
|
|
result.Append( "<![CDATA[1]]>" );
|
|
result.Append( "</a>" );
|
|
result.Append( "</xml>" );
|
|
|
|
//操作
|
|
_xml.AddCDataNode( "1", "a" );
|
|
|
|
//验证
|
|
Assert.Equal( result.ToString(), _xml.ToString() );
|
|
|
|
//输出结果
|
|
_output.WriteLine( _xml.ToString() );
|
|
}
|
|
|
|
/// <summary>
|
|
/// xml字符串转换为XElement列表
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestToElements_1() {
|
|
//输入
|
|
var input = new String();
|
|
input.Append( "<xml>" );
|
|
input.Append( "<a>1</a>" );
|
|
input.Append( "<b>2</b>" );
|
|
input.Append( "</xml>" );
|
|
|
|
//操作
|
|
var elements = Xml.ToElements( input.ToString() );
|
|
var element = elements.FirstOrDefault( t => t.Name == "b");
|
|
|
|
//验证
|
|
Assert.Equal( "2",element?.Value );
|
|
}
|
|
|
|
/// <summary>
|
|
/// xml字符串转换为XElement列表
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestToElements_2() {
|
|
//输入
|
|
var input = new String();
|
|
input.Append( "<xml>" );
|
|
input.Append( "<a>1</a>" );
|
|
input.Append( "<b>2</b>" );
|
|
input.Append( "<c>" );
|
|
input.Append( "<![CDATA[3]]>" );
|
|
input.Append( "</c>" );
|
|
input.Append( "</xml>" );
|
|
|
|
//操作
|
|
var elements = Xml.ToElements( input.ToString() );
|
|
var element = elements.FirstOrDefault( t => t?.Name == "c" );
|
|
|
|
//验证
|
|
Assert.Equal( "3", element?.Value );
|
|
}
|
|
}
|
|
}
|