From 0d145b84db38f84855cb1e0efe73f7440aa3e0d3 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Wed, 23 Sep 2026 13:10:04 +0800 Subject: [PATCH] test: align warehouse transfer destination contract --- .../service/WarehouseTransferServiceTest.java | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/lastleg-service/src/test/java/com/baiyue/lastleg/transfer/service/WarehouseTransferServiceTest.java b/lastleg-service/src/test/java/com/baiyue/lastleg/transfer/service/WarehouseTransferServiceTest.java index 7ecafb8ee..a0797e2a3 100644 --- a/lastleg-service/src/test/java/com/baiyue/lastleg/transfer/service/WarehouseTransferServiceTest.java +++ b/lastleg-service/src/test/java/com/baiyue/lastleg/transfer/service/WarehouseTransferServiceTest.java @@ -328,28 +328,19 @@ class WarehouseTransferServiceTest { } @Test - void transferCanEnterTheTransitWarehouseBeforeFbaDestinationIsKnown() { + void transferRejectsRequestWithoutDestination() { WarehouseTransferRequests.Create request = new WarehouseTransferRequests.Create( "IN-1", List.of(11L), "WH-1", null, "123 Pickup Road", 5, new BigDecimal("0.2500"), "WAREHOUSE_PICKUP", LocalDateTime.of(2026, 9, 12, 10, 0), null, null, null, "FBA destination will be supplied later", false, "key-no-fba", List.of(new WarehouseTransferRequests.Item("SKU-1", "Product", 5, "MARK-1"))); - when(inboundSnapshots.findId("TENANT-A", "IN-1")).thenReturn(101L); - when(orders.selectList(any())).thenReturn(List.of(historicalOrder())); - when(transfers.findNo(eq("TENANT-A"), org.mockito.ArgumentMatchers.anyString())).thenAnswer(invocation -> transfer(WarehouseTransferService.DRAFT)); - when(transferItems.selectList(any())).thenReturn(List.of()); - when(sourceOrders.selectList(any())).thenReturn(List.of()); - service.create("TENANT-A", "USER-1", request); + ResponseStatusException exception = assertThrows(ResponseStatusException.class, + () -> service.create("TENANT-A", "USER-1", request)); - ArgumentCaptor transfer = ArgumentCaptor.forClass(WarehouseTransferOrder.class); - ArgumentCaptor tailOrder = ArgumentCaptor.forClass(LastlegOrder.class); - verify(transfers).insert(transfer.capture()); - verify(orders).insert(tailOrder.capture()); - assertNull(transfer.getValue().getFbaWarehouseCode()); - assertNull(transfer.getValue().getFbaShipmentNo()); - assertNull(tailOrder.getValue().getFbaWarehouseCode()); - assertEquals("WAREHOUSE_PICKUP", transfer.getValue().getDeliveryMethod()); + assertEquals(400, exception.getStatusCode().value()); + assertEquals("仓储转运必须选择 FBA 仓或私人仓", exception.getReason()); + verifyNoInteractions(transfers); } @Test @@ -391,11 +382,13 @@ class WarehouseTransferServiceTest { @Test void newTransitInboundCreatesSnapshotAndImmutableCartonMarksWithoutHistoricalInventory() { WarehouseTransferRequests.Create request = new WarehouseTransferRequests.Create( - null, null, "WH-1", null, "123 Pickup Road", 5, + null, null, "WH-1", "ONT8", "FBA", "FBA-ONT8", "ONT8", "Amazon ONT8", + null, null, null, null, "123 Pickup Road", null, null, 5, new BigDecimal("0.2500"), "WAREHOUSE_PICKUP", LocalDateTime.of(2026, 9, 12, 10, 0), - null, "TRACK-MUST-NOT-BE-SAVED", null, "Incoming transit cargo", true, "key-incoming", + 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), - new WarehouseTransferRequests.Item("SKU-2", "Product B", 3, null))); + 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()); when(sourceOrders.selectList(any())).thenReturn(List.of()); @@ -808,6 +801,14 @@ class WarehouseTransferServiceTest { } private static WarehouseTransferRequests.Create request(boolean needRelabel) { + if (!needRelabel) { + return new WarehouseTransferRequests.Create( + "IN-1", List.of(11L), "WH-1", null, "PRIVATE", null, null, null, + "123 Private Road", "92618", "Alice", "13800000000", "123 Private Road", null, null, 5, + new BigDecimal("0.2500"), "TRUCK", LocalDateTime.of(2026, 8, 20, 10, 0), + null, null, null, null, "remark", false, null, null, null, null, null, "key-1", + List.of(new WarehouseTransferRequests.Item("SKU-1", "Product", 5, "MARK-1")), null); + } return new WarehouseTransferRequests.Create("IN-1", List.of(11L), "WH-1", "ONT8", "123 FBA Road", 5, new BigDecimal("0.2500"), "TRUCK", LocalDateTime.of(2026, 8, 20, 10, 0), "FBA-SHP-1", "TRACK-1", "BOX-1-5", "remark", needRelabel, "key-1",