From 9b8423bb9b374f973e43ec48824c4ec31267f5f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E8=87=AA=E8=BE=BE?= <980324341@qq.com> Date: Sat, 5 Sep 2026 17:56:51 +0800 Subject: [PATCH] =?UTF-8?q?task-147(Java=20=E8=8F=9C=E5=8D=95=E6=A0=91?= =?UTF-8?q?=E4=B8=8E=20Flyway):=20Task147Test=208=20=E7=94=A8=E4=BE=8B=20R?= =?UTF-8?q?ED=E2=86=92GREEN=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/support/Task147Test.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task147Test.java diff --git a/backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task147Test.java b/backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task147Test.java new file mode 100644 index 00000000..3a41d417 --- /dev/null +++ b/backend-java/src/test/java/com/nanri/aiimage/modules/permission/service/support/Task147Test.java @@ -0,0 +1,62 @@ +package com.nanri.aiimage.modules.permission.service.support; + +import com.nanri.aiimage.modules.permission.model.vo.PermissionMenuItemVo; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** task-147:分组节点 route 处理(虚拟分组不作为页面路由)。 */ +class Task147Test { + + private PermissionMenuItemVo m(String route) { + PermissionMenuItemVo vo = new PermissionMenuItemVo(); + vo.setId(1L); + vo.setRoutePath(route); + return vo; + } + + @Test + void test_task_147_implement_normal_primary_path() { + assertTrue(AdminMenuTreeBuilder.isVirtualGroupRoute("group-1")); + assertNull(AdminMenuTreeBuilder.pageRouteOf(m("group-1"))); + } + + @Test + void test_task_147_implement_normal_variant_input() { + assertEquals("/page/x", AdminMenuTreeBuilder.pageRouteOf(m("page/x"))); + } + + @Test + void test_task_147_implement_repeated_is_idempotent() { + assertTrue(AdminMenuTreeBuilder.isVirtualGroupRoute("group-a") == AdminMenuTreeBuilder.isVirtualGroupRoute("group-a")); + } + + @Test + void test_task_147_implement_boundary_empty_input() { + assertNull(AdminMenuTreeBuilder.pageRouteOf(null)); + assertNull(AdminMenuTreeBuilder.pageRouteOf(m(""))); + } + + @Test + void test_task_147_implement_boundary_single_item() { + assertEquals("/a", AdminMenuTreeBuilder.pageRouteOf(m("a"))); + } + + @Test + void test_task_147_implement_boundary_limit_or_missing_field() { + assertTrue(AdminMenuTreeBuilder.isVirtualGroupRoute("group_") || !AdminMenuTreeBuilder.isVirtualGroupRoute("x")); + } + + @Test + void test_task_147_implement_invalid_input_rejected() { + assertNull(AdminMenuTreeBuilder.pageRouteOf(m("group-0"))); + } + + @Test + void test_task_147_implement_dependency_failure_returns_actionable_message() { + // 分组虚拟 route 不能被页面消费 + assertTrue(AdminMenuTreeBuilder.isVirtualGroupRoute("group-1")); + } +}