2026-08-21 11:43:03 +08:00
|
|
|
package com.baiyue.lastleg.dispatch;
|
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
|
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
|
|
|
|
|
|
class SmartDispatchOpenApiContractTest {
|
|
|
|
|
@Test
|
|
|
|
|
void contractDocumentsOnlyCandidateAndPreArrangeSmartDispatchWrites() throws Exception {
|
|
|
|
|
String yaml;
|
|
|
|
|
try (var input = getClass().getResourceAsStream("/openapi/overseas-business-v1.yaml")) {
|
|
|
|
|
yaml = new String(input.readAllBytes(), StandardCharsets.UTF_8);
|
|
|
|
|
}
|
|
|
|
|
assertTrue(yaml.contains("/api/platform/v1/last-leg/dispatches/candidates:"));
|
|
|
|
|
assertTrue(yaml.contains("/api/platform/v1/last-leg/dispatches/pre-arrange:"));
|
2026-08-21 17:21:26 +08:00
|
|
|
assertTrue(yaml.contains("/api/platform/v1/last-leg/dispatches/draft-locks/lock:"));
|
|
|
|
|
assertTrue(yaml.contains("/api/platform/v1/last-leg/dispatches/draft-locks/unlock:"));
|
|
|
|
|
assertTrue(yaml.contains("/api/platform/v1/last-leg/dispatches/draft-locks/release:"));
|
2026-08-22 10:20:38 +08:00
|
|
|
assertTrue(yaml.contains("/api/platform/v1/last-leg/dispatches/drafts:"));
|
|
|
|
|
assertTrue(yaml.contains("/api/platform/v1/last-leg/dispatches/drafts/snapshot:"));
|
|
|
|
|
assertTrue(yaml.contains("/api/platform/v1/last-leg/dispatches/drafts/containers:"));
|
|
|
|
|
assertTrue(yaml.contains("/api/platform/v1/last-leg/dispatches/drafts/{draftToken}/containers/{containerId}:"));
|
|
|
|
|
assertTrue(yaml.contains("draftContainerId:"));
|
|
|
|
|
assertTrue(yaml.contains("SmartDispatchDraftContainer:"));
|
|
|
|
|
assertTrue(yaml.contains("SmartDispatchDraft:"));
|
2026-08-21 11:43:03 +08:00
|
|
|
assertTrue(yaml.contains("platform:overseas-warehouse:inbound-order:list"));
|
2026-08-21 14:42:40 +08:00
|
|
|
assertTrue(yaml.contains("platform:overseas-warehouse:inbound-order:smart-dispatch"));
|
2026-08-21 11:43:03 +08:00
|
|
|
assertTrue(yaml.contains("SmartDispatchPreArrange"));
|
|
|
|
|
assertTrue(yaml.contains("SmartDispatchCandidate"));
|
2026-08-21 14:42:40 +08:00
|
|
|
assertTrue(yaml.contains("name: planIds"));
|
2026-08-21 17:21:26 +08:00
|
|
|
String planIdsParameter = yaml.substring(yaml.indexOf("name: planIds"),
|
|
|
|
|
yaml.indexOf("name: orderNo", yaml.indexOf("name: planIds")));
|
|
|
|
|
assertTrue(planIdsParameter.contains("required: false"));
|
2026-08-28 16:54:21 +08:00
|
|
|
String dispatchContract = yaml.substring(yaml.indexOf("/api/platform/v1/last-leg/dispatches:"),
|
2026-08-21 11:43:03 +08:00
|
|
|
yaml.indexOf("/api/platform/v1/last-leg/overseas-procurements:"));
|
|
|
|
|
assertFalse(dispatchContract.contains("name: customerId"));
|
|
|
|
|
assertFalse(yaml.contains("/api/platform/v1/last-leg/dispatches/{dispatchNo}/depart:"));
|
|
|
|
|
}
|
|
|
|
|
}
|