test: expand domestic container acceptance coverage
This commit is contained in:
+19
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user