S8RoleResolverTokenTests.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Admin.NET.Plugin.AiDOP.Service.S8;
  2. using Xunit;
  3. namespace Admin.NET.Plugin.AiDOP.Tests.S8;
  4. /// <summary>
  5. /// S8RoleResolver.SplitTokens 纯函数单元测试。
  6. /// 实例方法 ResolveUserIdsAsync 依赖 SqlSugarRepository&lt;SysRole&gt; + SysUserRoleService,
  7. /// 需在带 DB 的集成环境验证;本文件仅覆盖静态切分契约。
  8. /// </summary>
  9. public class S8RoleResolverTokenTests
  10. {
  11. [Fact]
  12. public void SplitTokens_NullOrEmpty_ReturnsEmpty()
  13. {
  14. Assert.Empty(S8RoleResolver.SplitTokens(null));
  15. Assert.Empty(S8RoleResolver.SplitTokens(""));
  16. Assert.Empty(S8RoleResolver.SplitTokens(" "));
  17. }
  18. [Fact]
  19. public void SplitTokens_Comma_TrimsAndDropsEmpty()
  20. {
  21. var r = S8RoleResolver.SplitTokens(" ROLE_A , 123, , ROLE_B ");
  22. Assert.Equal(new[] { "ROLE_A", "123", "ROLE_B" }, r);
  23. }
  24. [Fact]
  25. public void SplitTokens_Semicolon_AlsoSupported()
  26. {
  27. var r = S8RoleResolver.SplitTokens("ROLE_X;456;ROLE_Y");
  28. Assert.Equal(new[] { "ROLE_X", "456", "ROLE_Y" }, r);
  29. }
  30. [Fact]
  31. public void SplitTokens_Mixed_CommaAndSemicolon()
  32. {
  33. var r = S8RoleResolver.SplitTokens("ROLE_A,789;ROLE_B");
  34. Assert.Equal(new[] { "ROLE_A", "789", "ROLE_B" }, r);
  35. }
  36. }