32 lines
1.4 KiB
C#
32 lines
1.4 KiB
C#
using WxAgent.Core;
|
|
using Xunit;
|
|
|
|
namespace WxAgent.Core.Tests;
|
|
|
|
public sealed class WechatMentionConfirmationTests
|
|
{
|
|
[Theory]
|
|
[InlineData("\uFFFC", true)]
|
|
[InlineData("\uFFFC\u2005", true)]
|
|
[InlineData("@Hao 豪", false)]
|
|
[InlineData("@", false)]
|
|
[InlineData("\uFFFCunexpected", false)]
|
|
[InlineData("\uFFFC\uFFFC", false)]
|
|
public void RequiresExactlyOneStructuredMentionToken(string value, bool expected) =>
|
|
Assert.Equal(expected, WechatSendConfirmation.IsMentionToken(value));
|
|
|
|
[Theory]
|
|
[InlineData("@Hao 豪 marker", "Hao 豪", true)]
|
|
[InlineData("@Hao 豪\u2005marker", "Hao 豪", true)]
|
|
[InlineData("@所有人 marker", "所有人", true)]
|
|
[InlineData("@Hao 豪 other", "Hao 豪", false)]
|
|
[InlineData("@Other marker", "Hao 豪", false)]
|
|
public void RequiresFreshExactMentionAndBody(string text, string member, bool expected)
|
|
{
|
|
var message = new ChatMessageSnapshot(text, "fresh", 0, ChatMessageType.Text);
|
|
Assert.Equal(expected, WechatSendConfirmation.MatchesMention(message, new HashSet<string>(), member, "marker"));
|
|
Assert.False(WechatSendConfirmation.MatchesMention(message, new HashSet<string> { "fresh" }, member, "marker"));
|
|
Assert.False(WechatSendConfirmation.MatchesMention(message with { Type = ChatMessageType.Quote }, new HashSet<string>(), member, "marker"));
|
|
}
|
|
}
|