刘光辉
8 小时以前 06f314545ac3514d7ce28939920866ae8188d31c
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
34
35
36
37
38
39
40
41
42
43
package jnpf.onlinedev.util;
 
import jnpf.base.model.flow.FlowFormDataModel;
import jnpf.exception.WorkFlowException;
import jnpf.flowable.model.filepermission.WorkflowAuditContextResolver;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.ObjectProvider;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;
 
public class DmsWorkflowAuditContextTest {
    @Test public void unrelatedFormsAndPreWorkflowDraftsDoNotResolveHandling() throws Exception {
        ObjectProvider<WorkflowAuditContextResolver> provider = mock(ObjectProvider.class);
        FlowFormCustomUtils forms = new FlowFormCustomUtils(null, null, null, null, null, provider);
        FlowFormDataModel model = FlowFormDataModel.builder().id("task").formId("form").workflowOperatorId("operator").build();
        assertNull(forms.dmsWorkflowAuditContext("lims_other", model));
        model.setId(null);
        assertNull(forms.dmsWorkflowAuditContext("dms_wenjian_xinzeng_shenhe", model));
        model.setId("task"); model.setWorkflowOperatorId(null);
        assertNull(forms.dmsWorkflowAuditContext("dms_wenjian_xiuding_shenhe", model));
        verifyNoInteractions(provider);
    }
    @Test public void bothDmsFormsResolveTheExactHandlingReference() throws Exception {
        ObjectProvider<WorkflowAuditContextResolver> provider = mock(ObjectProvider.class);
        WorkflowAuditContextResolver resolver = mock(WorkflowAuditContextResolver.class);
        when(provider.getIfAvailable()).thenReturn(resolver);
        Map<String,String> frozen = Map.of("taskId", "task", "operatorId", "operator", "nodeName", "审核");
        when(resolver.resolve("task", "form", "operator")).thenReturn(frozen);
        FlowFormCustomUtils forms = new FlowFormCustomUtils(null, null, null, null, null, provider);
        FlowFormDataModel model = FlowFormDataModel.builder().id("task").formId("form").workflowOperatorId("operator").build();
        assertEquals(frozen, forms.dmsWorkflowAuditContext("dms_wenjian_xinzeng_shenhe", model));
        assertEquals(frozen, forms.dmsWorkflowAuditContext("dms_wenjian_xiuding_shenhe", model));
        verify(resolver, times(2)).resolve("task", "form", "operator");
    }
    @Test public void missingResolverDoesNotPretendAssociationSucceeded() throws Exception {
        ObjectProvider<WorkflowAuditContextResolver> provider = mock(ObjectProvider.class);
        FlowFormCustomUtils forms = new FlowFormCustomUtils(null, null, null, null, null, provider);
        FlowFormDataModel model = FlowFormDataModel.builder().id("task").formId("form").workflowOperatorId("operator").build();
        try { forms.dmsWorkflowAuditContext("dms_wenjian_xinzeng_shenhe", model); fail(); }
        catch (WorkFlowException expected) { }
    }
}