package cn.iocoder.yudao.module.erp.api.purchase;
|
|
import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseOrderItemDO;
|
import cn.iocoder.yudao.module.erp.dal.mysql.purchase.ErpPurchaseOrderItemMapper;
|
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.mockito.Mock;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
import java.math.BigDecimal;
|
|
import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
|
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.PURCHASE_ORDER_ITEM_RETURN_FAIL_IN_EXCEED;
|
import static org.mockito.Mockito.*;
|
|
@ExtendWith(MockitoExtension.class)
|
class ErpPurchaseOrderReturnCountTest {
|
|
@Mock private ErpPurchaseOrderItemMapper itemMapper;
|
|
@Test
|
void cumulativeReturnCannotExceedReceived() {
|
ErpPurchaseOrderApiImpl api = new ErpPurchaseOrderApiImpl();
|
ReflectionTestUtils.setField(api, "purchaseOrderItemMapper", itemMapper);
|
when(itemMapper.selectById(1L)).thenReturn(new ErpPurchaseOrderItemDO()
|
.setId(1L).setProductId(1996L).setInCount(BigDecimal.valueOf(2))
|
.setReturnCount(BigDecimal.ONE));
|
assertServiceException(() -> api.updateOrderItemReturnCount(1L, BigDecimal.valueOf(2)),
|
PURCHASE_ORDER_ITEM_RETURN_FAIL_IN_EXCEED, "产品ID:1996", BigDecimal.valueOf(2));
|
verify(itemMapper, never()).updateById(any(ErpPurchaseOrderItemDO.class));
|
}
|
}
|