mirror of
https://github.com/ldqk/Masuit.Tools.git
synced 2026-10-18 22:46:15 +08:00
74 lines
1.9 KiB
C#
74 lines
1.9 KiB
C#
using System;
|
|
using Masuit.Tools.TextDiff;
|
|
using Xunit;
|
|
|
|
namespace Masuit.Tools.Abstractions.Test.TextDiff;
|
|
|
|
public class TextDifferTests
|
|
{
|
|
[Fact]
|
|
public void Empty_ShouldReturnEmptyTextDiffer()
|
|
{
|
|
var empty = TextDiffer.Empty;
|
|
Assert.Equal(DiffOperation.Equal, empty.Operation);
|
|
Assert.Equal(string.Empty, empty.Text);
|
|
}
|
|
|
|
[Fact]
|
|
public void IsEmpty_ShouldReturnTrueForEmptyText()
|
|
{
|
|
var empty = TextDiffer.Empty;
|
|
Assert.True(empty.IsEmpty);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equal_ShouldCreateEqualTextDiffer()
|
|
{
|
|
var text = "test";
|
|
var differ = TextDiffer.Equal(text.AsSpan());
|
|
Assert.Equal(DiffOperation.Equal, differ.Operation);
|
|
Assert.Equal(text, differ.Text);
|
|
}
|
|
|
|
[Fact]
|
|
public void Insert_ShouldCreateInsertTextDiffer()
|
|
{
|
|
var text = "test";
|
|
var differ = TextDiffer.Insert(text.AsSpan());
|
|
Assert.Equal(DiffOperation.Insert, differ.Operation);
|
|
Assert.Equal(text, differ.Text);
|
|
}
|
|
|
|
[Fact]
|
|
public void Delete_ShouldCreateDeleteTextDiffer()
|
|
{
|
|
var text = "test";
|
|
var differ = TextDiffer.Delete(text.AsSpan());
|
|
Assert.Equal(DiffOperation.Delete, differ.Operation);
|
|
Assert.Equal(text, differ.Text);
|
|
}
|
|
|
|
[Fact]
|
|
public void Compute_ShouldReturnDiffs()
|
|
{
|
|
var text1 = "test";
|
|
var text2 = "test123";
|
|
var diffs = TextDiffer.Compute(text1, text2);
|
|
Assert.NotEmpty(diffs);
|
|
}
|
|
|
|
[Fact]
|
|
public void IsLargeDelete_ShouldReturnTrueForLargeDelete()
|
|
{
|
|
var differ = TextDiffer.Delete("large delete".AsSpan());
|
|
Assert.True(differ.IsLargeDelete(5));
|
|
}
|
|
|
|
[Fact]
|
|
public void ToString_ShouldReturnFormattedString()
|
|
{
|
|
var differ = TextDiffer.Equal("test\n".AsSpan());
|
|
var result = differ.ToString();
|
|
Assert.Equal("Diff(Equal,\"test\u00b6\")", result);
|
|
}
|
|
} |