贴标申请,仓储转运
This commit is contained in:
+58
-10
@@ -47,6 +47,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.NullSource;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
@@ -438,20 +441,65 @@ class WarehouseTransferServiceTest {
|
||||
verifyNoInteractions(transfers);
|
||||
}
|
||||
|
||||
@Test
|
||||
void transferRejectsRequestWithoutDestination() {
|
||||
@ParameterizedTest
|
||||
@NullSource
|
||||
@ValueSource(strings = {"NONE"})
|
||||
void transferWithoutDestinationCanBeCreatedAndSubmitted(String destinationType) {
|
||||
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, destinationType, null, null, null,
|
||||
null, null, null, null, "123 Pickup Road", null, null, 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")));
|
||||
null, null, null, null, "Destination will be supplied before outbound", false,
|
||||
null, null, null, null, null, "key-no-fba",
|
||||
List.of(new WarehouseTransferRequests.Item("SKU-1", "Product", 5, "MARK-1")), null);
|
||||
|
||||
ResponseStatusException exception = assertThrows(ResponseStatusException.class,
|
||||
() -> service.create("TENANT-A", "USER-1", request));
|
||||
when(inboundSnapshots.findId("TENANT-A", "IN-1")).thenReturn(101L);
|
||||
when(orders.selectList(any())).thenReturn(List.of(historicalOrder()));
|
||||
WarehouseTransferOrder draft = transfer(WarehouseTransferService.DRAFT);
|
||||
draft.setFbaWarehouseCode(null);
|
||||
when(transfers.findNo(eq("TENANT-A"), anyString())).thenReturn(draft);
|
||||
when(transfers.lockNo("TENANT-A", "WTR-1")).thenReturn(draft);
|
||||
when(orders.selectById(draft.getLastlegOrderId())).thenReturn(tailOrder());
|
||||
when(transferItems.selectList(any())).thenReturn(List.of());
|
||||
when(sourceOrders.selectList(any())).thenReturn(List.of());
|
||||
|
||||
assertEquals(400, exception.getStatusCode().value());
|
||||
assertEquals("仓储转运必须选择 FBA 仓或私人仓", exception.getReason());
|
||||
verifyNoInteractions(transfers);
|
||||
service.create("TENANT-A", "USER-1", request);
|
||||
var result = service.submit("TENANT-A", "WTR-1", "USER-1");
|
||||
|
||||
ArgumentCaptor<WarehouseTransferOrder> created = ArgumentCaptor.forClass(WarehouseTransferOrder.class);
|
||||
verify(transfers).insert(created.capture());
|
||||
assertNull(created.getValue().getDestinationType());
|
||||
assertNull(created.getValue().getFbaWarehouseCode());
|
||||
assertEquals(WarehouseTransferService.PENDING_REVIEW, result.status());
|
||||
verify(relabelApplications, never()).insert(any(RelabelApplication.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void merchantCanClearDestinationWhenEditingDraft() {
|
||||
WarehouseTransferOrder transfer = transfer(WarehouseTransferService.DRAFT);
|
||||
transfer.setDestinationType("FBA");
|
||||
transfer.setDestinationWarehouseCode("ONT8");
|
||||
LastlegOrder order = tailOrder();
|
||||
when(transfers.lockNo("TENANT-A", "WTR-1")).thenReturn(transfer);
|
||||
when(transfers.findNo("TENANT-A", "WTR-1")).thenReturn(transfer);
|
||||
when(orders.selectById(transfer.getLastlegOrderId())).thenReturn(order);
|
||||
when(transferItems.selectList(any())).thenReturn(List.of());
|
||||
when(sourceOrders.selectList(any())).thenReturn(List.of());
|
||||
WarehouseTransferRequests.Create request = new WarehouseTransferRequests.Create(
|
||||
"IN-1", List.of(11L), "WH-1", null, "NONE", null, null, null,
|
||||
null, null, null, null, "123 Pickup Road", null, null, 5,
|
||||
new BigDecimal("0.2500"), "WAREHOUSE_PICKUP", LocalDateTime.of(2026, 9, 12, 10, 0),
|
||||
null, null, null, null, null, false, null, null, null, null, null, "edit-no-fba",
|
||||
List.of(new WarehouseTransferRequests.Item("SKU-1", "Product", 5, "MARK-1")), null);
|
||||
|
||||
var result = service.updateDraft("TENANT-A", "WTR-1", "USER-1", request);
|
||||
|
||||
assertEquals(WarehouseTransferService.DRAFT, result.status());
|
||||
assertNull(transfer.getDestinationType());
|
||||
assertNull(transfer.getDestinationWarehouseCode());
|
||||
assertNull(transfer.getFbaWarehouseCode());
|
||||
assertNull(order.getFbaWarehouseCode());
|
||||
verify(transfers).updateById(transfer);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user