This commit is contained in:
2026-08-30 18:49:15 +08:00
parent 5ddaa4d51f
commit a4429f95b7
19 changed files with 151 additions and 31 deletions
@@ -23,6 +23,9 @@ class OverseasProcurementInventoryBoundaryTest {
assertFalse(source.contains("availablePackages"));
assertFalse(source.contains("addOutbound"));
assertFalse(source.contains("OverseasProcurementOutbound"));
assertFalse(source.contains("outboundQuantity"));
String responses = Files.readString(Path.of(
"src/main/java/com/baiyue/lastleg/procurement/dto/OverseasProcurementResponses.java"),
StandardCharsets.UTF_8);
assertTrue(responses.contains("outboundQuantity"));
}
}
@@ -64,9 +64,32 @@ class OverseasProcurementServiceTest {
assertEquals(OverseasProcurementService.PENDING_REVIEW, detail.summary().status());
assertEquals(0, detail.summary().inboundQuantity());
assertEquals(0, detail.summary().outboundQuantity());
assertEquals(0, detail.summary().inventoryQuantity());
}
@Test
void outboundQuantityAndDisplayStatusFollowOutboundDetails() {
OverseasProcurementOrder order = order(OverseasProcurementService.APPROVED, 90, 0);
when(orders.findNo("100", "HC1")).thenReturn(order);
when(histories.listOrder("100", 1L)).thenReturn(List.of());
order.setOutboundDetails("[]");
assertEquals("PENDING_OUTBOUND", service.detail("100", "HC1").summary().status());
order.setOutboundDetails("[{\"id\":\"1\",\"quantity\":1}]");
var partial = service.detail("100", "HC1").summary();
assertEquals(1, partial.outboundQuantity());
assertEquals(89, partial.inventoryQuantity());
assertEquals("PARTIALLY_OUTBOUND", partial.status());
order.setOutboundDetails("[{\"id\":\"1\",\"quantity\":90}]");
var completed = service.detail("100", "HC1").summary();
assertEquals(90, completed.outboundQuantity());
assertEquals(0, completed.inventoryQuantity());
assertEquals("OUTBOUNDED", completed.status());
}
@Test
void pendingOrderCannotReceiveInventory() {
OverseasProcurementOrder order = order(OverseasProcurementService.PENDING_REVIEW, 0, 0);