package com.baiyue.lastleg.delivery; import org.junit.jupiter.api.Test; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; class Phase5PdaDeploymentSqlContractTest { @Test void overseasCleanInitializationDefinesFinalPhase5IdentifiersWithoutBackfill() throws Exception { String sql = Files.readString(Path.of("..", "deploy", "sql", "海外区域统一增量-MySQL8.sql"), StandardCharsets.UTF_8); String normalized = sql.replaceAll("\\s+", ""); assertTrue(sql.contains("warehouse_id varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL")); assertTrue(sql.contains("completion_idempotency_key varchar(255)")); assertTrue(normalized.contains("UNIQUEKEYuk_ll_dispatch_order_no(dispatch_no)")); assertTrue(normalized.contains("UNIQUEKEYuk_ll_outbound_no(outbound_no)")); assertTrue(normalized.contains("UNIQUEKEYuk_ll_dispatch_pda_task_no(task_no)")); assertTrue(normalized.contains("UNIQUEKEYuk_ll_outbound_pda_task_no(task_no)")); assertTrue(normalized.contains("UNIQUEKEYuk_ll_outbound_pda_complete_key(customer_id,completion_idempotency_key)")); assertFalse(sql.contains("assert_phase5_lastleg_identifiers_migratable")); assertFalse(sql.contains("ALTER TABLE ll_dispatch_order")); assertFalse(sql.contains("ALTER TABLE ll_outbound_order")); assertFalse(sql.contains("uk_ll_dispatch_order_no(customer_id,dispatch_no)")); assertFalse(sql.contains("uk_ll_outbound_no(customer_id,outbound_no)")); assertFalse(sql.contains("uk_ll_dispatch_pda_task_no(customer_id,task_no)")); assertFalse(sql.contains("uk_ll_outbound_pda_task_no(customer_id,task_no)")); } }