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"));
|
}
|
}
|