xiaoyi
2 天以前 8782476e9cb4480be5da588888d08022b7942d0c
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
package cn.iocoder.yudao.module.erp.api.sale;
 
import cn.iocoder.yudao.module.erp.dal.dataobject.sale.ErpSaleOrderDO;
import cn.iocoder.yudao.module.erp.dal.mysql.sale.ErpSaleOrderMapper;
import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus;
import org.junit.jupiter.api.Test;
import org.springframework.test.util.ReflectionTestUtils;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
 
class ErpSaleOrderNoticeLockTest {
    @Test
    void cancelledOrderCannotBeUsedForNotice() {
        var mapper = mock(ErpSaleOrderMapper.class);
        when(mapper.selectByIdForUpdate(1L)).thenReturn(new ErpSaleOrderDO().setId(1L).setNo("SO-1").setStatus(ErpAuditStatus.CANCEL.getStatus()));
        var api = new ErpSaleOrderApiImpl(); ReflectionTestUtils.setField(api, "saleOrderMapper", mapper);
        assertThrows(RuntimeException.class, () -> api.lockSaleOrderForNotice(1L, "SO-1"));
    }
    @Test
    void orderCodeMustMatchLockedOrder() {
        var mapper = mock(ErpSaleOrderMapper.class);
        when(mapper.selectByIdForUpdate(1L)).thenReturn(new ErpSaleOrderDO().setId(1L).setNo("SO-1").setStatus(ErpAuditStatus.APPROVE.getStatus()));
        var api = new ErpSaleOrderApiImpl(); ReflectionTestUtils.setField(api, "saleOrderMapper", mapper);
        assertThrows(RuntimeException.class, () -> api.lockSaleOrderForNotice(1L, "SO-2"));
    }
}