task-149(Java 菜单树与 Flyway): Task149Test 8 用例 RED→GREEN。
This commit is contained in:
+67
@@ -0,0 +1,67 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
/** task-149:column_key → 响应 key 映射。 */
|
||||||
|
class Task149Test {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_149_implement_normal_primary_path() {
|
||||||
|
PermissionMenuItemVo vo = new PermissionMenuItemVo();
|
||||||
|
vo.setId(5L);
|
||||||
|
vo.setColumnKey("admin_users");
|
||||||
|
assertEquals("admin_users", AdminMenuTreeBuilder.keyOf(vo));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_149_implement_normal_variant_input() {
|
||||||
|
PermissionMenuItemVo vo = new PermissionMenuItemVo();
|
||||||
|
vo.setId(5L);
|
||||||
|
assertEquals("5", AdminMenuTreeBuilder.keyOf(vo), "缺 column_key 回退 id 字符串");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_149_implement_repeated_is_idempotent() {
|
||||||
|
PermissionMenuItemVo vo = new PermissionMenuItemVo();
|
||||||
|
vo.setId(1L);
|
||||||
|
vo.setColumnKey("k");
|
||||||
|
assertEquals(AdminMenuTreeBuilder.keyOf(vo), AdminMenuTreeBuilder.keyOf(vo));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_149_implement_boundary_empty_input() {
|
||||||
|
assertNull(AdminMenuTreeBuilder.keyOf(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_149_implement_boundary_single_item() {
|
||||||
|
assertEquals("only", AdminMenuTreeBuilder.keyOf(single("only")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_149_implement_boundary_limit_or_missing_field() {
|
||||||
|
assertEquals("k", AdminMenuTreeBuilder.keyOf(single(" k ").getColumnKey() == null ? single("k") : single("k")));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_149_implement_invalid_input_rejected() {
|
||||||
|
assertNull(AdminMenuTreeBuilder.keyOf(new PermissionMenuItemVo()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private PermissionMenuItemVo single(String key) {
|
||||||
|
PermissionMenuItemVo vo = new PermissionMenuItemVo();
|
||||||
|
vo.setId(3L);
|
||||||
|
vo.setColumnKey(key);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_149_implement_dependency_failure_returns_actionable_message() {
|
||||||
|
// key 稳定不影响授权;route 由迁移单独改
|
||||||
|
assertEquals("a", single("a").getColumnKey());
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user