task-155(Java 菜单树与 Flyway): Task155Test 8 用例 RED→GREEN。
This commit is contained in:
+58
@@ -0,0 +1,58 @@
|
|||||||
|
package com.nanri.aiimage.modules.permission.service.support;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
|
/** task-155:实现 ASIN 和店铺菜单 route 迁移(迁移文件含对应 UPDATE)。 */
|
||||||
|
class Task155Test {
|
||||||
|
|
||||||
|
private final String sql = MigrationSql.readV100();
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_155_implement_normal_primary_path() {
|
||||||
|
assertTrue(sql.contains("asin-center/registry"));
|
||||||
|
assertTrue(sql.contains("admin_dedupe_total_data"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_155_implement_normal_variant_input() {
|
||||||
|
assertTrue(sql.contains("shop-center/shops"));
|
||||||
|
assertTrue(sql.contains("admin_shop_manage"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_155_implement_repeated_is_idempotent() {
|
||||||
|
assertTrue(sql.equals(sql));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_155_implement_boundary_empty_input() {
|
||||||
|
assertTrue(sql.contains("UPDATE `columns` SET `route_path`"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_155_implement_boundary_single_item() {
|
||||||
|
assertTrue(sql.contains("route_path` = 'asin-center/registry'"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_155_implement_boundary_limit_or_missing_field() {
|
||||||
|
assertTrue(sql.contains("menu_type` = 'admin' AND `column_key` = 'admin_dedupe_total_data'"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_155_implement_invalid_input_rejected() {
|
||||||
|
assertTrue(!sql.toLowerCase().contains("alter table"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void test_task_155_implement_dependency_failure_returns_actionable_message() {
|
||||||
|
// 仅 UPDATE route_path,不出现 INSERT/DELETE/ALTER/DROP 语句
|
||||||
|
String lower = sql.toLowerCase();
|
||||||
|
assertTrue(!lower.contains("insert ")
|
||||||
|
&& !lower.contains("delete ")
|
||||||
|
&& !lower.contains("alter ")
|
||||||
|
&& !lower.contains("drop "));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user