package cn.iocoder.yudao.module.ums.service.application;
|
|
import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
|
import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
|
import cn.iocoder.yudao.module.ums.dal.dataobject.application.UmsApplicationDO;
|
import cn.iocoder.yudao.module.ums.dal.mysql.application.UmsApplicationMapper;
|
import cn.iocoder.yudao.module.ums.enums.UmsApplicationStatusEnum;
|
import org.junit.jupiter.api.Test;
|
import org.mockito.InjectMocks;
|
import org.mockito.Mock;
|
import static org.junit.jupiter.api.Assertions.*;
|
import static org.mockito.Mockito.*;
|
|
class UmsApplicationFeeConfirmationTest extends BaseMockitoUnitTest {
|
@InjectMocks private UmsApplicationServiceImpl service;
|
@Mock private UmsApplicationMapper mapper;
|
@Mock private BpmTaskService taskService;
|
|
@Test void nonAssigneeCannotConfirm() {
|
when(mapper.selectById(1L)).thenReturn(new UmsApplicationDO()
|
.setStatus(UmsApplicationStatusEnum.APPROVING.getStatus()).setProcessInstanceId("p1"));
|
when(taskService.getTodoTask(9L, null, "p1")).thenReturn(null);
|
assertThrows(RuntimeException.class, () -> service.confirmFee(1L, 9L, true));
|
verify(mapper, never()).update(any(), any());
|
}
|
|
@Test void completedApplicationCannotBeChanged() {
|
when(mapper.selectById(1L)).thenReturn(new UmsApplicationDO()
|
.setStatus(UmsApplicationStatusEnum.APPROVED.getStatus()).setProcessInstanceId("p1"));
|
assertFalse(service.canConfirmFee(1L, 9L));
|
verifyNoInteractions(taskService);
|
}
|
}
|