Author: jbarrez
Date: 2009-12-03 18:11:48 -0500 (Thu, 03 Dec 2009)
New Revision: 5913
Added:
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/bpmn/usertask/taskform/
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/bpmn/usertask/taskform/TaskFormTest.java
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/request_vacation.ftl
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/vacationrequest.bpmn.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/verify_request.ftl
Removed:
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/request_vacation.ftl
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/vacationrequest.bpmn.xml
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/verify_request.ftl
Modified:
jbpm4/trunk/modules/examples/src/test/resources/jbpm.cfg.xml
Log:
Working on bpmn2 example 'JBPM-2660'
Added:
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/bpmn/usertask/taskform/TaskFormTest.java
===================================================================
---
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/bpmn/usertask/taskform/TaskFormTest.java
(rev 0)
+++
jbpm4/trunk/modules/examples/src/test/java/org/jbpm/examples/bpmn/usertask/taskform/TaskFormTest.java 2009-12-03
23:11:48 UTC (rev 5913)
@@ -0,0 +1,90 @@
+package org.jbpm.examples.bpmn.usertask.taskform;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jbpm.api.NewDeployment;
+import org.jbpm.api.ProcessInstance;
+import org.jbpm.api.TaskQuery;
+import org.jbpm.api.history.HistoryActivityInstance;
+import org.jbpm.api.task.Task;
+import org.jbpm.test.JbpmTestCase;
+
+
+public class TaskFormTest extends JbpmTestCase {
+
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ NewDeployment deployment = repositoryService.createDeployment();
+
deployment.addResourceFromClasspath("org/jbpm/examples/bpmn/usertask/taskform/vacationrequest.bpmn.xml");
+
deployment.addResourceFromClasspath("org/jbpm/examples/bpmn/usertask/taskform/request_vacation.ftl");
+
deployment.addResourceFromClasspath("org/jbpm/examples/bpmn/usertask/taskform/verify_request.ftl");
+ String deployId = deployment.deploy();
+ registerDeployment(deployId);
+
+ // test users
+ identityService.createUser("peter", "Peter", "Pan");
+ identityService.createGroup("user");
+ identityService.createMembership("peter", "user");
+ identityService.createUser("alex", "Alex", "Ander");
+ identityService.createGroup("manager");
+ identityService.createMembership("alex", "manager");
+
+ }
+
+ protected void tearDown() throws Exception {
+ identityService.deleteUser("peter");
+ identityService.deleteGroup("user");
+ identityService.deleteUser("alex");
+ identityService.deleteGroup("manager");
+ super.tearDown();
+ }
+
+ public void testRequestAccepted() {
+
+ ProcessInstance pi =
executionService.startProcessInstanceByKey("vacationRequestProcess");
+
+ // After process start, peter should be a candidate for the task
+ Task requestTasktask =
taskService.createTaskQuery().candidate("peter").uniqueResult();
+ assertNotNull(requestTasktask);
+ assertEquals("org/jbpm/bpmn/usertask/request_vacation.ftl",
requestTasktask.getFormResourceName());
+
+ // After this task is completed, a manager should be able to see the 'verify'
task
+ TaskQuery verifyTaskQuery =
taskService.createTaskQuery().candidate("alex");
+ assertNull(verifyTaskQuery.uniqueResult());
+ taskService.completeTask(requestTasktask.getId());
+
+ Task verifyTask = verifyTaskQuery.uniqueResult();
+ assertEquals("org/jbpm/bpmn/usertask/verify_request.ftl",
verifyTask.getFormResourceName());
+ assertNotNull(verifyTask);
+
+ // When completing the verification task, we also need to store the result of the
decision
+ // (will be done through the taskform normally)
+ Map<String, Object> vars = new HashMap<String, Object>();
+ vars.put("verificationResult", "OK");
+ taskService.completeTask(verifyTask.getId(), vars);
+ assertProcessInstanceEnded(pi);
+ }
+
+ public void testRequestRefused() {
+ ProcessInstance pi =
executionService.startProcessInstanceByKey("vacationRequestProcess");
+
+ Task requestTasktask =
taskService.createTaskQuery().candidate("peter").uniqueResult();
+ taskService.completeTask(requestTasktask.getId());
+
+ Task verifyTask =
taskService.createTaskQuery().candidate("alex").uniqueResult();
+
+ // We now complete the task, but we give a negative result as process var
+ Map<String, Object> vars = new HashMap<String, Object>();
+ vars.put("verificationResult", "Not OK");
+ taskService.completeTask(verifyTask.getId(), vars);
+
+ // Process should now be ended, but the last activity should be the
'sendRejectionMessage' task
+ assertProcessInstanceEnded(pi);
+ HistoryActivityInstance hai = historyService.createHistoryActivityInstanceQuery()
+
.activityName("sendRejectionMessage").uniqueResult();
+ assertNotNull(hai);
+ }
+
+}
Modified: jbpm4/trunk/modules/examples/src/test/resources/jbpm.cfg.xml
===================================================================
--- jbpm4/trunk/modules/examples/src/test/resources/jbpm.cfg.xml 2009-12-03 22:44:10 UTC
(rev 5912)
+++ jbpm4/trunk/modules/examples/src/test/resources/jbpm.cfg.xml 2009-12-03 23:11:48 UTC
(rev 5913)
@@ -6,6 +6,7 @@
<import resource="jbpm.businesscalendar.cfg.xml" />
<import resource="jbpm.tx.hibernate.cfg.xml" />
<import resource="jbpm.jpdl.cfg.xml" />
+ <import resource="jbpm.bpmn.cfg.xml" />
<import resource="jbpm.identity.cfg.xml" />
<!-- Job executor is excluded for running the example test cases. -->
Deleted:
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/request_vacation.ftl
===================================================================
---
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/request_vacation.ftl 2009-12-03
22:44:10 UTC (rev 5912)
+++
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/request_vacation.ftl 2009-12-03
23:11:48 UTC (rev 5913)
@@ -1,30 +0,0 @@
-<html>
-<head>
- <style type="text/css">
- ${CSS!".body {font-family:sans-serif;}"}
- </style>
-</head>
- <body>
-
- <form action="${form.action}" method="POST"
enctype="multipart/form-data">
-
- <h3>How many days would you like to go on vacation?</h3>
- <select name="number_of_days">
- <option value="3">3 days</option>
- <option value="5">5 days</option>
- <option value="10">10 days</option>
- </select><br>
-
- <br/>
- <br/>
-
- Your name: <input type="text" name="employee_name"
/><br/>
-
- <br/>
- <br/>
-
- <input type="submit" name="Done"/>
-
- </form>
- </body>
-</html>
\ No newline at end of file
Copied:
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/request_vacation.ftl
(from rev 5910,
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/request_vacation.ftl)
===================================================================
---
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/request_vacation.ftl
(rev 0)
+++
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/request_vacation.ftl 2009-12-03
23:11:48 UTC (rev 5913)
@@ -0,0 +1,30 @@
+<html>
+<head>
+ <style type="text/css">
+ ${CSS!".body {font-family:sans-serif;}"}
+ </style>
+</head>
+ <body>
+
+ <form action="${form.action}" method="POST"
enctype="multipart/form-data">
+
+ <h3>How many days would you like to go on vacation?</h3>
+ <select name="number_of_days">
+ <option value="3">3 days</option>
+ <option value="5">5 days</option>
+ <option value="10">10 days</option>
+ </select><br>
+
+ <br/>
+ <br/>
+
+ Your name: <input type="text" name="employee_name"
/><br/>
+
+ <br/>
+ <br/>
+
+ <input type="submit" name="Done"/>
+
+ </form>
+ </body>
+</html>
\ No newline at end of file
Copied:
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/vacationrequest.bpmn.xml
(from rev 5910,
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/vacationrequest.bpmn.xml)
===================================================================
---
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/vacationrequest.bpmn.xml
(rev 0)
+++
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/vacationrequest.bpmn.xml 2009-12-03
23:11:48 UTC (rev 5913)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn:definitions id="vacationRequest"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://schema.omg.org/spec/BPMN/2.0
../../../../../../../../../../bpmn/src/main/resources/BPMN20.xsd"
+
xmlns:bpmn="http://schema.omg.org/spec/BPMN/2.0"
typeLanguage="http://www.w3.org/2001/XMLSchema"
+
expressionLanguage="http://www.w3.org/1999/XPath"
targetNamespace="http://jbpm.org/example/bpmn2/vacation_request"
+
xmlns:jbpm="http://jbpm.org/bpmn2">
+
+ <bpmn:process id="vacationRequestProcess" name="BPMN2 Example process
using task forms">
+
+ <bpmn:startEvent id="start" />
+
+ <bpmn:sequenceFlow id="flow1" name="fromStartToRequestVacation"
+ sourceRef="start" targetRef="requestVacation" />
+
+ <bpmn:userTask id="requestVacation" name="Request Vacation"
+ implementation="other">
+ <bpmn:potentialOwner resourceRef="user" />
+ <bpmn:rendering id="requestForm">
+ <jbpm:form>org/jbpm/bpmn/usertask/request_vacation.ftl</jbpm:form>
+ </bpmn:rendering>
+ </bpmn:userTask>
+
+ <bpmn:sequenceFlow id="flow2"
+ name="fromRequestVacationToVerifyRequest"
sourceRef="requestVacation"
+ targetRef="verifyRequest" />
+
+ <bpmn:userTask id="verifyRequest" name="Verify Request"
+ implementation="other">
+ <bpmn:potentialOwner resourceRef="manager" />
+ <bpmn:rendering id="verifyForm">
+ <jbpm:form>org/jbpm/bpmn/usertask/verify_request.ftl</jbpm:form>
+ </bpmn:rendering>
+ </bpmn:userTask>
+
+ <bpmn:sequenceFlow id="flow3" name="fromVerifyRequestToEnd"
+ sourceRef="verifyRequest" targetRef="theEnd">
+ <bpmn:conditionExpression
xsi:type="bpmn:tFormalExpression">${verificationResult ==
'OK'}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+
+ <bpmn:sequenceFlow id="flow4"
+ name="fromVerifyRequestToSendRejectionMessage"
sourceRef="verifyRequest"
+ targetRef="sendRejectionMessage">
+ <bpmn:conditionExpression
xsi:type="bpmn:tFormalExpression">${verificationResult == 'Not
OK'}</bpmn:conditionExpression>
+ </bpmn:sequenceFlow>
+
+ <bpmn:scriptTask id="sendRejectionMessage" name="Send rejection
Message"
+ scriptLanguage="bsh">
+ <bpmn:script>
+ <![CDATA[System.out.println("Vacation request refused!");]]>
+ </bpmn:script>
+ </bpmn:scriptTask>
+
+ <bpmn:sequenceFlow id="flow5"
+ name="fromSendRejectionMessageToEnd"
sourceRef="sendRejectionMessage"
+ targetRef="theEnd" />
+
+ <bpmn:endEvent id="theEnd" name="End" />
+
+
+ </bpmn:process>
+</bpmn:definitions>
Copied:
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/verify_request.ftl
(from rev 5910,
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/verify_request.ftl)
===================================================================
---
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/verify_request.ftl
(rev 0)
+++
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/taskform/verify_request.ftl 2009-12-03
23:11:48 UTC (rev 5913)
@@ -0,0 +1,24 @@
+<html>
+<head>
+ <style type="text/css">
+ ${CSS!".body {font-family:sans-serif;}"}
+ </style>
+</head>
+ <body>
+
+ <form action="${form.action}" method="POST"
enctype="multipart/form-data">
+
+ <h3>Your employee, ${employee_name} would like to go on vacation</h3>
+ Number of days: ${number_of_days}<br/>
+
+ <hr>
+
+ In case you reject, please provide a reason:<br/>
+ <input type="textarea" name="reason"/><br/>
+
+ <input type="submit" name="verificationResult"
value="OK">
+ <input type="submit" name="verificationResult"
value="Not OK">
+
+ </form>
+ </body>
+</html>
\ No newline at end of file
Deleted:
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/vacationrequest.bpmn.xml
===================================================================
---
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/vacationrequest.bpmn.xml 2009-12-03
22:44:10 UTC (rev 5912)
+++
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/vacationrequest.bpmn.xml 2009-12-03
23:11:48 UTC (rev 5913)
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions id="vacationRequest"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://schema.omg.org/spec/BPMN/2.0
../../../../../../../../../bpmn/src/main/resources/BPMN20.xsd"
-
xmlns:bpmn="http://schema.omg.org/spec/BPMN/2.0"
typeLanguage="http://www.w3.org/2001/XMLSchema"
-
expressionLanguage="http://www.w3.org/1999/XPath"
targetNamespace="http://jbpm.org/example/bpmn2/vacation_request"
-
xmlns:jbpm="http://jbpm.org/bpmn2">
-
- <bpmn:process id="vacationRequestProcess" name="BPMN2 Example process
using task forms">
-
- <bpmn:startEvent id="start" />
-
- <bpmn:sequenceFlow id="flow1" name="fromStartToRequestVacation"
- sourceRef="start" targetRef="requestVacation" />
-
- <bpmn:userTask id="requestVacation" name="Request Vacation"
- implementation="other">
- <bpmn:potentialOwner resourceRef="peter" />
- <bpmn:rendering id="requestForm">
- <jbpm:form>org/jbpm/bpmn/usertask/request_vacation.ftl</jbpm:form>
- </bpmn:rendering>
- </bpmn:userTask>
-
- <bpmn:sequenceFlow id="flow2"
- name="fromRequestVacationToVerifyRequest"
sourceRef="requestVacation"
- targetRef="verifyRequest" />
-
- <bpmn:userTask id="verifyRequest" name="Verify Request"
- implementation="other">
- <bpmn:potentialOwner resourceRef="alex" />
- <bpmn:rendering id="verifyForm">
- <jbpm:form>org/jbpm/bpmn/usertask/verify_request.ftl</jbpm:form>
- </bpmn:rendering>
- </bpmn:userTask>
-
- <bpmn:sequenceFlow id="flow3" name="fromVerifyRequestToEnd"
- sourceRef="verifyRequest" targetRef="theEnd">
- <bpmn:conditionExpression
xsi:type="bpmn:tFormalExpression">${jbpm_outcome ==
'OK'}</bpmn:conditionExpression>
- </bpmn:sequenceFlow>
-
- <bpmn:sequenceFlow id="flow4"
- name="fromVerifyRequestToSendRejectionMessage"
sourceRef="verifyRequest"
- targetRef="sendRejectionMessage">
- <bpmn:conditionExpression
xsi:type="bpmn:tFormalExpression">${jbpm_outcome == 'Not
OK'}</bpmn:conditionExpression>
- </bpmn:sequenceFlow>
-
- <bpmn:scriptTask id="sendRejectionMessage" name="Send rejection
Message"
- scriptLanguage="bsh">
- <bpmn:script>
- <![CDATA[System.out.println("Vacation request refused!");]]>
- </bpmn:script>
- </bpmn:scriptTask>
-
- <bpmn:sequenceFlow id="flow5"
- name="fromSendRejectionMessageToEnd"
sourceRef="sendRejectionMessage"
- targetRef="theEnd" />
-
- <bpmn:endEvent id="theEnd" name="End" />
-
-
- </bpmn:process>
-</bpmn:definitions>
Deleted:
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/verify_request.ftl
===================================================================
---
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/verify_request.ftl 2009-12-03
22:44:10 UTC (rev 5912)
+++
jbpm4/trunk/modules/examples/src/test/resources/org/jbpm/examples/bpmn/usertask/verify_request.ftl 2009-12-03
23:11:48 UTC (rev 5913)
@@ -1,24 +0,0 @@
-<html>
-<head>
- <style type="text/css">
- ${CSS!".body {font-family:sans-serif;}"}
- </style>
-</head>
- <body>
-
- <form action="${form.action}" method="POST"
enctype="multipart/form-data">
-
- <h3>Your employee, ${employee_name} would like to go on vacation</h3>
- Number of days: ${number_of_days}<br/>
-
- <hr>
-
- In case you reject, please provide a reason:<br/>
- <input type="textarea" name="reason"/><br/>
-
- <input type="submit" name="outcome"
value="OK">
- <input type="submit" name="outcome" value="Not
OK">
-
- </form>
- </body>
-</html>
\ No newline at end of file