This commit is contained in:
2026-10-08 19:09:30 +08:00
parent 2c0f55d9b7
commit ed99ecba1c
17 changed files with 157 additions and 106 deletions
@@ -366,8 +366,7 @@ class ReturnReceiptServiceTest {
var first = service.confirm(identity, request);
ArgumentCaptor<ReturnReceipt> savedReceipt = ArgumentCaptor.forClass(ReturnReceipt.class);
verify(receipts).insert(savedReceipt.capture());
when(receipts.findKey("operator-1", "key-final")).thenReturn(savedReceipt.getValue());
when(orders.selectById(1L)).thenReturn(order);
when(receipts.lockKey("operator-1", "key-final")).thenReturn(savedReceipt.getValue());
var replay = service.confirm(identity, request);
assertTrue(first.fullyMatched());
@@ -383,7 +382,6 @@ class ReturnReceiptServiceTest {
void rejectsOverReceiptBeforeCreatingReceiptInventoryOrBatch() {
ReturnOrder order = order("RT-1", "10", ReturnReceiptService.PARTIALLY_RECEIVED, 2, 1);
ReturnOrderItem line = item(11L, "SKU-A", 2, 1);
when(receipts.findKey("operator-1", "key-over")).thenReturn(null);
when(orders.lockNo("RT-1")).thenReturn(order);
when(orderItems.lockOrder(1L)).thenReturn(List.of(line));
@@ -398,7 +396,6 @@ class ReturnReceiptServiceTest {
@Test
void rejectsAnotherWarehousesOrderBeforeLockingSkuOrWritingInventory() {
ReturnOrder order = order("RT-1", "11", ReturnReceiptService.PENDING_RECEIPT, 2, 0);
when(receipts.findKey("operator-1", "key-cross")).thenReturn(null);
when(orders.lockNo("RT-1")).thenReturn(order);
ResponseStatusException error = assertThrows(ResponseStatusException.class, () -> service.confirm(identity,
@@ -419,7 +416,7 @@ class ReturnReceiptServiceTest {
service.confirm(identity, original);
ArgumentCaptor<ReturnReceipt> savedReceipt = ArgumentCaptor.forClass(ReturnReceipt.class);
verify(receipts).insert(savedReceipt.capture());
when(receipts.findKey("operator-1", "key-1")).thenReturn(savedReceipt.getValue());
when(receipts.lockKey("operator-1", "key-1")).thenReturn(savedReceipt.getValue());
ResponseStatusException error = assertThrows(ResponseStatusException.class, () -> service.confirm(identity,
confirm("RETURN_NO", "TRACK-CHANGED", "RC-1", "key-1",
@@ -431,7 +428,6 @@ class ReturnReceiptServiceTest {
}
private void stubNewReceipt(ReturnOrder order, List<ReturnOrderItem> items, String cartonMark) {
when(receipts.findKey(eq("operator-1"), anyString())).thenReturn(null);
when(orders.lockNo("RT-1")).thenReturn(order);
when(orderItems.lockOrder(1L)).thenReturn(items);
when(orderItems.listOrder(1L)).thenReturn(items);
@@ -455,6 +451,10 @@ class ReturnReceiptServiceTest {
var result = service.confirm(identity, request);
verify(receipts, never()).findKey(anyString(), anyString());
var reads = org.mockito.Mockito.inOrder(orders, receipts);
reads.verify(orders).lockNo("RT-1");
reads.verify(receipts).lockKey("operator-1", "concurrent-key");
assertEquals("RR-COMMITTED", result.receiptNo());
assertEquals("RB-COMMITTED", result.receiptBatchNo());
assertEquals(1, result.receivedQuantity());