49 lines
3.2 KiB
Java
49 lines
3.2 KiB
Java
package com.baiyue.lastleg.inboundplan;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.io.IOException;
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
class InboundPlanSchemaContractTest {
|
|
@Test
|
|
void planIsUniqueByCustomerAndSourceOrderWhileContainerCanBeShared() throws IOException {
|
|
try (var stream = getClass().getClassLoader().getResourceAsStream("db/lastleg.sql")) {
|
|
assertTrue(stream != null, "lastleg schema must be available");
|
|
String schema = new String(stream.readAllBytes(), StandardCharsets.UTF_8).toLowerCase();
|
|
assertTrue(schema.contains("unique key uk_ll_inbound_plan_source_order (customer_id, source_order_id)"));
|
|
assertTrue(schema.contains("key idx_ll_inbound_plan_container (customer_id, container_no)"));
|
|
assertFalse(schema.contains("unique key uk_ll_inbound_plan_container"));
|
|
assertTrue(schema.contains("default 'pending_assignment'"));
|
|
assertTrue(schema.contains("required_package_count"));
|
|
assertTrue(schema.contains("planned_package_count"));
|
|
assertTrue(schema.contains("warehouse_resource_lock_id"));
|
|
assertTrue(schema.contains("ll_inbound_plan_pallet' and column_name='version'"));
|
|
assertTrue(schema.contains("create table if not exists ll_inbound_pda_task"));
|
|
assertTrue(schema.contains("create table if not exists ll_inbound_pda_operation"));
|
|
assertTrue(schema.contains("create table if not exists ll_inbound_pallet_merge"));
|
|
assertTrue(schema.contains("create table if not exists ll_inbound_fba_appointment"));
|
|
assertTrue(schema.contains("unique key uk_ll_fba_appointment_no (appointment_no)"));
|
|
assertTrue(schema.contains("expected_loading_at"));
|
|
String appointment = schema.substring(schema.indexOf("create table if not exists ll_inbound_fba_appointment ("), schema.indexOf("create table if not exists ll_inbound_fba_appointment_item ("));
|
|
assertFalse(appointment.contains("customer_id"));
|
|
String items = schema.substring(schema.indexOf("create table if not exists ll_inbound_fba_appointment_item ("));
|
|
assertTrue(items.substring(0, items.indexOf("engine=innodb")).contains("customer_id varchar(128) not null"));
|
|
assertTrue(schema.contains("planned_arrival_date"));
|
|
assertTrue(schema.contains("creation_mode varchar(32)"));
|
|
assertTrue(schema.contains("modify column creation_mode varchar(32)"));
|
|
assertTrue(schema.contains("pallet_type"));
|
|
assertTrue(schema.contains("create table if not exists ll_order_command_record"));
|
|
assertTrue(schema.contains("create table if not exists ll_order_hold_history"));
|
|
assertTrue(schema.contains("create table if not exists ll_order_manual_node"));
|
|
assertTrue(schema.contains("create table if not exists ll_order_manual_node_history"));
|
|
assertTrue(schema.contains("create table if not exists ll_inbound_fba_appointment_item"));
|
|
assertTrue(schema.contains("fba_warehouse_code"));
|
|
assertFalse(schema.contains("cabinet_no"));
|
|
}
|
|
}
|
|
}
|