From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-dms/jnpf-dms-controller/src/test/java/jnpf/dmsController/DmsWenjianBianhaoControllerTest.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 98 insertions(+), 0 deletions(-)
diff --git a/jnpf-dms/jnpf-dms-controller/src/test/java/jnpf/dmsController/DmsWenjianBianhaoControllerTest.java b/jnpf-dms/jnpf-dms-controller/src/test/java/jnpf/dmsController/DmsWenjianBianhaoControllerTest.java
new file mode 100644
index 0000000..402ff0f
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-controller/src/test/java/jnpf/dmsController/DmsWenjianBianhaoControllerTest.java
@@ -0,0 +1,98 @@
+package jnpf.dmsController;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import jnpf.dmsEntity.wenjianbianhao.DmsFlowEventType;
+import jnpf.dmsEntity.wenjianbianhao.form.DmsFlowEventForm;
+import jnpf.dmsEntity.wenjianbianhao.vo.DmsWenjianBianhaoRuleVO;
+import jnpf.dmsService.DmsWenjianBianhaoApplicationService;
+import jnpf.exception.DataException;
+import jnpf.flowable.WorkFlowApi;
+import jnpf.flowable.entity.TaskEntity;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+class DmsWenjianBianhaoControllerTest {
+
+ private final DmsWenjianBianhaoApplicationService service =
+ mock(DmsWenjianBianhaoApplicationService.class);
+ private final WorkFlowApi workFlowApi = mock(WorkFlowApi.class);
+ private final DmsWenjianBianhaoController controller =
+ new DmsWenjianBianhaoController(service, workFlowApi);
+
+ @Test
+ void startEventReadsWorkflowStateBeforeCallingBusinessService() throws DataException {
+ DmsFlowEventForm form = form("flow-1", "task-1", DmsFlowEventType.START);
+ TaskEntity task = new TaskEntity();
+ task.setId("task-1");
+ task.setStatus(1);
+ when(workFlowApi.getInfoSubmit("task-1")).thenReturn(task);
+
+ controller.syncApplicationFlowEvent(form);
+
+ verify(service).syncApplicationFlow(
+ "flow-1", "task-1", 1, DmsFlowEventType.START);
+ }
+
+ @Test
+ void rejectsMissingWorkflowTask() {
+ DmsFlowEventForm form = form("flow-1", "task-1", DmsFlowEventType.END);
+ when(workFlowApi.getInfoSubmit("task-1")).thenReturn(null);
+
+ assertThrows(DataException.class, () -> controller.syncApplicationFlowEvent(form));
+ }
+
+ @Test
+ void acceptsJnpfSnakeCaseEventParameters() throws Exception {
+ DmsFlowEventForm form = new ObjectMapper().readValue(
+ "{\"flow_id\":\"flow-1\",\"task_id\":\"task-1\",\"event_type\":\"recall\"}",
+ DmsFlowEventForm.class);
+
+ assertEquals("flow-1", form.getFlowId());
+ assertEquals("task-1", form.getTaskId());
+ assertEquals(DmsFlowEventType.RECALL, form.getEventType());
+ }
+
+ @Test
+ void ruleOptionUsesJnpfInterfaceFieldNames() throws Exception {
+ DmsWenjianBianhaoRuleVO rule = new DmsWenjianBianhaoRuleVO();
+ rule.setId("rule-1");
+ rule.setGuizeMingcheng("QC-SOP瑙勫垯");
+ rule.setYulanBianhao("QC-SOP-寰呭");
+ rule.setGuizeXianshi("QC-SOP瑙勫垯 / QC-SOP-寰呭");
+
+ String json = new ObjectMapper().writeValueAsString(rule);
+
+ org.junit.jupiter.api.Assertions.assertTrue(json.contains("\"f_id\":\"rule-1\""));
+ org.junit.jupiter.api.Assertions.assertTrue(
+ json.contains("\"yulan_bianhao\":\"QC-SOP-寰呭\""));
+ org.junit.jupiter.api.Assertions.assertTrue(json.contains("\"guize_xianshi\""));
+ }
+
+ @Test
+ void nameChangeUsesItsIndependentBusinessService() throws DataException {
+ DmsFlowEventForm form = form("flow-2", "task-2", DmsFlowEventType.END);
+ TaskEntity task = new TaskEntity();
+ task.setId("task-2");
+ task.setStatus(2);
+ when(workFlowApi.getInfoSubmit("task-2")).thenReturn(task);
+
+ controller.syncNameChangeFlowEvent(form);
+
+ verify(service).syncNameChangeFlow(
+ "flow-2", "task-2", 2, DmsFlowEventType.END);
+ }
+
+ private DmsFlowEventForm form(String flowId, String taskId,
+ DmsFlowEventType eventType) {
+ DmsFlowEventForm form = new DmsFlowEventForm();
+ form.setFlowId(flowId);
+ form.setTaskId(taskId);
+ form.setEventType(eventType);
+ return form;
+ }
+}
--
Gitblit v1.8.0