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/DmsWenjianBanbenControllerTest.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/jnpf-dms/jnpf-dms-controller/src/test/java/jnpf/dmsController/DmsWenjianBanbenControllerTest.java b/jnpf-dms/jnpf-dms-controller/src/test/java/jnpf/dmsController/DmsWenjianBanbenControllerTest.java
new file mode 100644
index 0000000..d13b94a
--- /dev/null
+++ b/jnpf-dms/jnpf-dms-controller/src/test/java/jnpf/dmsController/DmsWenjianBanbenControllerTest.java
@@ -0,0 +1,55 @@
+package jnpf.dmsController;
+
+import jnpf.dmsEntity.wenjianbianhao.DmsFlowEventType;
+import jnpf.dmsEntity.wenjianbianhao.form.DmsFlowEventForm;
+import jnpf.dmsService.DmsWenjianBanbenService;
+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.assertThrows;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+class DmsWenjianBanbenControllerTest {
+
+    private final DmsWenjianBanbenService service = mock(DmsWenjianBanbenService.class);
+    private final WorkFlowApi workFlowApi = mock(WorkFlowApi.class);
+    private final DmsWenjianBanbenController controller =
+            new DmsWenjianBanbenController(service, workFlowApi);
+
+    @Test
+    void revisionEventUsesServerSideWorkflowState() throws DataException {
+        DmsFlowEventForm form = form(DmsFlowEventType.END);
+        TaskEntity task = new TaskEntity();
+        task.setId("task-1");
+        task.setStatus(2);
+        when(workFlowApi.getInfoSubmit("task-1")).thenReturn(task);
+
+        controller.syncRevisionAuditFlowEvent(form);
+
+        verify(service).syncRevisionAuditFlow(
+                "flow-1", "task-1", 2, DmsFlowEventType.END);
+    }
+
+    @Test
+    void newAuditRejectsMismatchedTask() {
+        DmsFlowEventForm form = form(DmsFlowEventType.START);
+        TaskEntity task = new TaskEntity();
+        task.setId("another-task");
+        task.setStatus(1);
+        when(workFlowApi.getInfoSubmit("task-1")).thenReturn(task);
+
+        assertThrows(DataException.class, () -> controller.syncNewAuditFlowEvent(form));
+    }
+
+    private DmsFlowEventForm form(DmsFlowEventType eventType) {
+        DmsFlowEventForm form = new DmsFlowEventForm();
+        form.setFlowId("flow-1");
+        form.setTaskId("task-1");
+        form.setEventType(eventType);
+        return form;
+    }
+}

--
Gitblit v1.8.0