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 = "

Hello

"; var text2 = "

Hi

"; // Act var (html1, html2) = text1.HtmlDiff(text2); // Assert Assert.Contains("ello", html1); Assert.Contains("i", html2); } [Theory] [InlineData("ABCADE", "ADCABE", "ABCADE", "ADCABE")] [InlineData("12345", "14325", "12345", "14325")] 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 = "

Hello

"; var text2 = "

Hi

"; // Act var result = text1.HtmlDiffMerge(text2); // Assert Assert.Contains("ello", result); Assert.Contains("i", result); } [Fact] public void HtmlDiffMerge_ShouldIncludeShortUnchangedTextInChanges() { var result = "ABCADE".HtmlDiffMerge("ADCABE", maxUnchangedLength: 2); Assert.Equal("ABCADDCABE", result); } }