云
5 天以前 d0cf2cb2c352bdeb146aad2bb57ba7d39cef3bbd
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
27
28
29
30
31
32
33
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);
    }
}