package cn.iocoder.yudao.module.mes.service.wm.itemreceipt;
|
|
import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.itemreceipt.MesWmItemReceiptDO;
|
import cn.iocoder.yudao.module.mes.dal.mysql.wm.itemreceipt.MesWmItemReceiptMapper;
|
import cn.iocoder.yudao.module.mes.enums.wm.MesWmItemReceiptStatusEnum;
|
import cn.iocoder.yudao.module.mes.service.wm.itemreceipt.listener.MesWmItemReceiptStatusListener;
|
import org.junit.jupiter.api.Test;
|
import org.springframework.test.util.ReflectionTestUtils;
|
import static org.mockito.Mockito.*;
|
|
class MesWmItemReceiptStatusListenerTest {
|
@Test void ignoresAnotherProcessWithSameBusinessKey() {
|
var listener = new MesWmItemReceiptStatusListener();
|
var mapper = mock(MesWmItemReceiptMapper.class);
|
var service = mock(MesWmItemReceiptService.class);
|
ReflectionTestUtils.setField(listener, "itemReceiptMapper", mapper);
|
ReflectionTestUtils.setField(listener, "itemReceiptService", service);
|
var receipt = new MesWmItemReceiptDO().setId(12L).setProcessInstanceId("receipt-process").setStatus(MesWmItemReceiptStatusEnum.APPROVING.getStatus());
|
when(mapper.selectById(12L)).thenReturn(receipt);
|
var event = new BpmProcessInstanceStatusEvent(this).setBusinessKey("12").setId("unrelated-process").setStatus(2);
|
listener.onApplicationEvent(event);
|
verifyNoInteractions(service);
|
}
|
@Test void updatesMatchingProcess() {
|
var listener = new MesWmItemReceiptStatusListener();
|
var mapper = mock(MesWmItemReceiptMapper.class);
|
var service = mock(MesWmItemReceiptService.class);
|
ReflectionTestUtils.setField(listener, "itemReceiptMapper", mapper);
|
ReflectionTestUtils.setField(listener, "itemReceiptService", service);
|
when(mapper.selectById(12L)).thenReturn(new MesWmItemReceiptDO().setId(12L).setProcessInstanceId("receipt-process").setStatus(MesWmItemReceiptStatusEnum.APPROVING.getStatus()));
|
listener.onApplicationEvent(new BpmProcessInstanceStatusEvent(this).setBusinessKey("12").setId("receipt-process").setStatus(2));
|
verify(service).updateItemReceiptAuditStatus(12L, 2);
|
}
|
}
|