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 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 provider = mock(ObjectProvider.class); WorkflowAuditContextResolver resolver = mock(WorkflowAuditContextResolver.class); when(provider.getIfAvailable()).thenReturn(resolver); Map 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 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) { } } }