test: align warehouse transfer destination contract
This commit is contained in:
+19
-18
@@ -328,28 +328,19 @@ class WarehouseTransferServiceTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void transferCanEnterTheTransitWarehouseBeforeFbaDestinationIsKnown() {
|
void transferRejectsRequestWithoutDestination() {
|
||||||
WarehouseTransferRequests.Create request = new WarehouseTransferRequests.Create(
|
WarehouseTransferRequests.Create request = new WarehouseTransferRequests.Create(
|
||||||
"IN-1", List.of(11L), "WH-1", null, "123 Pickup Road", 5,
|
"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),
|
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",
|
null, null, null, "FBA destination will be supplied later", false, "key-no-fba",
|
||||||
List.of(new WarehouseTransferRequests.Item("SKU-1", "Product", 5, "MARK-1")));
|
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);
|
assertEquals(400, exception.getStatusCode().value());
|
||||||
ArgumentCaptor<LastlegOrder> tailOrder = ArgumentCaptor.forClass(LastlegOrder.class);
|
assertEquals("仓储转运必须选择 FBA 仓或私人仓", exception.getReason());
|
||||||
verify(transfers).insert(transfer.capture());
|
verifyNoInteractions(transfers);
|
||||||
verify(orders).insert(tailOrder.capture());
|
|
||||||
assertNull(transfer.getValue().getFbaWarehouseCode());
|
|
||||||
assertNull(transfer.getValue().getFbaShipmentNo());
|
|
||||||
assertNull(tailOrder.getValue().getFbaWarehouseCode());
|
|
||||||
assertEquals("WAREHOUSE_PICKUP", transfer.getValue().getDeliveryMethod());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -391,11 +382,13 @@ class WarehouseTransferServiceTest {
|
|||||||
@Test
|
@Test
|
||||||
void newTransitInboundCreatesSnapshotAndImmutableCartonMarksWithoutHistoricalInventory() {
|
void newTransitInboundCreatesSnapshotAndImmutableCartonMarksWithoutHistoricalInventory() {
|
||||||
WarehouseTransferRequests.Create request = new WarehouseTransferRequests.Create(
|
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),
|
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),
|
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(transfers.findNo(eq("TENANT-A"), anyString())).thenAnswer(invocation -> transfer(WarehouseTransferService.DRAFT));
|
||||||
when(transferItems.selectList(any())).thenReturn(List.of());
|
when(transferItems.selectList(any())).thenReturn(List.of());
|
||||||
when(sourceOrders.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) {
|
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",
|
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",
|
"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",
|
"TRACK-1", "BOX-1-5", "remark", needRelabel, "key-1",
|
||||||
|
|||||||
Reference in New Issue
Block a user