using Admin.NET.Plugin.AiDOP.Service.S8; using Xunit; namespace Admin.NET.Plugin.AiDOP.Tests.S8; /// /// S8RoleResolver.SplitTokens 纯函数单元测试。 /// 实例方法 ResolveUserIdsAsync 依赖 SqlSugarRepository<SysRole> + SysUserRoleService, /// 需在带 DB 的集成环境验证;本文件仅覆盖静态切分契约。 /// public class S8RoleResolverTokenTests { [Fact] public void SplitTokens_NullOrEmpty_ReturnsEmpty() { Assert.Empty(S8RoleResolver.SplitTokens(null)); Assert.Empty(S8RoleResolver.SplitTokens("")); Assert.Empty(S8RoleResolver.SplitTokens(" ")); } [Fact] public void SplitTokens_Comma_TrimsAndDropsEmpty() { var r = S8RoleResolver.SplitTokens(" ROLE_A , 123, , ROLE_B "); Assert.Equal(new[] { "ROLE_A", "123", "ROLE_B" }, r); } [Fact] public void SplitTokens_Semicolon_AlsoSupported() { var r = S8RoleResolver.SplitTokens("ROLE_X;456;ROLE_Y"); Assert.Equal(new[] { "ROLE_X", "456", "ROLE_Y" }, r); } [Fact] public void SplitTokens_Mixed_CommaAndSemicolon() { var r = S8RoleResolver.SplitTokens("ROLE_A,789;ROLE_B"); Assert.Equal(new[] { "ROLE_A", "789", "ROLE_B" }, r); } }