mirror of
https://github.com/ldqk/Masuit.Tools.git
synced 2026-10-19 23:30:04 +08:00
84b5c249a9
对Extensions.cs中的HtmlDiffMerge扩展方法新增maxUnchangedLength参数,用于控制合并时短未变文本的差异标记。增加参数校验和详细注释,并引入MergeShortEqualities方法处理差异结果。对应地,ExtensionsTests.cs新增单元测试HtmlDiffMerge_ShouldIncludeShortUnchangedTextInChanges,验证新参数的合并效果。
58 lines
1.6 KiB
C#
58 lines
1.6 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Masuit.Tools.TextDiff;
|
|
using Xunit;
|
|
|
|
namespace Masuit.Tools.Abstractions.Test.TextDiff;
|
|
|
|
public class ExtensionsTests
|
|
{
|
|
[Fact]
|
|
public void HtmlDiff_ShouldReturnHtmlDiff()
|
|
{
|
|
// Arrange
|
|
var text1 = "<p>Hello</p>";
|
|
var text2 = "<p>Hi</p>";
|
|
|
|
// Act
|
|
var (html1, html2) = text1.HtmlDiff(text2);
|
|
|
|
// Assert
|
|
Assert.Contains("<del>ello</del>", html1);
|
|
Assert.Contains("<ins>i</ins>", html2);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("ABCADE", "ADCABE", "A<del>BCAD</del>E", "A<ins>DCAB</ins>E")]
|
|
[InlineData("12345", "14325", "1<del>234</del>5", "1<ins>432</ins>5")]
|
|
public void HtmlDiff_ShouldIncludeShortUnchangedTextInChanges(string text1, string text2, string expectedHtml1, string expectedHtml2)
|
|
{
|
|
var (html1, html2) = text1.HtmlDiff(text2, maxUnchangedLength: 2);
|
|
|
|
Assert.Equal(expectedHtml1, html1);
|
|
Assert.Equal(expectedHtml2, html2);
|
|
}
|
|
|
|
[Fact]
|
|
public void HtmlDiffMerge_ShouldReturnMergedHtml()
|
|
{
|
|
// Arrange
|
|
var text1 = "<p>Hello</p>";
|
|
var text2 = "<p>Hi</p>";
|
|
|
|
// Act
|
|
var result = text1.HtmlDiffMerge(text2);
|
|
|
|
// Assert
|
|
Assert.Contains("<del>ello</del>", result);
|
|
Assert.Contains("<ins>i</ins>", result);
|
|
}
|
|
|
|
[Fact]
|
|
public void HtmlDiffMerge_ShouldIncludeShortUnchangedTextInChanges()
|
|
{
|
|
var result = "ABCADE".HtmlDiffMerge("ADCABE", maxUnchangedLength: 2);
|
|
|
|
Assert.Equal("A<del>BCAD</del><ins>DCAB</ins>E", result);
|
|
}
|
|
} |