test: expand domestic container acceptance coverage

This commit is contained in:
2026-09-04 12:02:38 +08:00
parent 55cad93be3
commit b971ca2f7c
6 changed files with 142 additions and 4 deletions
@@ -1,6 +1,7 @@
package com.baiyue.warehouse.domesticcontainer.service;
import com.baiyue.common.core.exception.BizException;
import com.baiyue.common.core.api.ResultCode;
import com.baiyue.warehouse.domesticcontainer.dto.DomesticContainerDtos;
import com.baiyue.warehouse.domesticcontainer.entity.DomesticContainerIdempotencyEntity;
import com.baiyue.warehouse.domesticcontainer.entity.DomesticContainerInventoryEntity;
@@ -76,6 +77,24 @@ class DomesticContainerServiceTest {
verify(repository, never()).insertOrder(any());
}
@Test
void completedOutboundRequiresInventoryVersionBeforeWriting() {
when(warehouses.findActiveOwned(0L, 10L)).thenReturn(warehouse());
when(repository.claim(anyLong(), eq("OUTBOUND"), eq("out-no-version"), any())).thenReturn(1);
DomesticContainerInventoryEntity inventory = inventory(120, 0, 120, 3);
when(repository.lockInventory(10L, "MSCU1234567")).thenReturn(inventory);
assertThatThrownBy(() -> service.createOutbound(new DomesticContainerDtos.CreateOutboundRequest(10L,
"MSCU1234567", 1, LocalDateTime.now(), "COMPLETED", null, "out-no-version", null)))
.isInstanceOf(BizException.class)
.extracting(error -> ((BizException) error).getResultCode())
.isEqualTo(ResultCode.VALIDATION_FAILED);
assertThat(inventory.getAvailableBoxes()).isEqualTo(120);
verify(repository, never()).insertOrder(any());
verify(repository, never()).updateInventory(any());
verify(repository, never()).insertTransaction(any());
}
@Test
void replaysCompletedIdempotentRequestWithoutWriting() {
DomesticContainerIdempotencyEntity replay = new DomesticContainerIdempotencyEntity();