mirror of
https://github.com/dotnetcore/Util.git
synced 2026-10-28 19:18:08 +08:00
100 lines
3.2 KiB
C#
100 lines
3.2 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Newtonsoft.Json;
|
|
using Util.Helpers;
|
|
using Util.Tests.Samples;
|
|
using Util.Tests.XUnitHelpers;
|
|
using Xunit;
|
|
|
|
namespace Util.Tests.Helpers {
|
|
/// <summary>
|
|
/// Json测试
|
|
/// </summary>
|
|
public class JsonTest {
|
|
/// <summary>
|
|
/// 测试循环引用序列化
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestLoop() {
|
|
A a = new A { Name = "a" };
|
|
B b = new B { Name = "b" };
|
|
C c = new C { Name = "c" };
|
|
a.B = b;
|
|
b.C = c;
|
|
c.A = a;
|
|
AssertHelper.Throws<JsonSerializationException>( () => Json.ToJson( c ) );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 转成Json,验证空
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestToJson_Null() {
|
|
Assert.Empty( Json.ToJson( null ) );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试转成Json
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestToJson() {
|
|
var result = new StringBuilder();
|
|
result.Append( "{" );
|
|
result.Append( "\"Name\":\"a\"," );
|
|
result.Append( "\"nickname\":\"b\"," );
|
|
result.Append( "\"Value\":null," );
|
|
result.Append( "\"Date\":\"2012/1/1 0:00:00\"," );
|
|
result.Append( "\"Age\":1," );
|
|
result.Append( "\"isShow\":true" );
|
|
result.Append( "}" );
|
|
var actualData = JsonTestSample.Create();
|
|
actualData.Date = DateTime.Parse(actualData.Date).ToString("yyyy/M/d 0:00:00");
|
|
Assert.Equal( result.ToString(), Json.ToJson(actualData) );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试转成Json,将双引号转成单引号
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestToJson_ToSingleQuotes() {
|
|
var result = new StringBuilder();
|
|
result.Append( "{" );
|
|
result.Append( "'Name':'a'," );
|
|
result.Append( "'nickname':'b'," );
|
|
result.Append( "'Value':null," );
|
|
result.Append( "'Date':'2012/1/1 0:00:00'," );
|
|
result.Append( "'Age':1," );
|
|
result.Append( "'isShow':true" );
|
|
result.Append( "}" );
|
|
|
|
var actualData = JsonTestSample.Create();
|
|
actualData.Date = DateTime.Parse(actualData.Date).ToString("yyyy/M/d 0:00:00");
|
|
Assert.Equal( result.ToString(), Json.ToJson(actualData, true ) );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试转换实体为Json
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestToJson_Entity() {
|
|
AggregateRootSample entity = new AggregateRootSample();
|
|
entity.Code = "a";
|
|
entity.IntSamples.Add( new IntAggregateRootSample{Name = "b"} );
|
|
var json = Util.Helpers.Json.ToJson( entity );
|
|
entity = Util.Helpers.Json.ToObject<AggregateRootSample>( json );
|
|
Assert.Equal( "a", entity.Code );
|
|
Assert.Equal( "b", entity.IntSamples.First().Name );
|
|
}
|
|
|
|
/// <summary>
|
|
/// 测试转成对象
|
|
/// </summary>
|
|
[Fact]
|
|
public void TestToObject() {
|
|
var customer = Json.ToObject<JsonTestSample>( "{\"Name\":\"a\"}" );
|
|
Assert.Equal( "a", customer.Name );
|
|
}
|
|
}
|
|
}
|