package cn.iocoder.yudao.module.mes.service.wm.salesnotice;
|
|
import cn.iocoder.yudao.module.erp.api.sale.ErpSaleOrderApi;
|
import cn.iocoder.yudao.module.mes.dal.mysql.wm.salesnotice.MesWmSalesNoticeMapper;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.salesnotice.MesWmSalesNoticeDO;
|
import org.junit.jupiter.api.Test;
|
import org.springframework.test.util.ReflectionTestUtils;
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
import static org.mockito.Mockito.*;
|
|
class SalesNoticeOrderGuardTest {
|
@Test
|
void cancelledOrderCannotGenerateDeliveryNotice() {
|
var orders = mock(ErpSaleOrderApi.class);
|
var notices = mock(MesWmSalesNoticeMapper.class);
|
when(orders.lockSaleOrderForNotice(1L, null)).thenThrow(new IllegalArgumentException("订单已作废"));
|
var service = new MesWmSalesNoticeServiceImpl();
|
ReflectionTestUtils.setField(service, "saleOrderApi", orders);
|
ReflectionTestUtils.setField(service, "salesNoticeMapper", notices);
|
assertThrows(RuntimeException.class, () -> service.generateSalesNoticeFromSaleOrder(1L));
|
verify(notices, never()).insert(any(MesWmSalesNoticeDO.class));
|
}
|
}
|