using WxAgent.Core; using Xunit; namespace WxAgent.Core.Tests; public sealed class WechatNavigationTests { [Theory] [InlineData(0)] [InlineData(101)] public void RejectsUnboundedScrollRequests(int pages) => Assert.Throws(() => WechatNavigationRules.ValidateScrollLimit(pages)); [Fact] public void MatchesExactVisibleFingerprintAndRejectsAmbiguity() { var message = new ChatMessageSnapshot("test", new string('a', 64), 0, ChatMessageType.Text); Assert.Same(message, WechatNavigationRules.FindMessage([message], new string('A', 64))); Assert.Null(WechatNavigationRules.FindMessage([message], new string('b', 64))); Assert.Throws(() => WechatNavigationRules.FindMessage([message, message], message.Fingerprint)); Assert.Throws(() => WechatNavigationRules.FindMessage([message], "not-a-fingerprint")); } }