| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using Admin.NET.Plugin.AiDOP.Service.S8;
- using Xunit;
- namespace Admin.NET.Plugin.AiDOP.Tests.S8;
- /// <summary>
- /// S8RoleResolver.SplitTokens 纯函数单元测试。
- /// 实例方法 ResolveUserIdsAsync 依赖 SqlSugarRepository<SysRole> + SysUserRoleService,
- /// 需在带 DB 的集成环境验证;本文件仅覆盖静态切分契约。
- /// </summary>
- 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);
- }
- }
|