Files
baiyue-firstleg/lastleg-service/src/test/java/com/baiyue/lastleg/transfer/WarehouseTransferSchemaContractTest.java
T

48 lines
3.2 KiB
Java
Raw Normal View History

2026-08-19 16:24:02 +08:00
package com.baiyue.lastleg.transfer;
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.assertTrue;
class WarehouseTransferSchemaContractTest {
@Test
void baselineAndIncrementalContainTransferAndHistoricalOrderBindingTables() throws Exception {
String baseline = Files.readString(Path.of("src", "main", "resources", "db", "lastleg.sql"), StandardCharsets.UTF_8).toLowerCase();
String migration = Files.readString(Path.of("..", "scripts", "db", "incremental.sql"), StandardCharsets.UTF_8).toLowerCase();
2026-09-17 17:37:29 +08:00
String deployment = Files.readString(Path.of("..", "deploy", "sql", "海外区域统一增量-MySQL8.sql"),
StandardCharsets.UTF_8).toLowerCase();
2026-08-19 16:24:02 +08:00
for (String table : new String[]{"ll_warehouse_transfer_order", "ll_warehouse_transfer_source_order",
"ll_warehouse_transfer_item", "ll_warehouse_transfer_inventory_allocation",
"ll_warehouse_transfer_receipt"}) {
assertTrue(baseline.contains("create table if not exists " + table));
assertTrue(migration.contains("create table if not exists " + table));
}
assertTrue(migration.contains("information_schema.statistics"));
assertTrue(migration.contains("uk_ll_wh_transfer_source"));
assertTrue(migration.contains("uk_ll_wh_transfer_active_position"));
assertTrue(migration.contains("uk_ll_wh_transfer_receipt_source"));
2026-09-17 17:37:29 +08:00
assertTrue(baseline.contains("pickup_contact_name varchar(128) null"));
assertTrue(baseline.contains("pickup_contact_phone varchar(64) null"));
assertTrue(migration.contains("column_name='pickup_contact_name'"));
assertTrue(migration.contains("column_name='pickup_contact_phone'"));
assertTrue(baseline.contains("create table if not exists ll_warehouse_transfer_measurement_photo"));
assertTrue(migration.contains("create table if not exists ll_warehouse_transfer_measurement_photo"));
assertTrue(baseline.contains("received_package_count int null comment 'pda实际入库箱数'"));
assertTrue(migration.contains("column_name='received_package_count'"));
assertTrue(migration.contains("o.current_status='inbound_completed'"));
for (String field : new String[]{"pickup_contact_name", "review_decision", "destination_type",
"destination_binding_idempotency_key", "private_destination_address",
"private_destination_postal_code", "draft_idempotency_key", "bind_idempotency_key"}) {
assertTrue(deployment.contains(field), () -> "deployment SQL must include " + field);
}
for (String table : new String[]{"ll_warehouse_transfer_measurement_photo", "ll_inbound_plan_line",
"ll_inbound_plan_pallet", "ll_dispatch_item", "ll_delivery_order"}) {
assertTrue(deployment.contains(table), () -> "deployment SQL must include " + table);
}
assertTrue(deployment.contains("assert_relabel_transfer_latest_schema_ready"));
assertTrue(deployment.contains("贴标申请与仓储转运最新表结构已完整部署"));
2026-08-19 16:24:02 +08:00
}
}