提交
This commit is contained in:
+17
-2
@@ -619,7 +619,7 @@ class WarehouseTransferServiceTest {
|
||||
new BigDecimal("0.2500"), "WAREHOUSE_PICKUP", LocalDateTime.of(2026, 9, 12, 10, 0),
|
||||
null, null, "TRACK-MUST-NOT-BE-SAVED", null, "Incoming transit cargo", true,
|
||||
null, null, null, null, null, "key-incoming",
|
||||
List.of(new WarehouseTransferRequests.Item("SKU-1", "Product A", 2, null),
|
||||
List.of(new WarehouseTransferRequests.Item("SKU-1", "Product A", 2, null, null, List.of("BX-PRINTED1", "BX-PRINTED2")),
|
||||
new WarehouseTransferRequests.Item("SKU-2", "Product B", 3, null)), null);
|
||||
when(transfers.findNo(eq("TENANT-A"), anyString())).thenAnswer(invocation -> transfer(WarehouseTransferService.DRAFT));
|
||||
when(transferItems.selectList(any())).thenReturn(List.of());
|
||||
@@ -647,6 +647,8 @@ class WarehouseTransferServiceTest {
|
||||
assertEquals("PENDING_BINDING", tailOrder.getValue().getRelabelStatus());
|
||||
assertEquals(List.of(1, 2, 3, 4, 5), cartons.getAllValues().stream()
|
||||
.map(WarehouseTransferCarton::getCartonIndex).toList());
|
||||
assertEquals(List.of("BX-PRINTED1", "BX-PRINTED2"), cartons.getAllValues().subList(0, 2).stream()
|
||||
.map(WarehouseTransferCarton::getCartonMark).toList());
|
||||
assertTrue(cartons.getAllValues().stream().allMatch(value -> value.getCartonMark()
|
||||
.matches("BX-[0-9A-Z]+")));
|
||||
when(transfers.findKey("TENANT-A", request.idempotencyKey())).thenReturn(transfer.getValue());
|
||||
@@ -814,7 +816,20 @@ class WarehouseTransferServiceTest {
|
||||
verify(transfers, never()).updateById(any(WarehouseTransferOrder.class));
|
||||
}
|
||||
|
||||
/** 草稿预先打印与后续正式提交使用同一服务端箱唛。 */
|
||||
/** 未建单时生成的箱唛必须完整且不重复。 */
|
||||
@Test
|
||||
void duplicateOrMismatchedPreprintedMarksRejectBeforeCreatingOrder() throws Exception {
|
||||
var mapper = new ObjectMapper().findAndRegisterModules();
|
||||
for (var marks : List.of(List.of("BX-ONE"), List.of("BX-ONE", "BX-ONE", "BX-3", "BX-4", "BX-5"))) {
|
||||
com.fasterxml.jackson.databind.node.ObjectNode json = mapper.valueToTree(request(false));
|
||||
json.remove("inboundModeValid");
|
||||
((com.fasterxml.jackson.databind.node.ObjectNode) json.get("items").get(0)).set("cartonMarks", mapper.valueToTree(marks));
|
||||
var input = mapper.treeToValue(json, WarehouseTransferRequests.Create.class);
|
||||
assertThrows(ResponseStatusException.class, () -> service.create("TENANT-A", "USER-1", input));
|
||||
}
|
||||
verify(transfers, never()).insert(any(WarehouseTransferOrder.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void draftCanPrintPersistedCartonLabels() {
|
||||
WarehouseTransferOrder transfer = persistedTransfer(); transfer.setStatus(WarehouseTransferService.DRAFT);
|
||||
|
||||
Reference in New Issue
Block a user