diff --git a/backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task153Test.java b/backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task153Test.java new file mode 100644 index 00000000..0f6eab01 --- /dev/null +++ b/backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task153Test.java @@ -0,0 +1,53 @@ +package com.nanri.aiimage.modules.permission.service.support; + +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** task-153:无权限用户菜单树(空有效集合 → 空树)。 */ +class Task153Test { + + @Test + void test_task_153_implement_normal_primary_path() { + assertTrue(AdminMenuTreeBuilder.build(List.of()).isEmpty()); + } + + @Test + void test_task_153_implement_normal_variant_input() { + assertTrue(AdminMenuTreeBuilder.build(null).isEmpty()); + } + + @Test + void test_task_153_implement_repeated_is_idempotent() { + assertTrue(AdminMenuTreeBuilder.build(null).equals(AdminMenuTreeBuilder.build(null))); + } + + @Test + void test_task_153_implement_boundary_empty_input() { + assertTrue(AdminMenuTreeBuilder.toMapList(List.of()).isEmpty()); + } + + @Test + void test_task_153_implement_boundary_single_item() { + // 无权限用户即使传入 client 域菜单也不进入 admin 树(由调用方仅传 admin 有效集) + assertTrue(AdminMenuTreeBuilder.filterByMenuType(List.of(), "admin").isEmpty()); + } + + @Test + void test_task_153_implement_boundary_limit_or_missing_field() { + assertTrue(AdminMenuTreeBuilder.build(List.of()).isEmpty()); + } + + @Test + void test_task_153_implement_invalid_input_rejected() { + assertTrue(AdminMenuTreeBuilder.build(null).isEmpty()); + } + + @Test + void test_task_153_implement_dependency_failure_returns_actionable_message() { + // 无授权用户不展开任何菜单,不触发错误 + assertTrue(AdminMenuTreeBuilder.toMapList(AdminMenuTreeBuilder.build(null)).isEmpty()); + } +}