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) { }
|
}
|
}
|