test: align warehouse transfer destination contract
This commit is contained in:
+19
-18
@@ -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<WarehouseTransferOrder> transfer = ArgumentCaptor.forClass(WarehouseTransferOrder.class);
|
||||
ArgumentCaptor<LastlegOrder> 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",
|
||||
|
||||
Reference in New Issue
Block a user