Skip to content

Commit 57560b4

Browse files
committed
fix #142
1 parent a3ada46 commit 57560b4

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

springboot-starter-flow/src/test/java/com/codingapi/springboot/flow/test/FlowRecallTest.java

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,4 +130,107 @@ void recall1() {
130130

131131
}
132132

133+
134+
/**
135+
* 撤回测试(流程已读)
136+
*/
137+
@Test
138+
void recall2() {
139+
PageRequest pageRequest = PageRequest.of(0, 1000);
140+
141+
User lorne = new User("lorne");
142+
userRepository.save(lorne);
143+
144+
User user = new User("张飞");
145+
userRepository.save(user);
146+
147+
User dept = new User("刘备");
148+
userRepository.save(dept);
149+
150+
User boss = new User("诸葛亮");
151+
userRepository.save(boss);
152+
153+
FlowWork flowWork = FlowWorkBuilder.builder(user)
154+
.title("请假流程")
155+
.nodes()
156+
.node("开始节点", "start", "default", ApprovalType.UN_SIGN, OperatorMatcher.anyOperatorMatcher())
157+
.node("部门领导审批", "dept", "default", ApprovalType.SIGN, OperatorMatcher.specifyOperatorMatcher(dept.getUserId(),lorne.getUserId()))
158+
.node("总经理审批", "manager", "default", ApprovalType.SIGN, OperatorMatcher.specifyOperatorMatcher(boss.getUserId()))
159+
.node("结束节点", "over", "default", ApprovalType.UN_SIGN, OperatorMatcher.anyOperatorMatcher())
160+
.relations()
161+
.relation("部门领导审批", "start", "dept")
162+
.relation("总经理审批", "dept", "manager")
163+
.relation("结束节点", "manager", "over")
164+
.build();
165+
166+
flowWorkRepository.save(flowWork);
167+
168+
String workCode = flowWork.getCode();
169+
170+
Leave leave = new Leave("我要出去看看");
171+
leaveRepository.save(leave);
172+
173+
// 创建流程
174+
flowService.startFlow(workCode, user, leave, "发起流程");
175+
176+
// 查看我的待办
177+
List<FlowRecord> userTodos = flowRecordRepository.findTodoByOperatorId(user.getUserId(), pageRequest).getContent();
178+
assertEquals(1, userTodos.size());
179+
180+
// 提交流程
181+
FlowRecord userTodo = userTodos.get(0);
182+
assertEquals(0, userTodo.getTimeoutTime());
183+
184+
flowService.submitFlow(userTodo.getId(), user, leave, Opinion.pass("同意").specify(lorne.getUserId()));
185+
186+
// 查看刘备经理的待办
187+
List<FlowRecord> deptTodos = flowRecordRepository.findTodoByOperatorId(dept.getUserId(), pageRequest).getContent();
188+
assertEquals(0, deptTodos.size());
189+
190+
List<FlowRecord> lorneTodos = flowRecordRepository.findTodoByOperatorId(lorne.getUserId(), pageRequest).getContent();
191+
assertEquals(1, lorneTodos.size());
192+
193+
// 提交委托lorne部门经理的审批
194+
FlowRecord lorneTodo = lorneTodos.get(0);
195+
flowService.submitFlow(lorneTodo.getId(), lorne, leave, Opinion.pass("同意"));
196+
197+
// 查看总经理的待办
198+
List<FlowRecord> bossTodos = flowRecordRepository.findTodoByOperatorId(boss.getUserId(), pageRequest).getContent();
199+
assertEquals(1, bossTodos.size());
200+
201+
// 提交委托boos部门经理的审批
202+
FlowRecord bossTodo = bossTodos.get(0);
203+
flowService.detail(bossTodo.getId());
204+
flowService.save(bossTodo.getId(), boss, leave, "...");
205+
206+
List<FlowRecord> lorneDones = flowRecordRepository.findDoneByOperatorId(lorne.getUserId(), pageRequest).getContent();
207+
assertEquals(1, lorneDones.size());
208+
209+
FlowRecord lorneDone = lorneDones.get(0);
210+
flowService.recall(lorneDone.getId(),lorne);
211+
212+
lorneTodos = flowRecordRepository.findTodoByOperatorId(lorne.getUserId(), pageRequest).getContent();
213+
assertEquals(1, lorneTodos.size());
214+
215+
lorneTodo = lorneTodos.get(0);
216+
flowService.submitFlow(lorneTodo.getId(), lorne, leave, Opinion.pass("同意"));
217+
218+
bossTodos = flowRecordRepository.findTodoByOperatorId(boss.getUserId(), pageRequest).getContent();
219+
assertEquals(1, bossTodos.size());
220+
221+
bossTodo = bossTodos.get(0);
222+
flowService.submitFlow(bossTodo.getId(), boss, leave, Opinion.pass("同意"));
223+
224+
// 查看所有流程
225+
List<FlowRecord> records = flowRecordRepository.findAll(pageRequest).getContent();
226+
assertEquals(3, records.size());
227+
228+
// 查看所有流程是否都已经结束
229+
assertTrue(records.stream().allMatch(FlowRecord::isFinish));
230+
231+
List<BindDataSnapshot> snapshots = flowBindDataRepository.findAll();
232+
assertEquals(5, snapshots.size());
233+
234+
}
235+
133236
}

0 commit comments

Comments
 (0)