'>=5000元':
'<5000元'}"
g="301,205,48,48"name="金额判断">
测试代码:
Java代码
1./**
2. * CopyRight (C) 2006-2009 yeyong
3. * @author yy
4. * @project JbpmExamples
5. * @version 1.0
6. * @mail yy629_86 at 163 dot com
7. * @date 2009-9-9 下午3:
12:
13
8. * @description
9. */
10.package loan;
11.
12.import java.util.HashMap;
13.import java.util.List;
14.import java.util.Map;
15.
16.import org.jbpm.api.ProcessInstance;
17.import org.jbpm.api.history.HistoryProcessInstance;
18.import org.jbpm.api.task.Task;
19.import org.jbpm.test.JbpmTestCase;
20.
21./**
22. * @author yeyong
23. */
24.public class LoanTest extends JbpmTestCase {
25. String deploymentId;
26.
27. @Override
28. protected void setUp() throws Exception {
29. super.setUp();
30. deploymentId = repositoryService.createDeployment().addResourceFromClasspath("loan/loan.jpdl.xml")
31. .deploy();
32. }
33.
34. @Override
35. protected void tearDown() throws Exception {
36. repositoryService.deleteDeploymentCascade(deploymentId);
37. super.tearDown();
38. }
39.
40. /**
41. * 测试用例
42. *
43. * 张三 申请4000元, 部门经理驳回
44. */
45. public void test4000ButManagerDisapprove() {
46. String curUser = "Zhang San";
47. ProcessInstance pi = startLoanProcess(curUser);
48. String piId = pi.getId();
49. filloutApplication(piId, curUser, 4000);
50.
51. curUser = "manager";
52. managerApprove(piId, curUser, false, "最近资金紧张,暂不同意."); // 部门经理不同意
53.
54. pi = executionService.findProcessInstanceById(piId);
55. assertNull(pi); // 流程结束
56.
57. HistoryProcessInstance hpi = getHistoryProcessInstanceByProcessInstanceId(piId);
58. assertEquals(hpi.getState(), "cancel"); // 流程结束状态是cancel , 取消
59. }
60.
61. /**
62. * 测试用例
63. *
64. * 李四 申请4000元,部门经理同意
65. */
66. public void test4000AndManagerApprove() {
67. String curUser = "Li si";
68. ProcessInstance pi = startLoanProcess(curUser);
69. String piId = pi.getId();
70. filloutApplication(piId, curUser, 4000);
71.
72. curUser = "manager";
73. managerApprove(piId, curUser, true, "同意."); // 部门经理同意
74.
75. pi = executionService.findProcessInstanceById(piId);
76. assertNotNull(pi); // 流程未结束
77. assertNotNull(pi.findActiveExecutionIn("财务拨款")); // 财务拨款处于活动状态
78.
79. curUser = "finance";
80. earmark(piId, curUser, piId); // 拨款
81.
82. pi = executionService.findProcessInstanceById(piId);
83. assertNull(pi); //流程结束
84.
85. HistoryProcessInstance hpi = getHistoryProcessInstanceByProcessInstanceId(piId);
86. assertEquals(hpi.getState(), "ended"); // 流程结束状态是ended, 正常结束
87. }
88.
89. /**
90. * 测试用例
91. *
92. * 王五 申请6000元,部门经理驳回
93. */
94. public void test6000ButManagerDisapprove() {
95. String curUser = "Wang Wu";
96. ProcessInstance pi = startLoanProcess(curUser);
97. String piId = pi.getId();
98. filloutApplication(piId, curUser, 6000);
99.
100. curUser = "manager";
101. managerApprove(piId, curUser, false, "最近资金紧张,暂不同意.");
102.
103. pi = executionService.findProcessInstanceById(piId);
104. assertNull(pi);
105.
106. HistoryProcessInstance hpi = getHistoryProcessInstanceByProcessInstanceId(piId);
107. assertEquals(hpi.getState(), "cancel");
108. }
109.
110. /**
111. * 测试用例
112. *
113. * 赵六 申请6000元,部门经理同意,总经理驳回
114. */
115. public void test6000AndManagerApproveButCeoDisapprove() {
116. String curUser = "Zhao Liu";
117. ProcessInstance pi = startLoanProcess(curUser);
118. String piId = pi.getId();
119. filloutApplication(piId, curUser, 6000);
120.
121. curUser = "manager";
122. managerApprove(piId, curUser, true, "同意. manager");
123. pi = executionService.findProcessInstanceById(piId);
124. assertNotNull(pi);
125. assertNotNull(pi.findActiveExecutionIn("总经理审批"));
126.
127. curUser = "ceo";
128. ceoApprove(piId, curUser, false, "不同意.等资金周转过来再说吧");
129.
130. pi = executionService.findProcessInstanceById(piId);
131. assertNull(pi);
132.
133. HistoryProcessInstance hpi = getHistoryProcessInstanceByProcessInstanceId(piId);
134. assertEquals(hpi.getState(), "cancel");
135. }
136.
137. /**
138. * 测试用例
139. *
140. * 孙七 申请6000元,部门经理同意,总经理也同意
141. */
142. public void test6000AndManagerApproveAdnCeoApprove() {
143. String curUser = "Sun Qi";
144. ProcessInstance pi = startLoanProcess(curUser);
145. String piId = pi.getId();
146. filloutApplication(piId, curUser, 6000);
147.
148. curUser = "manager";
149. managerApprove(piId, curUser, true, "同意. manager");
150. pi = executionService.findProcessInstanceById(piId);
151. assertNotNull(pi);
152. assertNotNull(pi.findActiveExecutionIn("总经理审批"));
153.
154. curUser = "ceo";
155. ceoApprove(piId, curUser, true, "同意. ceo");
156. pi = executionService.findProcessInstanceById(piId);
157.
158. assertNotNull(pi);
159. assertNotNull(pi.findActiveExecutionIn("财务拨款"));
160.
161. curUser = "finance";
162. earmark(piId, curUser, piId);
163. pi = executionService.findProcessInstanceById(piId);
164. assertNull(pi);
165.
166. HistoryProcessInstance hpi =
167. getHistoryProcessInstanceByProcessInstanceId(piId);
168. assertEquals(hpi.getState(), "ended");
169. }
170.
171. /**
172. * 用户发起借款申请
173. *
174. * @param userId
175. * @return
176. */
177. protected ProcessInstance startLoanProcess(String user) {
178. Map variables = new HashMap();
179. variables.put("proposer", user);
180. return executionService.startProcessInstanceByKey("loan", variables);
181. }
182.
183. /**
184. * 填写借款申请
185. *
186. * @param piId
187. * @param user
188. * @param money
189. */
190. protected void filloutApplication(String piId, String user, double money) {
191. List tasks = taskService.findPersonalTasks(user);
192. Task filloutTask = null;
193. for (Task task :
tasks) {
194. if (task.getExecutionId().equals(piId)) {
195. filloutTask = task;
196. break;
197. }
198. }
199. assertNotNull(filloutTask);
200. Map variables = new HashMap();
201. variables.put("money", money);
202. executionService.setVariables(piId, variables);
203. taskSpleteTask(filloutTask.getId());
204. }
205.
206. /**
207. * 经理审批
208. *
209. * @param piId
210. * @param user