mirror of
https://github.com/ldqk/Masuit.Tools.git
synced 2026-10-21 08:20:10 +08:00
a91befb5f4
2. 重构 ImageBorderRemover.cs,增强参数校验与异常处理,提升多层边框检测准确性,支持浅色背景自动识别,优化性能与颜色比较,移除灰度化处理,结构更清晰。 3. 增强HtmlDiff,新增 maxUnchangedLength 参数与辅助方法,优化 diff 合并逻辑,保持兼容性。
92 lines
2.4 KiB
C#
92 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Text.Encodings.Web;
|
|
using System.Text.Json;
|
|
using System.Threading.Tasks;
|
|
using Masuit.Tools.Extension.Object;
|
|
using Masuit.Tools.Systems;
|
|
using Xunit;
|
|
|
|
namespace Masuit.Tools.Core.Test.AspNetCore
|
|
{
|
|
public class ObjectExtensionTests : TestBase
|
|
{
|
|
[Fact]
|
|
public void ToJsonTest()
|
|
{
|
|
var obj = new
|
|
{
|
|
Id = 1,
|
|
name = "van",
|
|
addressInfo = new
|
|
{
|
|
street = "123 Main St",
|
|
city = "zcvz",
|
|
},
|
|
remarks = new List<string> { "Deep Dark Fantastic", "爱玩游戏♂" },
|
|
};
|
|
|
|
var json = obj.ToJsonString(new JsonSerializerOptions() { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping });
|
|
|
|
Assert.Equal(
|
|
"{\"Id\":1,\"name\":\"van\",\"addressInfo\":{\"street\":\"123 Main St\",\"city\":\"zcvz\"},\"remarks\":[\"Deep Dark Fantastic\",\"爱玩游戏\u2642\"]}",
|
|
json);
|
|
}
|
|
|
|
[Fact]
|
|
public void ToJsonIgnoreNullTest()
|
|
{
|
|
var obj = new People
|
|
{
|
|
Name = "van",
|
|
Age = 52,
|
|
};
|
|
|
|
var json = obj.ToJsonIgnoreNull();
|
|
|
|
Assert.Equal(
|
|
"{\"Name\":\"van\",\"Age\":52}",
|
|
json);
|
|
}
|
|
|
|
[Fact]
|
|
public void FromObjectTest()
|
|
{
|
|
var json = "{\"Name\":\"van\",\"Age\":52}";
|
|
|
|
var obj = json.FromJson<People>(new JsonSerializerOptions() { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping });
|
|
|
|
Assert.Equal(
|
|
"van",
|
|
obj.Name);
|
|
}
|
|
|
|
[Fact]
|
|
public void SerializeSortByNameTest()
|
|
{
|
|
var obj = new People
|
|
{
|
|
Name = "van",
|
|
Age = 52,
|
|
};
|
|
|
|
var json = obj.ToJsonString(new JsonSerializerOptions
|
|
{
|
|
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
|
|
TypeInfoResolver = new SerializeSortByNameResolver()
|
|
});
|
|
|
|
Assert.Equal(
|
|
"{\"Age\":52,\"Name\":\"van\"}",
|
|
json);
|
|
}
|
|
|
|
private class People
|
|
{
|
|
public string Name { get; set; }
|
|
public int Age { get; set; }
|
|
}
|
|
}
|
|
} |