gaoluyang
昨天 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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));
    }
}