[jboss-svn-commits] JBL Code SVN: r32947 - in labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src: main/java/org/drools/task/service/hornetq and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue May 18 23:26:48 EDT 2010
Author: lucazamador
Date: 2010-05-18 23:26:46 -0400 (Tue, 18 May 2010)
New Revision: 32947
Added:
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerBaseTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/hornetq/
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/hornetq/WSHumanTaskHandlerHornetQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/mina/
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/mina/WSHumanTaskHandlerMinaTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalBaseTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleBaseTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesBaseTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationBaseTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingBaseTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleBaseTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/IcalHornetQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskLifeCycleHornetQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceDeadlinesHornetQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEscalationHornetQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEventMessagingHornetQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceLifeCycleHornetQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/IcalMinaTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskLifeCycleMinaTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceDeadlinesMinaQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEscalationMinaTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEventMessagingMinaTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceLifeCycleMinaTest.java
Removed:
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
Modified:
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/BaseHornetQTaskServer.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/HornetQTaskClientConnector.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/HornetQTaskServer.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/QueryTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceBaseTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsBaseTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceCommentsAndAttachmentsHornetQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceHornetQTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceCommentsAndAttachmentsMinaTest.java
labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceMinaTest.java
Log:
all tests migrated to hornetq. added standalone hornetq support
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -53,6 +53,10 @@
this.port = port;
}
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
public void connect() {
if (client == null) {
client = new TaskClient(new MinaTaskClientConnector("org.drools.process.workitem.wsht.WSHumanTaskHandler",
@@ -62,15 +66,15 @@
if (!connected) {
throw new IllegalArgumentException("Could not connect task client");
}
- TaskEventKey key = new TaskEventKey(TaskCompletedEvent.class, -1);
- TaskCompletedHandler eventResponseHandler = new TaskCompletedHandler(manager, client);
- client.registerForEvent(key, false, eventResponseHandler);
- key = new TaskEventKey(TaskFailedEvent.class, -1);
- client.registerForEvent(key, false, eventResponseHandler);
- key = new TaskEventKey(TaskSkippedEvent.class, -1);
- client.registerForEvent(key, false, eventResponseHandler);
- System.out.println("Registered human task listener");
}
+ TaskEventKey key = new TaskEventKey(TaskCompletedEvent.class, -1);
+ TaskCompletedHandler eventResponseHandler = new TaskCompletedHandler(manager, client);
+ client.registerForEvent(key, false, eventResponseHandler);
+ key = new TaskEventKey(TaskFailedEvent.class, -1);
+ client.registerForEvent(key, false, eventResponseHandler);
+ key = new TaskEventKey(TaskSkippedEvent.class, -1);
+ client.registerForEvent(key, false, eventResponseHandler);
+ System.out.println("Registered human task listener");
}
public void setManager(WorkItemManager manager) {
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/BaseHornetQTaskServer.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/BaseHornetQTaskServer.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/BaseHornetQTaskServer.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -25,32 +25,37 @@
public class BaseHornetQTaskServer extends TaskServer {
- public static final String SERVER_TASK_COMMANDS_QUEUE = "taskCommandsQueue";
+ public static final String SERVER_TASK_COMMANDS_QUEUE = "tasksQueue";
private HornetQServer server;
private HornetQTaskServerHandler handler;
private Configuration configuration;
+ private boolean standalone;
private final int port;
volatile boolean running;
+ private boolean internalServerRunning;
private ClientSession session;
private ClientConsumer consumer;
- public BaseHornetQTaskServer(HornetQTaskServerHandler handler, int port) {
+ public BaseHornetQTaskServer(HornetQTaskServerHandler handler, int port, boolean standalone) {
this.handler = handler;
this.port = port;
+ this.standalone = standalone;
}
- public BaseHornetQTaskServer(HornetQTaskServerHandler handler, int port, Configuration configuration) {
- this(handler, port);
+ public BaseHornetQTaskServer(HornetQTaskServerHandler handler, int port, Configuration configuration, boolean standalone) {
+ this.handler = handler;
+ this.port = port;
this.configuration = configuration;
+ this.standalone = standalone;
}
public void run() {
try {
start();
- while (running) {
+ while (internalServerRunning) {
System.out.println("server: waiting messages...");
ClientMessage msgReceived = consumer.receive();
if (msgReceived!=null) {
@@ -63,7 +68,14 @@
}
catch (HornetQException e) {
// TODO: handle exception, connection closed is a very common exception
- e.printStackTrace();
+ switch (e.getCode()) {
+ case HornetQException.OBJECT_CLOSED:
+ // log: connection is closed/lost
+ break;
+ default:
+ e.printStackTrace();
+ break;
+ }
}
catch (Exception e) {
throw new RuntimeException("Server Exception with class " + getClass() + " using port " + port, e);
@@ -80,37 +92,52 @@
}
public void start() throws Exception {
- if (configuration==null) {
- configuration = new ConfigurationImpl();
- configuration.setPersistenceEnabled(false);
- configuration.setSecurityEnabled(false);
- }
Map<String, Object> connectionParams = new HashMap<String, Object>();
connectionParams.put(TransportConstants.PORT_PROP_NAME, port);
- TransportConfiguration transpConf = new TransportConfiguration(NettyAcceptorFactory.class.getName(), connectionParams);
+ if (!standalone) {
+ if (configuration==null) {
+ configuration = new ConfigurationImpl();
+ configuration.setPersistenceEnabled(false);
+ configuration.setSecurityEnabled(false);
+ }
- HashSet<TransportConfiguration> setTransp = new HashSet<TransportConfiguration>();
- setTransp.add(transpConf);
+ TransportConfiguration transpConf = new TransportConfiguration(NettyAcceptorFactory.class.getName(), connectionParams);
- configuration.setAcceptorConfigurations(setTransp);
+ HashSet<TransportConfiguration> setTransp = new HashSet<TransportConfiguration>();
+ setTransp.add(transpConf);
- server = HornetQServers.newHornetQServer(configuration);
- server.start();
+ configuration.setAcceptorConfigurations(setTransp);
+ server = HornetQServers.newHornetQServer(configuration);
+ server.start();
+ running = true;
+ }
+
TransportConfiguration transportConfiguration = new TransportConfiguration(NettyConnectorFactory.class.getCanonicalName(), connectionParams);
ClientSessionFactory factory = HornetQClient.createClientSessionFactory(transportConfiguration);
session = factory.createSession();
- session.createQueue(SERVER_TASK_COMMANDS_QUEUE, SERVER_TASK_COMMANDS_QUEUE, true);
+ try {
+ session.createQueue(SERVER_TASK_COMMANDS_QUEUE, SERVER_TASK_COMMANDS_QUEUE, true);
+ } catch (HornetQException e) {
+ if (e.getCode()!=HornetQException.QUEUE_EXISTS) {
+ // log: queue already exists!
+ throw e;
+ }
+ }
consumer = session.createConsumer(SERVER_TASK_COMMANDS_QUEUE);
session.start();
- System.out.println("QUEUE '" + SERVER_TASK_COMMANDS_QUEUE + "' CREATED::");
- running = true;
+ internalServerRunning = true;
}
public void stop() throws Exception {
- server.stop();
- running = false;
+ if (internalServerRunning) {
+ session.stop();
+ }
+ if (running) {
+ server.stop();
+ running = false;
+ }
}
}
\ No newline at end of file
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/HornetQTaskClientConnector.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/HornetQTaskClientConnector.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/HornetQTaskClientConnector.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -85,8 +85,16 @@
}
}
} catch (HornetQException e) {
- if (e.getCode()!=HornetQException.OBJECT_CLOSED) {
+ switch (e.getCode()) {
+ case HornetQException.OBJECT_CLOSED:
+ // log: connection is closed/lost
+ break;
+ case HornetQException.QUEUE_EXISTS:
+ // log: queue already exists
+ break;
+ default:
e.printStackTrace();
+ break;
}
} catch (Exception e) {
// TODO Auto-generated catch block
@@ -96,6 +104,8 @@
}
});
responsesThread.start();
+
+ session.start();
return true;
} catch (Exception e) {
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/HornetQTaskServer.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/HornetQTaskServer.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/main/java/org/drools/task/service/hornetq/HornetQTaskServer.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -7,10 +7,18 @@
public class HornetQTaskServer extends BaseHornetQTaskServer implements Runnable {
public HornetQTaskServer(TaskService service, int port) {
- super(new HornetQTaskServerHandler(service, SystemEventListenerFactory.getSystemEventListener()), port);
+ super(new HornetQTaskServerHandler(service, SystemEventListenerFactory.getSystemEventListener()), port, false);
}
-
+
+ public HornetQTaskServer(TaskService service, int port, boolean standalone) {
+ super(new HornetQTaskServerHandler(service, SystemEventListenerFactory.getSystemEventListener()), port, standalone);
+ }
+
public HornetQTaskServer(TaskService service, int port, Configuration configuration) {
- super(new HornetQTaskServerHandler(service, SystemEventListenerFactory.getSystemEventListener()), port, configuration);
+ super(new HornetQTaskServerHandler(service, SystemEventListenerFactory.getSystemEventListener()), port, configuration, false);
}
+
+ public HornetQTaskServer(TaskService service, int port, Configuration configuration, boolean standalone) {
+ super(new HornetQTaskServerHandler(service, SystemEventListenerFactory.getSystemEventListener()), port, configuration, standalone);
+ }
}
\ No newline at end of file
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerBaseTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerBaseTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerBaseTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,733 @@
+package org.drools.process.workitem.wsht;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.process.instance.impl.WorkItemImpl;
+import org.drools.runtime.process.WorkItemHandler;
+import org.drools.runtime.process.WorkItemManager;
+import org.drools.task.AccessType;
+import org.drools.task.BaseTest;
+import org.drools.task.Status;
+import org.drools.task.Task;
+import org.drools.task.query.TaskSummary;
+import org.drools.task.service.ContentData;
+import org.drools.task.service.PermissionDeniedException;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingTaskSummaryResponseHandler;
+
+public abstract class WSHumanTaskHandlerBaseTest extends BaseTest {
+
+ private static final int DEFAULT_WAIT_TIME = 5000;
+ private static final int MANAGER_COMPLETION_WAIT_TIME = DEFAULT_WAIT_TIME;
+ private static final int MANAGER_ABORT_WAIT_TIME = DEFAULT_WAIT_TIME;
+
+ private TaskClient client;
+ private WSHumanTaskHandler handler;
+
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
+ public TaskClient getClient() {
+ return client;
+ }
+
+ public void testTask() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskName", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("Comment", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
+
+ System.out.println("Starting task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started task " + task.getId());
+
+ System.out.println("Completing task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().complete(task.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(15000);
+ System.out.println("Completed task " + task.getId());
+
+ Thread.sleep(DEFAULT_WAIT_TIME);
+
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ }
+
+ public void testTaskMultipleActors() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader, Dalai Lama");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskName", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("Comment", task.getDescription());
+ assertEquals(Status.Ready, task.getStatus());
+
+ System.out.println("Claiming task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().claim(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Claimed task " + task.getId());
+
+ System.out.println("Starting task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started task " + task.getId());
+
+ System.out.println("Completing task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().complete(task.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Completed task " + task.getId());
+
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ }
+
+ public void testTaskGroupActors() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("GroupId", "Crusaders");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ List<String> groupIds = new ArrayList<String>();
+ groupIds.add("Crusaders");
+ getClient().getTasksAssignedAsPotentialOwner(null, groupIds, "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary taskSummary = tasks.get(0);
+ assertEquals("TaskName", taskSummary.getName());
+ assertEquals(10, taskSummary.getPriority());
+ assertEquals("Comment", taskSummary.getDescription());
+ assertEquals(Status.Ready, taskSummary.getStatus());
+
+ System.out.println("Claiming task " + taskSummary.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().claim(taskSummary.getId(), "Darth Vader", operationResponseHandler);
+ PermissionDeniedException denied = null;
+ try {
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch (PermissionDeniedException e) {
+ denied = e;
+ }
+
+ assertNotNull("Should get permissed denied exception", denied);
+ System.out.println("Claimed task " + taskSummary.getId());
+
+ //Check if the parent task is InProgress
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(taskSummary.getId(), getTaskResponseHandler);
+ Task task = getTaskResponseHandler.getTask();
+ assertEquals(Status.Ready, task.getTaskData().getStatus());
+ }
+
+ public void testTaskSingleAndGroupActors() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task One");
+ workItem.setParameter("TaskName", "TaskNameOne");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("GroupId", "Crusaders");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ workItem = new WorkItemImpl();
+ workItem.setName("Human Task Two");
+ workItem.setParameter("TaskName", "TaskNameTwo");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ List<String> groupIds = new ArrayList<String>();
+ groupIds.add("Crusaders");
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", groupIds, "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(2, tasks.size());
+ }
+
+ public void testTaskFail() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskName", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("Comment", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
+
+ System.out.println("Starting task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started task " + task.getId());
+
+ System.out.println("Failing task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().fail(task.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Failed task " + task.getId());
+
+ assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME));
+ }
+
+ public void testTaskSkip() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskName", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("Comment", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
+
+ System.out.println("Skipping task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().skip(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Skipped task " + task.getId());
+
+ assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME));
+ }
+
+ public void testTaskAbortSkippable() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ getHandler().abortWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(0, tasks.size());
+ }
+
+ public void testTaskAbortNotSkippable() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setParameter("Skippable", "false");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+
+ getHandler().abortWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ }
+
+ public void testTaskData() throws Exception {
+ TestWorkItemManager manager = new TestWorkItemManager();
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskName");
+ workItem.setParameter("Comment", "Comment");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setParameter("Content", "This is the content");
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary taskSummary = tasks.get(0);
+ assertEquals("TaskName", taskSummary.getName());
+ assertEquals(10, taskSummary.getPriority());
+ assertEquals("Comment", taskSummary.getDescription());
+ assertEquals(Status.Reserved, taskSummary.getStatus());
+ assertEquals("Darth Vader", taskSummary.getActualOwner().getId());
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(taskSummary.getId(), getTaskResponseHandler);
+ Task task = getTaskResponseHandler.getTask();
+ assertEquals(AccessType.Inline, task.getTaskData().getDocumentAccessType());
+ long contentId = task.getTaskData().getDocumentContentId();
+ assertTrue(contentId != -1);
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ getClient().getContent(contentId, getContentResponseHandler);
+ ByteArrayInputStream bis = new ByteArrayInputStream(getContentResponseHandler.getContent().getContent());
+ ObjectInputStream in = new ObjectInputStream(bis);
+ Object data = in.readObject();
+ in.close();
+ assertEquals("This is the content", data);
+
+ System.out.println("Starting task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started task " + task.getId());
+
+ System.out.println("Completing task " + task.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ ContentData result = new ContentData();
+ result.setAccessType(AccessType.Inline);
+ result.setType("java.lang.String");
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ObjectOutputStream out = new ObjectOutputStream(bos);
+ out.writeObject("This is the result");
+ out.close();
+ result.setContent(bos.toByteArray());
+ getClient().complete(task.getId(), "Darth Vader", result, operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Completed task " + task.getId());
+
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ Map<String, Object> results = manager.getResults();
+ assertNotNull(results);
+ assertEquals("Darth Vader", results.get("ActorId"));
+ assertEquals("This is the result", results.get("Result"));
+ }
+
+ public void TODOtestOnAllSubTasksEndParentEndStrategy() throws Exception {
+
+ TestWorkItemManager manager = new TestWorkItemManager();
+ //Create the parent task
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskNameParent");
+ workItem.setParameter("Comment", "CommentParent");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ //Set the subtask policy
+ workItem.setParameter("SubTaskStrategies", "OnAllSubTasksEndParentEnd");
+ getHandler().executeWorkItem(workItem, manager);
+
+
+ Thread.sleep(500);
+
+ //Test if the task is succesfully created
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskNameParent", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("CommentParent", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
+
+ //Create the child task
+ workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskNameChild1");
+ workItem.setParameter("Comment", "CommentChild1");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setParameter("ParentId", task.getId());
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ //Create the child task2
+ workItem = new WorkItemImpl();
+ workItem.setName("Human Task2");
+ workItem.setParameter("TaskName", "TaskNameChild2");
+ workItem.setParameter("Comment", "CommentChild2");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setParameter("ParentId", task.getId());
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ //Start the parent task
+ System.out.println("Starting task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started task " + task.getId());
+
+ //Check if the parent task is InProgress
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(task.getId(), getTaskResponseHandler);
+ Task parentTask = getTaskResponseHandler.getTask();
+ assertEquals(Status.InProgress, parentTask.getTaskData().getStatus());
+ assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
+
+ //Get all the subtask created for the parent task based on the potential owner
+ responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getSubTasksAssignedAsPotentialOwner(parentTask.getId(), "Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> subTasks = responseHandler.getResults();
+ assertEquals(2, subTasks.size());
+ TaskSummary subTaskSummary1 = subTasks.get(0);
+ TaskSummary subTaskSummary2 = subTasks.get(1);
+ assertNotNull(subTaskSummary1);
+ assertNotNull(subTaskSummary2);
+
+ //Starting the sub task 1
+ System.out.println("Starting sub task " + subTaskSummary1.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started sub task " + subTaskSummary1.getId());
+
+ //Starting the sub task 2
+ System.out.println("Starting sub task " + subTaskSummary2.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started sub task " + subTaskSummary2.getId());
+
+ //Check if the child task 1 is InProgress
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(subTaskSummary1.getId(), getTaskResponseHandler);
+ Task subTask1 = getTaskResponseHandler.getTask();
+ assertEquals(Status.InProgress, subTask1.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
+
+ //Check if the child task 2 is InProgress
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(subTaskSummary2.getId(), getTaskResponseHandler);
+ Task subTask2 = getTaskResponseHandler.getTask();
+ assertEquals(Status.InProgress, subTask2.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
+
+ // Complete the child task 1
+ System.out.println("Completing sub task " + subTask1.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().complete(subTask1.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Completed sub task " + subTask1.getId());
+
+ // Complete the child task 2
+ System.out.println("Completing sub task " + subTask2.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().complete(subTask2.getId(), "Darth Vader", null, operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Completed sub task " + subTask2.getId());
+
+ //Check if the child task 1 is Completed
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(subTask1.getId(), getTaskResponseHandler);
+ subTask1 = getTaskResponseHandler.getTask();
+ assertEquals(Status.Completed, subTask1.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
+
+ //Check if the child task 2 is Completed
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(subTask2.getId(), getTaskResponseHandler);
+ subTask2 = getTaskResponseHandler.getTask();
+ assertEquals(Status.Completed, subTask2.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
+
+ // Check is the parent task is Complete
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(parentTask.getId(), getTaskResponseHandler);
+ parentTask = getTaskResponseHandler.getTask();
+ assertEquals(Status.Completed, parentTask.getTaskData().getStatus());
+ assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
+
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ }
+
+ public void TODOtestOnParentAbortAllSubTasksEndStrategy() throws Exception {
+
+ TestWorkItemManager manager = new TestWorkItemManager();
+ //Create the parent task
+ WorkItemImpl workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskNameParent");
+ workItem.setParameter("Comment", "CommentParent");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ //Set the subtask policy
+ workItem.setParameter("SubTaskStrategies", "OnParentAbortAllSubTasksEnd");
+ getHandler().executeWorkItem(workItem, manager);
+
+
+ Thread.sleep(500);
+
+ //Test if the task is succesfully created
+ BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> tasks = responseHandler.getResults();
+ assertEquals(1, tasks.size());
+ TaskSummary task = tasks.get(0);
+ assertEquals("TaskNameParent", task.getName());
+ assertEquals(10, task.getPriority());
+ assertEquals("CommentParent", task.getDescription());
+ assertEquals(Status.Reserved, task.getStatus());
+ assertEquals("Darth Vader", task.getActualOwner().getId());
+
+ //Create the child task
+ workItem = new WorkItemImpl();
+ workItem.setName("Human Task");
+ workItem.setParameter("TaskName", "TaskNameChild1");
+ workItem.setParameter("Comment", "CommentChild1");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setParameter("ParentId", task.getId());
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ //Create the child task2
+ workItem = new WorkItemImpl();
+ workItem.setName("Human Task2");
+ workItem.setParameter("TaskName", "TaskNameChild2");
+ workItem.setParameter("Comment", "CommentChild2");
+ workItem.setParameter("Priority", "10");
+ workItem.setParameter("ActorId", "Darth Vader");
+ workItem.setParameter("ParentId", task.getId());
+ getHandler().executeWorkItem(workItem, manager);
+
+ Thread.sleep(500);
+
+ //Start the parent task
+ System.out.println("Starting task " + task.getId());
+ BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(task.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started task " + task.getId());
+
+ //Check if the parent task is InProgress
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(task.getId(), getTaskResponseHandler);
+ Task parentTask = getTaskResponseHandler.getTask();
+ assertEquals(Status.InProgress, parentTask.getTaskData().getStatus());
+ assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
+
+ //Get all the subtask created for the parent task based on the potential owner
+ responseHandler = new BlockingTaskSummaryResponseHandler();
+ getClient().getSubTasksAssignedAsPotentialOwner(parentTask.getId(), "Darth Vader", "en-UK", responseHandler);
+ List<TaskSummary> subTasks = responseHandler.getResults();
+ assertEquals(2, subTasks.size());
+ TaskSummary subTaskSummary1 = subTasks.get(0);
+ TaskSummary subTaskSummary2 = subTasks.get(1);
+ assertNotNull(subTaskSummary1);
+ assertNotNull(subTaskSummary2);
+
+ //Starting the sub task 1
+ System.out.println("Starting sub task " + subTaskSummary1.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started sub task " + subTaskSummary1.getId());
+
+ //Starting the sub task 2
+ System.out.println("Starting sub task " + subTaskSummary2.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Started sub task " + subTaskSummary2.getId());
+
+ //Check if the child task 1 is InProgress
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(subTaskSummary1.getId(), getTaskResponseHandler);
+ Task subTask1 = getTaskResponseHandler.getTask();
+ assertEquals(Status.InProgress, subTask1.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
+
+ //Check if the child task 2 is InProgress
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(subTaskSummary2.getId(), getTaskResponseHandler);
+ Task subTask2 = getTaskResponseHandler.getTask();
+ assertEquals(Status.InProgress, subTask2.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
+
+ // Complete the parent task
+ System.out.println("Completing parent task " + parentTask.getId());
+ operationResponseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().skip(parentTask.getId(), "Darth Vader", operationResponseHandler);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ System.out.println("Completed parent task " + parentTask.getId());
+
+ //Check if the child task 1 is Completed
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(subTaskSummary1.getId(), getTaskResponseHandler);
+ subTask1 = getTaskResponseHandler.getTask();
+ assertEquals(Status.Completed, subTask1.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
+
+ //Check if the child task 2 is Completed
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ getClient().getTask(subTaskSummary2.getId(), getTaskResponseHandler);
+ subTask2 = getTaskResponseHandler.getTask();
+ assertEquals(Status.Completed, subTask2.getTaskData().getStatus());
+ assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
+
+ assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
+ }
+
+ public void setHandler(WSHumanTaskHandler handler) {
+ this.handler = handler;
+ }
+
+ public WSHumanTaskHandler getHandler() {
+ return handler;
+ }
+
+ private class TestWorkItemManager implements WorkItemManager {
+
+ private volatile boolean completed;
+ private volatile boolean aborted;
+ private volatile Map<String, Object> results;
+
+ public synchronized boolean waitTillCompleted(long time) {
+ if (!isCompleted()) {
+ try {
+ wait(time);
+ } catch (InterruptedException e) {
+ // swallow and return state of completed
+ }
+ }
+
+ return isCompleted();
+ }
+
+ public synchronized boolean waitTillAborted(long time) {
+ if (!isAborted()) {
+ try {
+ wait(time);
+ } catch (InterruptedException e) {
+ // swallow and return state of aborted
+ }
+ }
+
+ return isAborted();
+ }
+
+ public void abortWorkItem(long id) {
+ setAborted(true);
+ }
+
+ public synchronized boolean isAborted() {
+ return aborted;
+ }
+
+ private synchronized void setAborted(boolean aborted) {
+ this.aborted = aborted;
+ notifyAll();
+ }
+
+ public void completeWorkItem(long id, Map<String, Object> results) {
+ this.results = results;
+ setCompleted(true);
+ }
+
+ private synchronized void setCompleted(boolean completed) {
+ this.completed = completed;
+ notifyAll();
+ }
+
+ public synchronized boolean isCompleted() {
+ return completed;
+ }
+
+ public Map<String, Object> getResults() {
+ return results;
+ }
+
+ public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
+ }
+
+ }
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerBaseTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Deleted: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -1,758 +0,0 @@
-package org.drools.process.workitem.wsht;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.drools.SystemEventListenerFactory;
-import org.drools.process.instance.impl.WorkItemImpl;
-import org.drools.runtime.process.WorkItem;
-import org.drools.runtime.process.WorkItemHandler;
-import org.drools.runtime.process.WorkItemManager;
-import org.drools.task.AccessType;
-import org.drools.task.BaseTest;
-import org.drools.task.Status;
-import org.drools.task.Task;
-import org.drools.task.query.TaskSummary;
-import org.drools.task.service.ContentData;
-import org.drools.task.service.PermissionDeniedException;
-import org.drools.task.service.TaskClient;
-import org.drools.task.service.mina.MinaTaskClientConnector;
-import org.drools.task.service.mina.MinaTaskServer;
-import org.drools.task.service.mina.TaskMinaClientHandler;
-import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingTaskSummaryResponseHandler;
-
-public class WSHumanTaskHandlerTest extends BaseTest {
- private static final int DEFAULT_WAIT_TIME = 5000;
- private static final int MANAGER_COMPLETION_WAIT_TIME = DEFAULT_WAIT_TIME;
- private static final int MANAGER_ABORT_WAIT_TIME = DEFAULT_WAIT_TIME;
-
- MinaTaskServer server;
- TaskClient client;
- WSHumanTaskHandler handler;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- server = new MinaTaskServer(taskService);
- Thread thread = new Thread(server);
- thread.start();
- Thread.sleep(500);
- client = new TaskClient(new MinaTaskClientConnector("client 1",
- new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 9123);
- handler = new WSHumanTaskHandler();
- }
-
- protected void tearDown() throws Exception {
- handler.dispose();
- client.disconnect();
- server.stop();
- super.tearDown();
- }
-
- public void testTask() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskName", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("Comment", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
-
- System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started task " + task.getId());
-
- System.out.println("Completing task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(15000);
- System.out.println("Completed task " + task.getId());
-
- assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
- }
-
- public void testTaskMultipleActors() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader, Dalai Lama");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskName", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("Comment", task.getDescription());
- assertEquals(Status.Ready, task.getStatus());
-
- System.out.println("Claiming task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.claim(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Claimed task " + task.getId());
-
- System.out.println("Starting task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started task " + task.getId());
-
- System.out.println("Completing task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Completed task " + task.getId());
-
- assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
- }
-
- public void testTaskGroupActors() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("GroupId", "Crusaders");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- List<String> groupIds = new ArrayList<String>();
- groupIds.add("Crusaders");
- client.getTasksAssignedAsPotentialOwner(null, groupIds, "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary taskSummary = tasks.get(0);
- assertEquals("TaskName", taskSummary.getName());
- assertEquals(10, taskSummary.getPriority());
- assertEquals("Comment", taskSummary.getDescription());
- assertEquals(Status.Ready, taskSummary.getStatus());
-
- System.out.println("Claiming task " + taskSummary.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.claim(taskSummary.getId(), "Darth Vader", operationResponseHandler);
- PermissionDeniedException denied = null;
- try {
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch (PermissionDeniedException e) {
- denied = e;
- }
-
- assertNotNull("Should get permissed denied exception", denied);
- System.out.println("Claimed task " + taskSummary.getId());
-
- //Check if the parent task is InProgress
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(taskSummary.getId(), getTaskResponseHandler);
- Task task = getTaskResponseHandler.getTask();
- assertEquals(Status.Ready, task.getTaskData().getStatus());
- }
-
- public void testTaskSingleAndGroupActors() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task One");
- workItem.setParameter("TaskName", "TaskNameOne");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("GroupId", "Crusaders");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- workItem = new WorkItemImpl();
- workItem.setName("Human Task Two");
- workItem.setParameter("TaskName", "TaskNameTwo");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- List<String> groupIds = new ArrayList<String>();
- groupIds.add("Crusaders");
- client.getTasksAssignedAsPotentialOwner("Darth Vader", groupIds, "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(2, tasks.size());
- }
-
- public void testTaskFail() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskName", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("Comment", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
-
- System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started task " + task.getId());
-
- System.out.println("Failing task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.fail(task.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Failed task " + task.getId());
-
- assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME));
- }
-
- public void testTaskSkip() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskName", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("Comment", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
-
- System.out.println("Skipping task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.skip(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Skipped task " + task.getId());
-
- assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME));
- }
-
- public void testTaskAbortSkippable() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- handler.abortWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(0, tasks.size());
- }
-
- public void testTaskAbortNotSkippable() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- workItem.setParameter("Skippable", "false");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
-
- handler.abortWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- }
-
- public void testTaskData() throws Exception {
- TestWorkItemManager manager = new TestWorkItemManager();
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskName");
- workItem.setParameter("Comment", "Comment");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- workItem.setParameter("Content", "This is the content");
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary taskSummary = tasks.get(0);
- assertEquals("TaskName", taskSummary.getName());
- assertEquals(10, taskSummary.getPriority());
- assertEquals("Comment", taskSummary.getDescription());
- assertEquals(Status.Reserved, taskSummary.getStatus());
- assertEquals("Darth Vader", taskSummary.getActualOwner().getId());
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(taskSummary.getId(), getTaskResponseHandler);
- Task task = getTaskResponseHandler.getTask();
- assertEquals(AccessType.Inline, task.getTaskData().getDocumentAccessType());
- long contentId = task.getTaskData().getDocumentContentId();
- assertTrue(contentId != -1);
- BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
- client.getContent(contentId, getContentResponseHandler);
- ByteArrayInputStream bis = new ByteArrayInputStream(getContentResponseHandler.getContent().getContent());
- ObjectInputStream in = new ObjectInputStream(bis);
- Object data = in.readObject();
- in.close();
- assertEquals("This is the content", data);
-
- System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started task " + task.getId());
-
- System.out.println("Completing task " + task.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- ContentData result = new ContentData();
- result.setAccessType(AccessType.Inline);
- result.setType("java.lang.String");
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- ObjectOutputStream out = new ObjectOutputStream(bos);
- out.writeObject("This is the result");
- out.close();
- result.setContent(bos.toByteArray());
- client.complete(task.getId(), "Darth Vader", result, operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Completed task " + task.getId());
-
- assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
- Map<String, Object> results = manager.getResults();
- assertNotNull(results);
- assertEquals("Darth Vader", results.get("ActorId"));
- assertEquals("This is the result", results.get("Result"));
- }
-
- public void TODOtestOnAllSubTasksEndParentEndStrategy() throws Exception {
-
- TestWorkItemManager manager = new TestWorkItemManager();
- //Create the parent task
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskNameParent");
- workItem.setParameter("Comment", "CommentParent");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- //Set the subtask policy
- workItem.setParameter("SubTaskStrategies", "OnAllSubTasksEndParentEnd");
- handler.executeWorkItem(workItem, manager);
-
-
- Thread.sleep(500);
-
- //Test if the task is succesfully created
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskNameParent", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("CommentParent", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
-
- //Create the child task
- workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskNameChild1");
- workItem.setParameter("Comment", "CommentChild1");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- workItem.setParameter("ParentId", task.getId());
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- //Create the child task2
- workItem = new WorkItemImpl();
- workItem.setName("Human Task2");
- workItem.setParameter("TaskName", "TaskNameChild2");
- workItem.setParameter("Comment", "CommentChild2");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- workItem.setParameter("ParentId", task.getId());
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- //Start the parent task
- System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started task " + task.getId());
-
- //Check if the parent task is InProgress
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(task.getId(), getTaskResponseHandler);
- Task parentTask = getTaskResponseHandler.getTask();
- assertEquals(Status.InProgress, parentTask.getTaskData().getStatus());
- assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
-
- //Get all the subtask created for the parent task based on the potential owner
- responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getSubTasksAssignedAsPotentialOwner(parentTask.getId(), "Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> subTasks = responseHandler.getResults();
- assertEquals(2, subTasks.size());
- TaskSummary subTaskSummary1 = subTasks.get(0);
- TaskSummary subTaskSummary2 = subTasks.get(1);
- assertNotNull(subTaskSummary1);
- assertNotNull(subTaskSummary2);
-
- //Starting the sub task 1
- System.out.println("Starting sub task " + subTaskSummary1.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started sub task " + subTaskSummary1.getId());
-
- //Starting the sub task 2
- System.out.println("Starting sub task " + subTaskSummary2.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started sub task " + subTaskSummary2.getId());
-
- //Check if the child task 1 is InProgress
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(subTaskSummary1.getId(), getTaskResponseHandler);
- Task subTask1 = getTaskResponseHandler.getTask();
- assertEquals(Status.InProgress, subTask1.getTaskData().getStatus());
- assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
- //Check if the child task 2 is InProgress
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(subTaskSummary2.getId(), getTaskResponseHandler);
- Task subTask2 = getTaskResponseHandler.getTask();
- assertEquals(Status.InProgress, subTask2.getTaskData().getStatus());
- assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
-
- // Complete the child task 1
- System.out.println("Completing sub task " + subTask1.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.complete(subTask1.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Completed sub task " + subTask1.getId());
-
- // Complete the child task 2
- System.out.println("Completing sub task " + subTask2.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.complete(subTask2.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Completed sub task " + subTask2.getId());
-
- //Check if the child task 1 is Completed
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(subTask1.getId(), getTaskResponseHandler);
- subTask1 = getTaskResponseHandler.getTask();
- assertEquals(Status.Completed, subTask1.getTaskData().getStatus());
- assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
- //Check if the child task 2 is Completed
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(subTask2.getId(), getTaskResponseHandler);
- subTask2 = getTaskResponseHandler.getTask();
- assertEquals(Status.Completed, subTask2.getTaskData().getStatus());
- assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
-
- // Check is the parent task is Complete
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(parentTask.getId(), getTaskResponseHandler);
- parentTask = getTaskResponseHandler.getTask();
- assertEquals(Status.Completed, parentTask.getTaskData().getStatus());
- assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
-
- assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
- }
-
- public void TODOtestOnParentAbortAllSubTasksEndStrategy() throws Exception {
-
- TestWorkItemManager manager = new TestWorkItemManager();
- //Create the parent task
- WorkItemImpl workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskNameParent");
- workItem.setParameter("Comment", "CommentParent");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- //Set the subtask policy
- workItem.setParameter("SubTaskStrategies", "OnParentAbortAllSubTasksEnd");
- handler.executeWorkItem(workItem, manager);
-
-
- Thread.sleep(500);
-
- //Test if the task is succesfully created
- BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> tasks = responseHandler.getResults();
- assertEquals(1, tasks.size());
- TaskSummary task = tasks.get(0);
- assertEquals("TaskNameParent", task.getName());
- assertEquals(10, task.getPriority());
- assertEquals("CommentParent", task.getDescription());
- assertEquals(Status.Reserved, task.getStatus());
- assertEquals("Darth Vader", task.getActualOwner().getId());
-
- //Create the child task
- workItem = new WorkItemImpl();
- workItem.setName("Human Task");
- workItem.setParameter("TaskName", "TaskNameChild1");
- workItem.setParameter("Comment", "CommentChild1");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- workItem.setParameter("ParentId", task.getId());
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- //Create the child task2
- workItem = new WorkItemImpl();
- workItem.setName("Human Task2");
- workItem.setParameter("TaskName", "TaskNameChild2");
- workItem.setParameter("Comment", "CommentChild2");
- workItem.setParameter("Priority", "10");
- workItem.setParameter("ActorId", "Darth Vader");
- workItem.setParameter("ParentId", task.getId());
- handler.executeWorkItem(workItem, manager);
-
- Thread.sleep(500);
-
- //Start the parent task
- System.out.println("Starting task " + task.getId());
- BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started task " + task.getId());
-
- //Check if the parent task is InProgress
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(task.getId(), getTaskResponseHandler);
- Task parentTask = getTaskResponseHandler.getTask();
- assertEquals(Status.InProgress, parentTask.getTaskData().getStatus());
- assertEquals(users.get("darth"), parentTask.getTaskData().getActualOwner());
-
- //Get all the subtask created for the parent task based on the potential owner
- responseHandler = new BlockingTaskSummaryResponseHandler();
- client.getSubTasksAssignedAsPotentialOwner(parentTask.getId(), "Darth Vader", "en-UK", responseHandler);
- List<TaskSummary> subTasks = responseHandler.getResults();
- assertEquals(2, subTasks.size());
- TaskSummary subTaskSummary1 = subTasks.get(0);
- TaskSummary subTaskSummary2 = subTasks.get(1);
- assertNotNull(subTaskSummary1);
- assertNotNull(subTaskSummary2);
-
- //Starting the sub task 1
- System.out.println("Starting sub task " + subTaskSummary1.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started sub task " + subTaskSummary1.getId());
-
- //Starting the sub task 2
- System.out.println("Starting sub task " + subTaskSummary2.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Started sub task " + subTaskSummary2.getId());
-
- //Check if the child task 1 is InProgress
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(subTaskSummary1.getId(), getTaskResponseHandler);
- Task subTask1 = getTaskResponseHandler.getTask();
- assertEquals(Status.InProgress, subTask1.getTaskData().getStatus());
- assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
- //Check if the child task 2 is InProgress
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(subTaskSummary2.getId(), getTaskResponseHandler);
- Task subTask2 = getTaskResponseHandler.getTask();
- assertEquals(Status.InProgress, subTask2.getTaskData().getStatus());
- assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
-
- // Complete the parent task
- System.out.println("Completing parent task " + parentTask.getId());
- operationResponseHandler = new BlockingTaskOperationResponseHandler();
- client.skip(parentTask.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- System.out.println("Completed parent task " + parentTask.getId());
-
- //Check if the child task 1 is Completed
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(subTaskSummary1.getId(), getTaskResponseHandler);
- subTask1 = getTaskResponseHandler.getTask();
- assertEquals(Status.Completed, subTask1.getTaskData().getStatus());
- assertEquals(users.get("darth"), subTask1.getTaskData().getActualOwner());
-
- //Check if the child task 2 is Completed
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask(subTaskSummary2.getId(), getTaskResponseHandler);
- subTask2 = getTaskResponseHandler.getTask();
- assertEquals(Status.Completed, subTask2.getTaskData().getStatus());
- assertEquals(users.get("darth"), subTask2.getTaskData().getActualOwner());
-
- assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
- }
-
- private class TestWorkItemManager implements WorkItemManager {
-
- private volatile boolean completed;
- private volatile boolean aborted;
- private volatile Map<String, Object> results;
-
- public synchronized boolean waitTillCompleted(long time) {
- if (!isCompleted()) {
- try {
- wait(time);
- } catch (InterruptedException e) {
- // swallow and return state of completed
- }
- }
-
- return isCompleted();
- }
-
- public synchronized boolean waitTillAborted(long time) {
- if (!isAborted()) {
- try {
- wait(time);
- } catch (InterruptedException e) {
- // swallow and return state of aborted
- }
- }
-
- return isAborted();
- }
-
- public void abortWorkItem(long id) {
- setAborted(true);
- }
-
- public synchronized boolean isAborted() {
- return aborted;
- }
-
- private synchronized void setAborted(boolean aborted) {
- this.aborted = aborted;
- notifyAll();
- }
-
- public void completeWorkItem(long id, Map<String, Object> results) {
- this.results = results;
- setCompleted(true);
- }
-
- private synchronized void setCompleted(boolean completed) {
- this.completed = completed;
- notifyAll();
- }
-
- public synchronized boolean isCompleted() {
- return completed;
- }
-
- public WorkItem getWorkItem(long id) {
- return null;
- }
-
- public Set<WorkItem> getWorkItems() {
- return null;
- }
-
- public Map<String, Object> getResults() {
- return results;
- }
-
- public void internalAbortWorkItem(long id) {
- }
-
- public void internalAddWorkItem(WorkItem workItem) {
- }
-
- public void internalExecuteWorkItem(WorkItem workItem) {
- }
-
- public void registerWorkItemHandler(String workItemName, WorkItemHandler handler) {
- }
-
- }
-}
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/hornetq/WSHumanTaskHandlerHornetQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/hornetq/WSHumanTaskHandlerHornetQTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/hornetq/WSHumanTaskHandlerHornetQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,37 @@
+package org.drools.process.workitem.wsht.hornetq;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.process.workitem.wsht.WSHumanTaskHandler;
+import org.drools.process.workitem.wsht.WSHumanTaskHandlerBaseTest;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.hornetq.HornetQTaskClientConnector;
+import org.drools.task.service.hornetq.HornetQTaskServer;
+import org.drools.task.service.hornetq.TaskHornetQClientHandler;
+
+public class WSHumanTaskHandlerHornetQTest extends WSHumanTaskHandlerBaseTest {
+
+ private HornetQTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new HornetQTaskServer(taskService, 5446);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+ setClient(new TaskClient(new HornetQTaskClientConnector("client 1",
+ new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 5446);
+ WSHumanTaskHandler handler = new WSHumanTaskHandler();
+ handler.setClient(getClient());
+ setHandler(handler);
+ }
+
+ protected void tearDown() throws Exception {
+ getHandler().dispose();
+ getClient().disconnect();
+ server.stop();
+ super.tearDown();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/hornetq/WSHumanTaskHandlerHornetQTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/mina/WSHumanTaskHandlerMinaTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/mina/WSHumanTaskHandlerMinaTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/mina/WSHumanTaskHandlerMinaTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,35 @@
+package org.drools.process.workitem.wsht.mina;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.process.workitem.wsht.WSHumanTaskHandler;
+import org.drools.process.workitem.wsht.WSHumanTaskHandlerBaseTest;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.mina.MinaTaskClientConnector;
+import org.drools.task.service.mina.MinaTaskServer;
+import org.drools.task.service.mina.TaskMinaClientHandler;
+
+public class WSHumanTaskHandlerMinaTest extends WSHumanTaskHandlerBaseTest {
+
+ private MinaTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new MinaTaskServer(taskService);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+ setClient(new TaskClient(new MinaTaskClientConnector("client 1",
+ new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
+ setHandler(new WSHumanTaskHandler());
+ }
+
+ protected void tearDown() throws Exception {
+ getHandler().dispose();
+ getClient().disconnect();
+ server.stop();
+ super.tearDown();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/mina/WSHumanTaskHandlerMinaTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/QueryTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/QueryTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/QueryTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -2,15 +2,13 @@
import java.io.InputStreamReader;
import java.io.Reader;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections.map.HashedMap;
import org.drools.task.query.DeadlineSummary;
-import org.drools.task.service.TaskServiceEscalationTest.MockEscalatedDeadlineHandler;
+import org.drools.task.service.TaskServiceEscalationBaseTest.MockEscalatedDeadlineHandler;
public class QueryTest extends BaseTest {
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalBaseTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalBaseTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalBaseTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,422 @@
+package org.drools.task.service;
+
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.util.Date;
+import java.util.Map;
+
+import javax.mail.BodyPart;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeMessage.RecipientType;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.drools.task.BaseTest;
+import org.drools.task.MockUserInfo;
+import org.drools.task.Task;
+import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
+import org.subethamail.wiser.Wiser;
+import org.subethamail.wiser.WiserMessage;
+
+public abstract class IcalBaseTest extends BaseTest {
+
+ private TaskClient client;
+ private Wiser wiser;
+ private String emailHost;
+ private String emailPort;
+
+ public void testSendWithStartandEndDeadline() throws Exception {
+ Map vars = new HashedMap();
+ vars.put("users", users);
+ vars.put("groups", groups);
+ vars.put("now", new Date());
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, createdBy = users['tony'], activationTime = now}), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) {potentialOwners = [users['steve' ], users['tony' ]]}), ";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')],";
+ str += "subjects = [ new I18NText( 'en-UK', 'This is my task subject')],";
+ str += "descriptions = [ new I18NText( 'en-UK', 'This is my task description')],";
+ str += "deadlines = (with (new Deadlines() ) {";
+ str += " startDeadlines = [ ";
+ str += " (with (new Deadline()) {";
+ str += " date = now";
+ str += " } ) ],";
+ str += " endDeadlines = [";
+ str += " (with (new Deadline()) {";
+ str += " date = new Date( now.time + ( 1000 * 60 * 60 * 24 ) )"; // set to tomorrow
+ str += " } ) ]";
+ str += "} ) })";
+
+ MockUserInfo userInfo = new MockUserInfo();
+ userInfo.getEmails().put( users.get( "tony" ),
+ "tony at domain.com" );
+ userInfo.getEmails().put( users.get( "steve" ),
+ "steve at domain.com" );
+
+ userInfo.getLanguages().put( users.get( "tony" ),
+ "en-UK" );
+ userInfo.getLanguages().put( users.get( "steve" ),
+ "en-UK" );
+ taskService.setUserinfo( userInfo );
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = (Task) eval( new StringReader( str ),
+ vars );
+ getClient().addTask( task, null,
+ addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().claim( taskId,
+ users.get( "steve" ).getId(),
+ responseHandler );
+ responseHandler.waitTillDone( 5000 );
+
+ assertEquals( 2,
+ getWiser().getMessages().size() );
+
+ assertEquals( "steve at domain.com", getWiser().getMessages().get( 0 ).getEnvelopeReceiver() );
+ assertEquals( "steve at domain.com", getWiser().getMessages().get( 1 ).getEnvelopeReceiver() );
+
+ String subject = "Summary\n-------\n\nThis is my task subject\n\n";
+ String description = "Description\n-----------\n\nThis is my task description";
+
+ MimeMessage msg = ((WiserMessage) getWiser().getMessages().get( 0 )).getMimeMessage();
+ assertEqualsIgnoreWhitespace( "multipart/alternative;boundary=\"----=_Part_",
+ msg.getContentType(),
+ 0,
+ 47 );
+ assertEquals( "tony at domain.com",
+ ((InternetAddress) msg.getFrom()[0]).getAddress() );
+ assertEquals( "tony at domain.com",
+ ((InternetAddress) msg.getReplyTo()[0]).getAddress() );
+ assertEquals( "steve at domain.com",
+ ((InternetAddress) msg.getRecipients( RecipientType.TO )[0]).getAddress() );
+ assertEquals( "Task Assignment Start Event: This is my task name",
+ msg.getSubject() );
+
+ MimeMultipart multiPart = (MimeMultipart) msg.getContent();
+
+ BodyPart messageBodyPart = multiPart.getBodyPart( 0 );
+ assertEquals( "text/plain; charset=UTF8;", messageBodyPart.getDataHandler().getContentType() );
+ String content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
+ assertEqualsIgnoreWhitespace( subject + description, content );
+
+ messageBodyPart = multiPart.getBodyPart( 1 );
+ assertEquals( "text/calendar; charset=UTF8; name=ical-Start-1.ics", messageBodyPart.getDataHandler().getContentType() );
+ content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
+ assertEqualsIgnoreWhitespace( "BEGIN:VCALENDARPRODID:-//iCal4j 1.0//ENCALSCALE:GREGORIANVERSION:2.0METHOD:REQUESTBEGIN:VEVENTDTSTART;TZID=UTC:", content.substring( 0, 123) );
+ assertEqualsIgnoreWhitespace( "SUMMARY:\"Task Start : This is my task subject\"DESCRIPTION:\"This is my task description\"PRIORITY:55END:VEVENTEND:VCALENDAR", content.substring( content.length()-131, content.length()) );
+
+
+ msg = ((WiserMessage) getWiser().getMessages().get( 1 )).getMimeMessage();
+ assertEqualsIgnoreWhitespace( "multipart/alternative;boundary=\"----=_Part_",
+ msg.getContentType(),
+ 0,
+ 47 );
+ assertEquals( "tony at domain.com",
+ ((InternetAddress) msg.getFrom()[0]).getAddress() );
+ assertEquals( "tony at domain.com",
+ ((InternetAddress) msg.getReplyTo()[0]).getAddress() );
+ assertEquals( "steve at domain.com",
+ ((InternetAddress) msg.getRecipients( RecipientType.TO )[0]).getAddress() );
+ assertEquals( "Task Assignment End Event: This is my task name",
+ msg.getSubject() );
+
+ multiPart = (MimeMultipart) msg.getContent();
+
+ messageBodyPart = multiPart.getBodyPart( 0 );
+ assertEquals( "text/plain; charset=UTF8;", messageBodyPart.getDataHandler().getContentType() );
+ content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
+ assertEqualsIgnoreWhitespace( subject + description, content );
+
+ messageBodyPart = multiPart.getBodyPart( 1 );
+ assertEquals( "text/calendar; charset=UTF8; name=ical-End-1.ics", messageBodyPart.getDataHandler().getContentType() );
+ content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
+ assertEqualsIgnoreWhitespace( "BEGIN:VCALENDARPRODID:-//iCal4j 1.0//ENCALSCALE:GREGORIANVERSION:2.0METHOD:REQUESTBEGIN:VEVENTDTSTART;TZID=UTC:", content.substring( 0, 123) );
+ assertEqualsIgnoreWhitespace( "SUMMARY:\"Task End : This is my task subject\"DESCRIPTION:\"This is my task description\"PRIORITY:55END:VEVENTEND:VCALENDAR", content.substring( content.length()-131, content.length()) );
+ }
+
+ public void testSendWithStartDeadline() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, createdBy = users['tony'], activationTime = now}), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) {potentialOwners = [users['steve' ], users['tony' ]]}), ";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')],";
+ str += "subjects = [ new I18NText( 'en-UK', 'This is my task subject')],";
+ str += "descriptions = [ new I18NText( 'en-UK', 'This is my task description')],";
+ str += "deadlines = (with (new Deadlines() ) {";
+ str += " startDeadlines = [ ";
+ str += " (with (new Deadline()) {";
+ str += " date = now";
+ str += " } ) ]";
+ str += "} ) })";
+
+ MockUserInfo userInfo = new MockUserInfo();
+ userInfo.getEmails().put( users.get( "tony" ),
+ "tony at domain.com" );
+ userInfo.getEmails().put( users.get( "steve" ),
+ "steve at domain.com" );
+
+ userInfo.getLanguages().put( users.get( "tony" ),
+ "en-UK" );
+ userInfo.getLanguages().put( users.get( "steve" ),
+ "en-UK" );
+ taskService.setUserinfo( userInfo );
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = (Task) eval( new StringReader( str ),
+ vars );
+ getClient().addTask( task, null,
+ addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().claim( taskId,
+ users.get( "steve" ).getId(),
+ responseHandler );
+ responseHandler.waitTillDone( 5000 );
+
+ assertEquals( 1,
+ getWiser().getMessages().size() );
+
+ assertEquals( "steve at domain.com", getWiser().getMessages().get( 0 ).getEnvelopeReceiver() );
+
+ String subject = "Summary\n-------\n\nThis is my task subject\n\n";
+ String description = "Description\n-----------\n\nThis is my task description";
+
+ MimeMessage msg = ((WiserMessage) getWiser().getMessages().get( 0 )).getMimeMessage();
+ assertEqualsIgnoreWhitespace( "multipart/alternative;boundary=\"----=_Part_",
+ msg.getContentType(),
+ 0,
+ 47 );
+ assertEquals( "tony at domain.com",
+ ((InternetAddress) msg.getFrom()[0]).getAddress() );
+ assertEquals( "tony at domain.com",
+ ((InternetAddress) msg.getReplyTo()[0]).getAddress() );
+ assertEquals( "steve at domain.com",
+ ((InternetAddress) msg.getRecipients( RecipientType.TO )[0]).getAddress() );
+ assertEquals( "Task Assignment Start Event: This is my task name",
+ msg.getSubject() );
+
+ MimeMultipart multiPart = (MimeMultipart) msg.getContent();
+
+ BodyPart messageBodyPart = multiPart.getBodyPart( 0 );
+ assertEquals( "text/plain; charset=UTF8;", messageBodyPart.getDataHandler().getContentType() );
+ String content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
+ assertEqualsIgnoreWhitespace( subject + description, content );
+
+ messageBodyPart = multiPart.getBodyPart( 1 );
+ assertEquals( "text/calendar; charset=UTF8; name=ical-Start-1.ics", messageBodyPart.getDataHandler().getContentType() );
+ content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
+ assertEqualsIgnoreWhitespace( "BEGIN:VCALENDARPRODID:-//iCal4j 1.0//ENCALSCALE:GREGORIANVERSION:2.0METHOD:REQUESTBEGIN:VEVENTDTSTART;TZID=UTC:", content.substring( 0, 123) );
+ assertEqualsIgnoreWhitespace( "SUMMARY:\"Task Start : This is my task subject\"DESCRIPTION:\"This is my task description\"PRIORITY:55END:VEVENTEND:VCALENDAR", content.substring( content.length()-131, content.length()) );
+ }
+
+ public void testSendWithEndDeadline() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, createdBy = users['tony'], activationTime = now}), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) {potentialOwners = [users['steve' ], users['tony' ]]}), ";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')],";
+ str += "subjects = [ new I18NText( 'en-UK', 'This is my task subject')],";
+ str += "descriptions = [ new I18NText( 'en-UK', 'This is my task description')],";
+ str += "deadlines = (with (new Deadlines() ) {";
+ str += " endDeadlines = [";
+ str += " (with (new Deadline()) {";
+ str += " date = new Date( now.time + ( 1000 * 60 * 60 * 24 ) )"; // set to tomorrow
+ str += " } ) ]";
+ str += "} ) })";
+
+ MockUserInfo userInfo = new MockUserInfo();
+ userInfo.getEmails().put( users.get( "tony" ),
+ "tony at domain.com" );
+ userInfo.getEmails().put( users.get( "steve" ),
+ "steve at domain.com" );
+
+ userInfo.getLanguages().put( users.get( "tony" ),
+ "en-UK" );
+ userInfo.getLanguages().put( users.get( "steve" ),
+ "en-UK" );
+ taskService.setUserinfo( userInfo );
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = (Task) eval( new StringReader( str ),
+ vars );
+ getClient().addTask( task, null,
+ addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().claim( taskId,
+ users.get( "steve" ).getId(),
+ responseHandler );
+
+ responseHandler.waitTillDone( 5000 );
+
+ assertEquals( 1,
+ getWiser().getMessages().size() );
+
+ assertEquals( "steve at domain.com", getWiser().getMessages().get( 0 ).getEnvelopeReceiver() );
+
+ String subject = "Summary\n-------\n\nThis is my task subject\n\n";
+ String description = "Description\n-----------\n\nThis is my task description";
+
+ MimeMessage msg = ((WiserMessage) getWiser().getMessages().get( 0 )).getMimeMessage();
+ assertEqualsIgnoreWhitespace( "multipart/alternative;boundary=\"----=_Part_",
+ msg.getContentType(),
+ 0,
+ 47 );
+ assertEquals( "tony at domain.com",
+ ((InternetAddress) msg.getFrom()[0]).getAddress() );
+ assertEquals( "tony at domain.com",
+ ((InternetAddress) msg.getReplyTo()[0]).getAddress() );
+ assertEquals( "steve at domain.com",
+ ((InternetAddress) msg.getRecipients( RecipientType.TO )[0]).getAddress() );
+ assertEquals( "Task Assignment End Event: This is my task name",
+ msg.getSubject() );
+
+ MimeMultipart multiPart = (MimeMultipart) msg.getContent();
+
+ BodyPart messageBodyPart = multiPart.getBodyPart( 0 );
+ assertEquals( "text/plain; charset=UTF8;", messageBodyPart.getDataHandler().getContentType() );
+ String content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
+ assertEqualsIgnoreWhitespace( subject + description, content );
+
+ messageBodyPart = multiPart.getBodyPart( 1 );
+ assertEquals( "text/calendar; charset=UTF8; name=ical-End-1.ics", messageBodyPart.getDataHandler().getContentType() );
+ content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
+ assertEqualsIgnoreWhitespace( "BEGIN:VCALENDARPRODID:-//iCal4j 1.0//ENCALSCALE:GREGORIANVERSION:2.0METHOD:REQUESTBEGIN:VEVENTDTSTART;TZID=UTC:", content.substring( 0, 123) );
+ assertEqualsIgnoreWhitespace( "SUMMARY:\"Task End : This is my task subject\"DESCRIPTION:\"This is my task description\"PRIORITY:55END:VEVENTEND:VCALENDAR", content.substring( content.length()-131, content.length()) );
+ }
+
+ public void testSendWithNoDeadline() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, createdBy = users['tony'], activationTime = now}), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) {potentialOwners = [users['steve' ], users['tony' ]]}), ";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')],";
+ str += "subjects = [ new I18NText( 'en-UK', 'This is my task subject')],";
+ str += "descriptions = [ new I18NText( 'en-UK', 'This is my task description')]";
+ str += "})";
+
+ MockUserInfo userInfo = new MockUserInfo();
+ userInfo.getEmails().put( users.get( "tony" ),
+ "tony at domain.com" );
+ userInfo.getEmails().put( users.get( "steve" ),
+ "steve at domain.com" );
+
+ userInfo.getLanguages().put( users.get( "tony" ),
+ "en-UK" );
+ userInfo.getLanguages().put( users.get( "steve" ),
+ "en-UK" );
+ taskService.setUserinfo( userInfo );
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = (Task) eval( new StringReader( str ),
+ vars );
+ getClient().addTask( task, null,
+ addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ getClient().claim( taskId,
+ users.get( "steve" ).getId(),
+ responseHandler );
+
+ responseHandler.waitTillDone( 5000 );
+
+ assertEquals( 0,
+ getWiser().getMessages().size() );
+ }
+
+ private static void assertEqualsIgnoreWhitespace(final String expected,
+ final String actual) {
+ assertEqualsIgnoreWhitespace(expected, actual, 0, actual.length());
+ }
+
+ private static void assertEqualsIgnoreWhitespace(final String expected,
+ final String actual,
+ int beginIndex,
+ int endIndex) {
+ final String cleanExpected = expected.replaceAll( "\\s+",
+ "" ).replaceAll( "\\n", "" ).replaceAll( "\\r", "" );
+
+ final String cleanActual = actual.substring( beginIndex,
+ endIndex ).replaceAll( "\\s+",
+ "" ).replaceAll( "\\n", "" ).replaceAll( "\\r", "" );
+ assertEquals( cleanExpected,
+ cleanActual );
+ }
+
+ private static byte[] getBytes(InputStream inputStream) throws Exception {
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream(1024);
+ byte[] bytes = new byte[512];
+
+ // Read bytes from the input stream in bytes.length-sized chunks and write
+ // them into the output stream
+ int readBytes;
+ while ((readBytes = inputStream.read(bytes)) > 0) {
+ outputStream.write(bytes, 0, readBytes);
+ }
+
+ // Convert the contents of the output stream into a byte array
+ byte[] byteData = outputStream.toByteArray();
+
+ // Close the streams
+ inputStream.close();
+ outputStream.close();
+
+ return byteData;
+ }
+
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
+ public TaskClient getClient() {
+ return client;
+ }
+
+ public void setWiser(Wiser wiser) {
+ this.wiser = wiser;
+ }
+
+ public Wiser getWiser() {
+ return wiser;
+ }
+
+ public void setEmailHost(String emailHost) {
+ this.emailHost = emailHost;
+ }
+
+ public String getEmailHost() {
+ return emailHost;
+ }
+
+ public void setEmailPort(String emailPort) {
+ this.emailPort = emailPort;
+ }
+
+ public String getEmailPort() {
+ return emailPort;
+ }
+
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalBaseTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Deleted: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/IcalTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -1,441 +0,0 @@
-package org.drools.task.service;
-
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.StringReader;
-import java.util.Date;
-import java.util.Map;
-
-import javax.mail.BodyPart;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
-import javax.mail.internet.MimeMessage.RecipientType;
-
-import org.apache.commons.collections.map.HashedMap;
-import org.drools.SystemEventListenerFactory;
-import org.drools.task.BaseTest;
-import org.drools.task.MockUserInfo;
-import org.drools.task.Task;
-import org.drools.task.service.mina.MinaTaskClientConnector;
-import org.drools.task.service.mina.MinaTaskServer;
-import org.drools.task.service.mina.TaskMinaClientHandler;
-import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
-import org.drools.util.ChainedProperties;
-import org.drools.util.ClassLoaderUtil;
-import org.subethamail.wiser.Wiser;
-import org.subethamail.wiser.WiserMessage;
-
-public class IcalTest extends BaseTest {
- MinaTaskServer server;
- TaskClient client;
-
- Wiser wiser;
-
- String emailHost;
- String emailPort;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- ChainedProperties props = new ChainedProperties( "process.email.conf", ClassLoaderUtil.getClassLoader( null, getClass(), false ) );
- emailHost = props.getProperty( "host", "locahost" );
- emailPort = props.getProperty( "port", "2345" );
-
- server = new MinaTaskServer( taskService );
- Thread thread = new Thread( server );
- thread.start();
- Thread.sleep( 500 );
-
- client = new TaskClient(new MinaTaskClientConnector("client 1",
- new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 9123);
-
- wiser = new Wiser();
- wiser.setHostname( emailHost );
- wiser.setPort( Integer.parseInt( emailPort ) );
- wiser.start();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- client.disconnect();
- server.stop();
-
- wiser.stop();
- }
-
- public void testSendWithStartandEndDeadline() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users",
- users );
- vars.put( "groups",
- groups );
- vars.put( "now",
- new Date() );
-
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, createdBy = users['tony'], activationTime = now}), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) {potentialOwners = [users['steve' ], users['tony' ]]}), ";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')],";
- str += "subjects = [ new I18NText( 'en-UK', 'This is my task subject')],";
- str += "descriptions = [ new I18NText( 'en-UK', 'This is my task description')],";
- str += "deadlines = (with (new Deadlines() ) {";
- str += " startDeadlines = [ ";
- str += " (with (new Deadline()) {";
- str += " date = now";
- str += " } ) ],";
- str += " endDeadlines = [";
- str += " (with (new Deadline()) {";
- str += " date = new Date( now.time + ( 1000 * 60 * 60 * 24 ) )"; // set to tomorrow
- str += " } ) ]";
- str += "} ) })";
-
- MockUserInfo userInfo = new MockUserInfo();
- userInfo.getEmails().put( users.get( "tony" ),
- "tony at domain.com" );
- userInfo.getEmails().put( users.get( "steve" ),
- "steve at domain.com" );
-
- userInfo.getLanguages().put( users.get( "tony" ),
- "en-UK" );
- userInfo.getLanguages().put( users.get( "steve" ),
- "en-UK" );
- taskService.setUserinfo( userInfo );
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = (Task) eval( new StringReader( str ),
- vars );
- client.addTask( task, null,
- addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId,
- users.get( "steve" ).getId(),
- responseHandler );
- responseHandler.waitTillDone( 5000 );
-
- assertEquals( 2,
- wiser.getMessages().size() );
-
- assertEquals( "steve at domain.com", wiser.getMessages().get( 0 ).getEnvelopeReceiver() );
- assertEquals( "steve at domain.com", wiser.getMessages().get( 1 ).getEnvelopeReceiver() );
-
- String subject = "Summary\n-------\n\nThis is my task subject\n\n";
- String description = "Description\n-----------\n\nThis is my task description";
-
- MimeMessage msg = ((WiserMessage) wiser.getMessages().get( 0 )).getMimeMessage();
- assertEqualsIgnoreWhitespace( "multipart/alternative;boundary=\"----=_Part_",
- msg.getContentType(),
- 0,
- 47 );
- assertEquals( "tony at domain.com",
- ((InternetAddress) msg.getFrom()[0]).getAddress() );
- assertEquals( "tony at domain.com",
- ((InternetAddress) msg.getReplyTo()[0]).getAddress() );
- assertEquals( "steve at domain.com",
- ((InternetAddress) msg.getRecipients( RecipientType.TO )[0]).getAddress() );
- assertEquals( "Task Assignment Start Event: This is my task name",
- msg.getSubject() );
-
- MimeMultipart multiPart = (MimeMultipart) msg.getContent();
-
- BodyPart messageBodyPart = multiPart.getBodyPart( 0 );
- assertEquals( "text/plain; charset=UTF8;", messageBodyPart.getDataHandler().getContentType() );
- String content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
- assertEqualsIgnoreWhitespace( subject + description, content );
-
- messageBodyPart = multiPart.getBodyPart( 1 );
- assertEquals( "text/calendar; charset=UTF8; name=ical-Start-1.ics", messageBodyPart.getDataHandler().getContentType() );
- content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
- assertEqualsIgnoreWhitespace( "BEGIN:VCALENDARPRODID:-//iCal4j 1.0//ENCALSCALE:GREGORIANVERSION:2.0METHOD:REQUESTBEGIN:VEVENTDTSTART;TZID=UTC:", content.substring( 0, 123) );
- assertEqualsIgnoreWhitespace( "SUMMARY:\"Task Start : This is my task subject\"DESCRIPTION:\"This is my task description\"PRIORITY:55END:VEVENTEND:VCALENDAR", content.substring( content.length()-131, content.length()) );
-
-
- msg = ((WiserMessage) wiser.getMessages().get( 1 )).getMimeMessage();
- assertEqualsIgnoreWhitespace( "multipart/alternative;boundary=\"----=_Part_",
- msg.getContentType(),
- 0,
- 47 );
- assertEquals( "tony at domain.com",
- ((InternetAddress) msg.getFrom()[0]).getAddress() );
- assertEquals( "tony at domain.com",
- ((InternetAddress) msg.getReplyTo()[0]).getAddress() );
- assertEquals( "steve at domain.com",
- ((InternetAddress) msg.getRecipients( RecipientType.TO )[0]).getAddress() );
- assertEquals( "Task Assignment End Event: This is my task name",
- msg.getSubject() );
-
- multiPart = (MimeMultipart) msg.getContent();
-
- messageBodyPart = multiPart.getBodyPart( 0 );
- assertEquals( "text/plain; charset=UTF8;", messageBodyPart.getDataHandler().getContentType() );
- content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
- assertEqualsIgnoreWhitespace( subject + description, content );
-
- messageBodyPart = multiPart.getBodyPart( 1 );
- assertEquals( "text/calendar; charset=UTF8; name=ical-End-1.ics", messageBodyPart.getDataHandler().getContentType() );
- content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
- assertEqualsIgnoreWhitespace( "BEGIN:VCALENDARPRODID:-//iCal4j 1.0//ENCALSCALE:GREGORIANVERSION:2.0METHOD:REQUESTBEGIN:VEVENTDTSTART;TZID=UTC:", content.substring( 0, 123) );
- assertEqualsIgnoreWhitespace( "SUMMARY:\"Task End : This is my task subject\"DESCRIPTION:\"This is my task description\"PRIORITY:55END:VEVENTEND:VCALENDAR", content.substring( content.length()-131, content.length()) );
- }
-
- public void testSendWithStartDeadline() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users",
- users );
- vars.put( "groups",
- groups );
- vars.put( "now",
- new Date() );
-
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, createdBy = users['tony'], activationTime = now}), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) {potentialOwners = [users['steve' ], users['tony' ]]}), ";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')],";
- str += "subjects = [ new I18NText( 'en-UK', 'This is my task subject')],";
- str += "descriptions = [ new I18NText( 'en-UK', 'This is my task description')],";
- str += "deadlines = (with (new Deadlines() ) {";
- str += " startDeadlines = [ ";
- str += " (with (new Deadline()) {";
- str += " date = now";
- str += " } ) ]";
- str += "} ) })";
-
- MockUserInfo userInfo = new MockUserInfo();
- userInfo.getEmails().put( users.get( "tony" ),
- "tony at domain.com" );
- userInfo.getEmails().put( users.get( "steve" ),
- "steve at domain.com" );
-
- userInfo.getLanguages().put( users.get( "tony" ),
- "en-UK" );
- userInfo.getLanguages().put( users.get( "steve" ),
- "en-UK" );
- taskService.setUserinfo( userInfo );
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = (Task) eval( new StringReader( str ),
- vars );
- client.addTask( task, null,
- addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId,
- users.get( "steve" ).getId(),
- responseHandler );
- responseHandler.waitTillDone( 5000 );
-
- assertEquals( 1,
- wiser.getMessages().size() );
-
- assertEquals( "steve at domain.com", wiser.getMessages().get( 0 ).getEnvelopeReceiver() );
-
- String subject = "Summary\n-------\n\nThis is my task subject\n\n";
- String description = "Description\n-----------\n\nThis is my task description";
-
- MimeMessage msg = ((WiserMessage) wiser.getMessages().get( 0 )).getMimeMessage();
- assertEqualsIgnoreWhitespace( "multipart/alternative;boundary=\"----=_Part_",
- msg.getContentType(),
- 0,
- 47 );
- assertEquals( "tony at domain.com",
- ((InternetAddress) msg.getFrom()[0]).getAddress() );
- assertEquals( "tony at domain.com",
- ((InternetAddress) msg.getReplyTo()[0]).getAddress() );
- assertEquals( "steve at domain.com",
- ((InternetAddress) msg.getRecipients( RecipientType.TO )[0]).getAddress() );
- assertEquals( "Task Assignment Start Event: This is my task name",
- msg.getSubject() );
-
- MimeMultipart multiPart = (MimeMultipart) msg.getContent();
-
- BodyPart messageBodyPart = multiPart.getBodyPart( 0 );
- assertEquals( "text/plain; charset=UTF8;", messageBodyPart.getDataHandler().getContentType() );
- String content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
- assertEqualsIgnoreWhitespace( subject + description, content );
-
- messageBodyPart = multiPart.getBodyPart( 1 );
- assertEquals( "text/calendar; charset=UTF8; name=ical-Start-1.ics", messageBodyPart.getDataHandler().getContentType() );
- content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
- assertEqualsIgnoreWhitespace( "BEGIN:VCALENDARPRODID:-//iCal4j 1.0//ENCALSCALE:GREGORIANVERSION:2.0METHOD:REQUESTBEGIN:VEVENTDTSTART;TZID=UTC:", content.substring( 0, 123) );
- assertEqualsIgnoreWhitespace( "SUMMARY:\"Task Start : This is my task subject\"DESCRIPTION:\"This is my task description\"PRIORITY:55END:VEVENTEND:VCALENDAR", content.substring( content.length()-131, content.length()) );
- }
-
- public void testSendWithEndDeadline() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users",
- users );
- vars.put( "groups",
- groups );
- vars.put( "now",
- new Date() );
-
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, createdBy = users['tony'], activationTime = now}), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) {potentialOwners = [users['steve' ], users['tony' ]]}), ";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')],";
- str += "subjects = [ new I18NText( 'en-UK', 'This is my task subject')],";
- str += "descriptions = [ new I18NText( 'en-UK', 'This is my task description')],";
- str += "deadlines = (with (new Deadlines() ) {";
- str += " endDeadlines = [";
- str += " (with (new Deadline()) {";
- str += " date = new Date( now.time + ( 1000 * 60 * 60 * 24 ) )"; // set to tomorrow
- str += " } ) ]";
- str += "} ) })";
-
- MockUserInfo userInfo = new MockUserInfo();
- userInfo.getEmails().put( users.get( "tony" ),
- "tony at domain.com" );
- userInfo.getEmails().put( users.get( "steve" ),
- "steve at domain.com" );
-
- userInfo.getLanguages().put( users.get( "tony" ),
- "en-UK" );
- userInfo.getLanguages().put( users.get( "steve" ),
- "en-UK" );
- taskService.setUserinfo( userInfo );
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = (Task) eval( new StringReader( str ),
- vars );
- client.addTask( task, null,
- addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId,
- users.get( "steve" ).getId(),
- responseHandler );
-
- responseHandler.waitTillDone( 5000 );
-
- assertEquals( 1,
- wiser.getMessages().size() );
-
- assertEquals( "steve at domain.com", wiser.getMessages().get( 0 ).getEnvelopeReceiver() );
-
- String subject = "Summary\n-------\n\nThis is my task subject\n\n";
- String description = "Description\n-----------\n\nThis is my task description";
-
- MimeMessage msg = ((WiserMessage) wiser.getMessages().get( 0 )).getMimeMessage();
- assertEqualsIgnoreWhitespace( "multipart/alternative;boundary=\"----=_Part_",
- msg.getContentType(),
- 0,
- 47 );
- assertEquals( "tony at domain.com",
- ((InternetAddress) msg.getFrom()[0]).getAddress() );
- assertEquals( "tony at domain.com",
- ((InternetAddress) msg.getReplyTo()[0]).getAddress() );
- assertEquals( "steve at domain.com",
- ((InternetAddress) msg.getRecipients( RecipientType.TO )[0]).getAddress() );
- assertEquals( "Task Assignment End Event: This is my task name",
- msg.getSubject() );
-
- MimeMultipart multiPart = (MimeMultipart) msg.getContent();
-
- BodyPart messageBodyPart = multiPart.getBodyPart( 0 );
- assertEquals( "text/plain; charset=UTF8;", messageBodyPart.getDataHandler().getContentType() );
- String content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
- assertEqualsIgnoreWhitespace( subject + description, content );
-
- messageBodyPart = multiPart.getBodyPart( 1 );
- assertEquals( "text/calendar; charset=UTF8; name=ical-End-1.ics", messageBodyPart.getDataHandler().getContentType() );
- content = new String( getBytes( messageBodyPart.getDataHandler().getInputStream() ) );
- assertEqualsIgnoreWhitespace( "BEGIN:VCALENDARPRODID:-//iCal4j 1.0//ENCALSCALE:GREGORIANVERSION:2.0METHOD:REQUESTBEGIN:VEVENTDTSTART;TZID=UTC:", content.substring( 0, 123) );
- assertEqualsIgnoreWhitespace( "SUMMARY:\"Task End : This is my task subject\"DESCRIPTION:\"This is my task description\"PRIORITY:55END:VEVENTEND:VCALENDAR", content.substring( content.length()-131, content.length()) );
- }
-
- public void testSendWithNoDeadline() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users",
- users );
- vars.put( "groups",
- groups );
- vars.put( "now",
- new Date() );
-
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { createdOn = now, createdBy = users['tony'], activationTime = now}), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) {potentialOwners = [users['steve' ], users['tony' ]]}), ";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')],";
- str += "subjects = [ new I18NText( 'en-UK', 'This is my task subject')],";
- str += "descriptions = [ new I18NText( 'en-UK', 'This is my task description')]";
- str += "})";
-
- MockUserInfo userInfo = new MockUserInfo();
- userInfo.getEmails().put( users.get( "tony" ),
- "tony at domain.com" );
- userInfo.getEmails().put( users.get( "steve" ),
- "steve at domain.com" );
-
- userInfo.getLanguages().put( users.get( "tony" ),
- "en-UK" );
- userInfo.getLanguages().put( users.get( "steve" ),
- "en-UK" );
- taskService.setUserinfo( userInfo );
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = (Task) eval( new StringReader( str ),
- vars );
- client.addTask( task, null,
- addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId,
- users.get( "steve" ).getId(),
- responseHandler );
-
- responseHandler.waitTillDone( 5000 );
-
- assertEquals( 0,
- wiser.getMessages().size() );
- }
-
- private static void assertEqualsIgnoreWhitespace(final String expected,
- final String actual) {
- assertEqualsIgnoreWhitespace(expected, actual, 0, actual.length());
- }
-
- private static void assertEqualsIgnoreWhitespace(final String expected,
- final String actual,
- int beginIndex,
- int endIndex) {
- final String cleanExpected = expected.replaceAll( "\\s+",
- "" ).replaceAll( "\\n", "" ).replaceAll( "\\r", "" );
-
- final String cleanActual = actual.substring( beginIndex,
- endIndex ).replaceAll( "\\s+",
- "" ).replaceAll( "\\n", "" ).replaceAll( "\\r", "" );
- assertEquals( cleanExpected,
- cleanActual );
- }
-
- private static byte[] getBytes(InputStream inputStream) throws Exception {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream(1024);
- byte[] bytes = new byte[512];
-
- // Read bytes from the input stream in bytes.length-sized chunks and write
- // them into the output stream
- int readBytes;
- while ((readBytes = inputStream.read(bytes)) > 0) {
- outputStream.write(bytes, 0, readBytes);
- }
-
- // Convert the contents of the output stream into a byte array
- byte[] byteData = outputStream.toByteArray();
-
- // Close the streams
- inputStream.close();
- outputStream.close();
-
- return byteData;
-
- }
-
-}
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleBaseTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleBaseTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleBaseTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,177 @@
+package org.drools.task.service;
+
+import java.io.StringReader;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.drools.eventmessaging.EventKey;
+import org.drools.eventmessaging.Payload;
+import org.drools.task.BaseTest;
+import org.drools.task.Status;
+import org.drools.task.Task;
+import org.drools.task.event.TaskCompletedEvent;
+import org.drools.task.event.TaskEventKey;
+import org.drools.task.query.TaskSummary;
+import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingEventResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingTaskSummaryResponseHandler;
+
+public abstract class TaskLifeCycleBaseTest extends BaseTest {
+
+ private TaskClient client;
+
+ @SuppressWarnings("unchecked")
+ public void testLifeCycle() throws Exception {
+ Map<String, Object> vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { workItemId = 1 } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba']], }),";
+// str += "descriptions = [ new I18NText( 'en-UK', 'This is my description')], ";
+// str += "subjects = [ new I18NText( 'en-UK', 'This is my subject')], ";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId );
+ BlockingEventResponseHandler handler = new BlockingEventResponseHandler();
+ client.registerForEvent( key, true, handler );
+
+ BlockingTaskSummaryResponseHandler taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
+ List<TaskSummary> tasks = taskSummaryResponseHandler.getResults();
+ assertEquals(1, tasks.size());
+ assertEquals(Status.Reserved, tasks.get(0).getStatus());
+
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "bobba" ).getId(), responseHandler );
+
+ taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
+ tasks = taskSummaryResponseHandler.getResults();
+ assertEquals(1, tasks.size());
+ assertEquals(Status.InProgress, tasks.get(0).getStatus());
+
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
+
+ taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
+ tasks = taskSummaryResponseHandler.getResults();
+ assertEquals(0, tasks.size());
+
+ Payload payload = handler.getPayload();
+ TaskCompletedEvent event = ( TaskCompletedEvent ) payload.get();
+ assertNotNull( event );
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Completed , task1.getTaskData().getStatus() );
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testLifeCycleMultipleTasks() throws Exception {
+ Map<String, Object> vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { workItemId = 1 } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba']], }),";
+ str += "descriptions = [ new I18NText( 'en-UK', 'This is my description')], ";
+ str += "subjects = [ new I18NText( 'en-UK', 'This is my subject')], ";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId );
+ BlockingEventResponseHandler handler = new BlockingEventResponseHandler();
+ client.registerForEvent( key, true, handler );
+
+ BlockingTaskSummaryResponseHandler taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
+ List<TaskSummary> tasks = taskSummaryResponseHandler.getResults();
+ assertEquals(1, tasks.size());
+ assertEquals(Status.Reserved, tasks.get(0).getStatus());
+
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "bobba" ).getId(), responseHandler );
+
+ taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
+ tasks = taskSummaryResponseHandler.getResults();
+ assertEquals(1, tasks.size());
+ assertEquals(Status.InProgress, tasks.get(0).getStatus());
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler2 = new BlockingAddTaskResponseHandler();
+ Task task2 = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task2, null, addTaskResponseHandler2 );
+ long taskId2 = addTaskResponseHandler.getTaskId();
+
+ EventKey key2 = new TaskEventKey(TaskCompletedEvent.class, taskId2 );
+ BlockingEventResponseHandler handler2 = new BlockingEventResponseHandler();
+ client.registerForEvent( key2, true, handler2 );
+
+ taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
+ tasks = taskSummaryResponseHandler.getResults();
+ assertEquals(2, tasks.size());
+
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
+
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId2, users.get( "bobba" ).getId(), responseHandler );
+
+ taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
+ client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
+ tasks = taskSummaryResponseHandler.getResults();
+ assertEquals(1, tasks.size());
+
+ Payload payload = handler.getPayload();
+ TaskCompletedEvent event = ( TaskCompletedEvent ) payload.get();
+ assertNotNull( event );
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ task = getTaskResponseHandler.getTask();
+ assertEquals( Status.Completed , task.getTaskData().getStatus() );
+
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.complete( taskId2, users.get( "bobba" ).getId(), null, responseHandler );
+
+ payload = handler.getPayload();
+ event = ( TaskCompletedEvent ) payload.get();
+ assertNotNull( event );
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler2 = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId2, getTaskResponseHandler2 );
+ task2 = getTaskResponseHandler2.getTask();
+ assertEquals( Status.Completed , task2.getTaskData().getStatus() );
+ }
+
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
+ public TaskClient getClient() {
+ return client;
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleBaseTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Deleted: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskLifeCycleTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -1,193 +0,0 @@
-package org.drools.task.service;
-
-import java.io.StringReader;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.collections.map.HashedMap;
-import org.drools.SystemEventListenerFactory;
-import org.drools.eventmessaging.EventKey;
-import org.drools.eventmessaging.Payload;
-import org.drools.task.BaseTest;
-import org.drools.task.Status;
-import org.drools.task.Task;
-import org.drools.task.event.TaskCompletedEvent;
-import org.drools.task.event.TaskEventKey;
-import org.drools.task.query.TaskSummary;
-import org.drools.task.service.mina.MinaTaskClientConnector;
-import org.drools.task.service.mina.MinaTaskServer;
-import org.drools.task.service.mina.TaskMinaClientHandler;
-import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingEventResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingTaskSummaryResponseHandler;
-
-public class TaskLifeCycleTest extends BaseTest {
-
- MinaTaskServer server;
- TaskClient client;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- server = new MinaTaskServer( taskService );
- Thread thread = new Thread( server );
- thread.start();
- Thread.sleep( 500 );
-
- client = new TaskClient(new MinaTaskClientConnector("client 1",
- new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 9123);
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- client.disconnect();
- server.stop();
- }
-
- @SuppressWarnings("unchecked")
- public void testLifeCycle() throws Exception {
- Map<String, Object> vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { workItemId = 1 } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba']], }),";
-// str += "descriptions = [ new I18NText( 'en-UK', 'This is my description')], ";
-// str += "subjects = [ new I18NText( 'en-UK', 'This is my subject')], ";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId );
- BlockingEventResponseHandler handler = new BlockingEventResponseHandler();
- client.registerForEvent( key, true, handler );
-
- BlockingTaskSummaryResponseHandler taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
- List<TaskSummary> tasks = taskSummaryResponseHandler.getResults();
- assertEquals(1, tasks.size());
- assertEquals(Status.Reserved, tasks.get(0).getStatus());
-
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "bobba" ).getId(), responseHandler );
-
- taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
- tasks = taskSummaryResponseHandler.getResults();
- assertEquals(1, tasks.size());
- assertEquals(Status.InProgress, tasks.get(0).getStatus());
-
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
-
- taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
- tasks = taskSummaryResponseHandler.getResults();
- assertEquals(0, tasks.size());
-
- Payload payload = handler.getPayload();
- TaskCompletedEvent event = ( TaskCompletedEvent ) payload.get();
- assertNotNull( event );
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Completed , task1.getTaskData().getStatus() );
- }
-
- @SuppressWarnings("unchecked")
- public void testLifeCycleMultipleTasks() throws Exception {
- Map<String, Object> vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { workItemId = 1 } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba']], }),";
- str += "descriptions = [ new I18NText( 'en-UK', 'This is my description')], ";
- str += "subjects = [ new I18NText( 'en-UK', 'This is my subject')], ";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
- long taskId = addTaskResponseHandler.getTaskId();
-
- EventKey key = new TaskEventKey(TaskCompletedEvent.class, taskId );
- BlockingEventResponseHandler handler = new BlockingEventResponseHandler();
- client.registerForEvent( key, true, handler );
-
- BlockingTaskSummaryResponseHandler taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
- List<TaskSummary> tasks = taskSummaryResponseHandler.getResults();
- assertEquals(1, tasks.size());
- assertEquals(Status.Reserved, tasks.get(0).getStatus());
-
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "bobba" ).getId(), responseHandler );
-
- taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
- tasks = taskSummaryResponseHandler.getResults();
- assertEquals(1, tasks.size());
- assertEquals(Status.InProgress, tasks.get(0).getStatus());
-
- BlockingAddTaskResponseHandler addTaskResponseHandler2 = new BlockingAddTaskResponseHandler();
- Task task2 = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task2, null, addTaskResponseHandler2 );
- long taskId2 = addTaskResponseHandler.getTaskId();
-
- EventKey key2 = new TaskEventKey(TaskCompletedEvent.class, taskId2 );
- BlockingEventResponseHandler handler2 = new BlockingEventResponseHandler();
- client.registerForEvent( key2, true, handler2 );
-
- taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
- tasks = taskSummaryResponseHandler.getResults();
- assertEquals(2, tasks.size());
-
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
-
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId2, users.get( "bobba" ).getId(), responseHandler );
-
- taskSummaryResponseHandler = new BlockingTaskSummaryResponseHandler();
- client.getTasksAssignedAsPotentialOwner(users.get( "bobba" ).getId(), "en-UK", taskSummaryResponseHandler);
- tasks = taskSummaryResponseHandler.getResults();
- assertEquals(1, tasks.size());
-
- Payload payload = handler.getPayload();
- TaskCompletedEvent event = ( TaskCompletedEvent ) payload.get();
- assertNotNull( event );
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- task = getTaskResponseHandler.getTask();
- assertEquals( Status.Completed , task.getTaskData().getStatus() );
-
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId2, users.get( "bobba" ).getId(), null, responseHandler );
-
- payload = handler.getPayload();
- event = ( TaskCompletedEvent ) payload.get();
- assertNotNull( event );
-
- BlockingGetTaskResponseHandler getTaskResponseHandler2 = new BlockingGetTaskResponseHandler();
- client.getTask( taskId2, getTaskResponseHandler2 );
- task2 = getTaskResponseHandler2.getTask();
- assertEquals( Status.Completed , task2.getTaskData().getStatus() );
- }
-
-}
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceBaseTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceBaseTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceBaseTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -15,17 +15,8 @@
public abstract class TaskServiceBaseTest extends BaseTest {
- protected TaskClient client;
+ private TaskClient client;
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- }
-
@SuppressWarnings("unchecked")
public void testTasksOwnedQueryWithI18N() throws Exception {
Map<String, Object> vars = new HashedMap();
@@ -33,7 +24,7 @@
vars.put( "groups", groups );
//Reader reader;
- Reader reader = new InputStreamReader( getClass().getResourceAsStream( "QueryData_TasksOwned.mvel" ) );
+ Reader reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryData_TasksOwned.mvel" ) );
List<Task> tasks = (List<Task>) eval( reader,
vars );
for ( Task task : tasks ) {
@@ -42,7 +33,7 @@
}
// Test UK I18N
- reader = new InputStreamReader( getClass().getResourceAsStream( "QueryResults_TasksOwnedInEnglish.mvel" ) );
+ reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryResults_TasksOwnedInEnglish.mvel" ) );
Map<String, List<TaskSummary>> expected = (Map<String, List<TaskSummary>>) eval( reader,
vars );
@@ -77,7 +68,7 @@
actual ) );
// Test DK I18N
- reader = new InputStreamReader( getClass().getResourceAsStream( "QueryResults_TasksOwnedInGerman.mvel" ) );
+ reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryResults_TasksOwnedInGerman.mvel" ) );
expected = (Map<String, List<TaskSummary>>) eval( reader,
vars );
@@ -119,14 +110,14 @@
vars.put( "groups",
groups );
- Reader reader = new InputStreamReader( getClass().getResourceAsStream( "QueryData_TasksOwned.mvel" ) );
+ Reader reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryData_TasksOwned.mvel" ) );
List<Task> tasks = (List<Task>) eval( reader,
vars );
for ( Task task : tasks ) {
taskSession.addTask( task, null );
}
- reader = new InputStreamReader( getClass().getResourceAsStream( "QueryResults_PeopleAssignmentQuerries.mvel" ) );
+ reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryResults_PeopleAssignmentQuerries.mvel" ) );
Map<String, List<TaskSummary>> expected = (Map<String, List<TaskSummary>>) eval( reader,
vars );
@@ -179,7 +170,15 @@
actual ) );
}
- public static class BlockingAllOpenTasksForUseResponseHandler
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
+ public TaskClient getClient() {
+ return client;
+ }
+
+ public static class BlockingAllOpenTasksForUseResponseHandler
implements
TaskSummaryResponseHandler {
private volatile List<TaskSummary> results;
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsBaseTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsBaseTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceCommentsAndAttachmentsBaseTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -24,7 +24,7 @@
public abstract class TaskServiceCommentsAndAttachmentsBaseTest extends BaseTest {
- protected TaskClient client;
+ private TaskClient client;
@Override
protected void setUp() throws Exception {
@@ -36,7 +36,15 @@
client.disconnect();
}
- public void testAddRemoveComment() {
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
+ public TaskClient getClient() {
+ return client;
+ }
+
+ public void testAddRemoveComment() {
Map vars = new HashedMap();
vars.put( "users", users );
vars.put( "groups", groups );
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesBaseTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesBaseTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesBaseTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,195 @@
+package org.drools.task.service;
+
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMessage.RecipientType;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.drools.process.instance.impl.DefaultWorkItemManager;
+import org.drools.runtime.process.WorkItemManager;
+import org.drools.task.BaseTest;
+import org.drools.task.Content;
+import org.drools.task.MockUserInfo;
+import org.drools.task.OrganizationalEntity;
+import org.drools.task.Status;
+import org.drools.task.Task;
+import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingSetContentResponseHandler;
+import org.subethamail.wiser.Wiser;
+import org.subethamail.wiser.WiserMessage;
+
+public abstract class TaskServiceDeadlinesBaseTest extends BaseTest {
+
+ private TaskClient client;
+ private Properties conf;
+ private Wiser wiser;
+
+ public void testDelayedEmailNotificationOnDeadline() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ DefaultEscalatedDeadlineHandler notificationHandler = new DefaultEscalatedDeadlineHandler( getConf() );
+ WorkItemManager manager = new DefaultWorkItemManager( null );
+ notificationHandler.setManager( manager );
+
+ MockUserInfo userInfo = new MockUserInfo();
+ userInfo.getEmails().put( users.get("tony"), "tony at domain.com" );
+ userInfo.getEmails().put( users.get("darth"), "darth at domain.com" );
+
+ userInfo.getLanguages().put( users.get("tony"), "en-UK" );
+ userInfo.getLanguages().put( users.get("darth"), "en-UK" );
+ notificationHandler.setUserInfo( userInfo );
+
+ taskService.setEscalatedDeadlineHandler( notificationHandler );
+
+ String string = toString( new InputStreamReader( getClass().getResourceAsStream( "../DeadlineWithNotification.mvel" ) ) );
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( string ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ Content content = new Content();
+ content.setContent( "['subject' : 'My Subject', 'body' : 'My Body']".getBytes() );
+ BlockingSetContentResponseHandler setContentResponseHandler = new BlockingSetContentResponseHandler();
+ client.setDocumentContent( taskId, content, setContentResponseHandler );
+ long contentId = setContentResponseHandler.getContentId();
+ BlockingGetContentResponseHandler getResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent( contentId, getResponseHandler );
+ content = getResponseHandler.getContent();
+ assertEquals( "['subject' : 'My Subject', 'body' : 'My Body']", new String( content.getContent() ) );
+
+ // emails should not be set yet
+ assertEquals(0, getWiser().getMessages().size() );
+ Thread.sleep( 100 );
+
+ // nor yet
+ assertEquals(0, getWiser().getMessages().size() );
+
+ long time = 0;
+ while ( getWiser().getMessages().size() != 2 && time < 15000 ) {
+ Thread.sleep( 500 );
+ time += 500;
+ }
+
+ // 1 email with two recipients should now exist
+ assertEquals(2, getWiser().getMessages().size() );
+
+ List<String> list = new ArrayList<String>(2);
+ list.add( getWiser().getMessages().get( 0 ).getEnvelopeReceiver() );
+ list.add( getWiser().getMessages().get( 1 ).getEnvelopeReceiver() );
+
+ assertTrue( list.contains("tony at domain.com"));
+ assertTrue( list.contains("darth at domain.com"));
+
+
+ MimeMessage msg = (( WiserMessage ) getWiser().getMessages().get( 0 )).getMimeMessage();
+ assertEquals( "My Body", msg.getContent() );
+ assertEquals( "My Subject", msg.getSubject() );
+ assertEquals( "from at domain.com", ((InternetAddress)msg.getFrom()[0]).getAddress() );
+ assertEquals( "replyTo at domain.com", ((InternetAddress)msg.getReplyTo()[0]).getAddress() );
+ assertEquals( "tony at domain.com", ((InternetAddress)msg.getRecipients( RecipientType.TO )[0]).getAddress() );
+ assertEquals( "darth at domain.com", ((InternetAddress)msg.getRecipients( RecipientType.TO )[1]).getAddress() );
+ }
+
+ public void testDelayedReassignmentOnDeadline() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ DefaultEscalatedDeadlineHandler notificationHandler = new DefaultEscalatedDeadlineHandler(getConf());
+ WorkItemManager manager = new DefaultWorkItemManager( null );
+ notificationHandler.setManager( manager );
+
+ MockUserInfo userInfo = new MockUserInfo();
+ userInfo.getEmails().put( users.get("tony"), "tony at domain.com" );
+ userInfo.getEmails().put( users.get("luke"), "luke at domain.com" );
+ userInfo.getEmails().put( users.get("bobba"), "luke at domain.com" );
+ userInfo.getEmails().put( users.get("jabba"), "luke at domain.com" );
+
+ userInfo.getLanguages().put( users.get("tony"), "en-UK" );
+ userInfo.getLanguages().put( users.get("luke"), "en-UK" );
+ userInfo.getLanguages().put( users.get("bobba"), "en-UK" );
+ userInfo.getLanguages().put( users.get("jabba"), "en-UK" );
+ notificationHandler.setUserInfo( userInfo );
+
+ taskService.setEscalatedDeadlineHandler( notificationHandler );
+
+ String string = toString( new InputStreamReader( getClass().getResourceAsStream( "../DeadlineWithReassignment.mvel" ) ) );
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( string ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Shouldn't have re-assigned yet
+ Thread.sleep( 1000 );
+ BlockingGetTaskResponseHandler getTaskHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskHandler );
+ task = getTaskHandler.getTask();
+ List<OrganizationalEntity> potentialOwners = task.getPeopleAssignments().getPotentialOwners();
+ List<String> ids = new ArrayList<String>(potentialOwners.size());
+ for ( OrganizationalEntity entity : potentialOwners ) {
+ ids.add( entity.getId() );
+ }
+ assertTrue( ids.contains( users.get( "tony" ).getId() ));
+ assertTrue( ids.contains( users.get( "luke" ).getId() ));
+
+ // should have re-assigned by now
+ long time = 0;
+ while ( getWiser().getMessages().size() != 2 && time < 15000 ) {
+ Thread.sleep( 500 );
+ time += 500;
+ }
+
+ getTaskHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskHandler );
+ task = getTaskHandler.getTask();
+ assertEquals( Status.Ready, task.getTaskData().getStatus() );
+ potentialOwners = task.getPeopleAssignments().getPotentialOwners();
+ System.out.println( potentialOwners );
+ ids = new ArrayList<String>(potentialOwners.size());
+ for ( OrganizationalEntity entity : potentialOwners ) {
+ ids.add( entity.getId() );
+ }
+ assertTrue( ids.contains( users.get( "bobba" ).getId() ));
+ assertTrue( ids.contains( users.get( "jabba" ).getId() ));
+ }
+
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
+ public TaskClient getClient() {
+ return client;
+ }
+
+ public void setConf(Properties conf) {
+ this.conf = conf;
+ }
+
+ public Properties getConf() {
+ return conf;
+ }
+
+ public void setWiser(Wiser wiser) {
+ this.wiser = wiser;
+ }
+
+ public Wiser getWiser() {
+ return wiser;
+ }
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesBaseTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Deleted: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceDeadlinesTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -1,211 +0,0 @@
-package org.drools.task.service;
-
-import java.io.InputStreamReader;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMessage.RecipientType;
-
-import org.apache.commons.collections.map.HashedMap;
-import org.drools.SystemEventListenerFactory;
-import org.drools.process.instance.impl.DefaultWorkItemManager;
-import org.drools.runtime.process.WorkItemManager;
-import org.drools.task.BaseTest;
-import org.drools.task.Content;
-import org.drools.task.MockUserInfo;
-import org.drools.task.OrganizationalEntity;
-import org.drools.task.Status;
-import org.drools.task.Task;
-import org.drools.task.service.mina.MinaTaskClientConnector;
-import org.drools.task.service.mina.MinaTaskServer;
-import org.drools.task.service.mina.TaskMinaClientHandler;
-import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingSetContentResponseHandler;
-import org.subethamail.wiser.Wiser;
-import org.subethamail.wiser.WiserMessage;
-
-public class TaskServiceDeadlinesTest extends BaseTest {
- MinaTaskServer server;
- TaskClient client;
- Properties conf;
-
- Wiser wiser;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
-
- conf = new Properties();
- conf.setProperty( "mail.smtp.host", "localhost" );
- conf.setProperty( "mail.smtp.port", "2345" );
- conf.setProperty( "from", "from at domain.com" );
- conf.setProperty( "replyTo", "replyTo at domain.com" );
- conf.setProperty( "defaultLanguage", "en-UK" );
-
- server = new MinaTaskServer( taskService );
- Thread thread = new Thread( server );
- thread.start();
- Thread.sleep( 500 );
-
- client = new TaskClient(new MinaTaskClientConnector("client 1",
- new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 9123);
-
- wiser = new Wiser();
- wiser.setHostname( conf.getProperty( "mail.smtp.host" ) );
- wiser.setPort( Integer.parseInt( conf.getProperty( "mail.smtp.port" ) ) );
- wiser.start();
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- client.disconnect();
- server.stop();
-
- wiser.stop();
- }
-
- public void testDelayedEmailNotificationOnDeadline() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- DefaultEscalatedDeadlineHandler notificationHandler = new DefaultEscalatedDeadlineHandler( conf );
- WorkItemManager manager = new DefaultWorkItemManager( null );
- notificationHandler.setManager( manager );
-
- MockUserInfo userInfo = new MockUserInfo();
- userInfo.getEmails().put( users.get("tony"), "tony at domain.com" );
- userInfo.getEmails().put( users.get("darth"), "darth at domain.com" );
-
- userInfo.getLanguages().put( users.get("tony"), "en-UK" );
- userInfo.getLanguages().put( users.get("darth"), "en-UK" );
- notificationHandler.setUserInfo( userInfo );
-
- taskService.setEscalatedDeadlineHandler( notificationHandler );
-
- String string = toString( new InputStreamReader( getClass().getResourceAsStream( "DeadlineWithNotification.mvel" ) ) );
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( string ), vars );
- client.addTask( task, null, addTaskResponseHandler );
- long taskId = addTaskResponseHandler.getTaskId();
-
- Content content = new Content();
- content.setContent( "['subject' : 'My Subject', 'body' : 'My Body']".getBytes() );
- BlockingSetContentResponseHandler setContentResponseHandler = new BlockingSetContentResponseHandler();
- client.setDocumentContent( taskId, content, setContentResponseHandler );
- long contentId = setContentResponseHandler.getContentId();
- BlockingGetContentResponseHandler getResponseHandler = new BlockingGetContentResponseHandler();
- client.getContent( contentId, getResponseHandler );
- content = getResponseHandler.getContent();
- assertEquals( "['subject' : 'My Subject', 'body' : 'My Body']", new String( content.getContent() ) );
-
- // emails should not be set yet
- assertEquals(0, wiser.getMessages().size() );
- Thread.sleep( 100 );
-
- // nor yet
- assertEquals(0, wiser.getMessages().size() );
-
- long time = 0;
- while ( wiser.getMessages().size() != 2 && time < 15000 ) {
- Thread.sleep( 500 );
- time += 500;
- }
-
-
- // 1 email with two recipients should now exist
- assertEquals(2, wiser.getMessages().size() );
-
- List<String> list = new ArrayList<String>(2);
- list.add( wiser.getMessages().get( 0 ).getEnvelopeReceiver() );
- list.add( wiser.getMessages().get( 1 ).getEnvelopeReceiver() );
-
- assertTrue( list.contains("tony at domain.com"));
- assertTrue( list.contains("darth at domain.com"));
-
-
- MimeMessage msg = (( WiserMessage ) wiser.getMessages().get( 0 )).getMimeMessage();
- assertEquals( "My Body", msg.getContent() );
- assertEquals( "My Subject", msg.getSubject() );
- assertEquals( "from at domain.com", ((InternetAddress)msg.getFrom()[0]).getAddress() );
- assertEquals( "replyTo at domain.com", ((InternetAddress)msg.getReplyTo()[0]).getAddress() );
- assertEquals( "tony at domain.com", ((InternetAddress)msg.getRecipients( RecipientType.TO )[0]).getAddress() );
- assertEquals( "darth at domain.com", ((InternetAddress)msg.getRecipients( RecipientType.TO )[1]).getAddress() );
- }
-
- public void testDelayedReassignmentOnDeadline() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- DefaultEscalatedDeadlineHandler notificationHandler = new DefaultEscalatedDeadlineHandler(conf);
- WorkItemManager manager = new DefaultWorkItemManager( null );
- notificationHandler.setManager( manager );
-
- MockUserInfo userInfo = new MockUserInfo();
- userInfo.getEmails().put( users.get("tony"), "tony at domain.com" );
- userInfo.getEmails().put( users.get("luke"), "luke at domain.com" );
- userInfo.getEmails().put( users.get("bobba"), "luke at domain.com" );
- userInfo.getEmails().put( users.get("jabba"), "luke at domain.com" );
-
- userInfo.getLanguages().put( users.get("tony"), "en-UK" );
- userInfo.getLanguages().put( users.get("luke"), "en-UK" );
- userInfo.getLanguages().put( users.get("bobba"), "en-UK" );
- userInfo.getLanguages().put( users.get("jabba"), "en-UK" );
- notificationHandler.setUserInfo( userInfo );
-
- taskService.setEscalatedDeadlineHandler( notificationHandler );
-
- String string = toString( new InputStreamReader( getClass().getResourceAsStream( "DeadlineWithReassignment.mvel" ) ) );
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( string ), vars );
- client.addTask( task, null, addTaskResponseHandler );
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Shouldn't have re-assigned yet
- Thread.sleep( 1000 );
- BlockingGetTaskResponseHandler getTaskHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskHandler );
- task = getTaskHandler.getTask();
- List<OrganizationalEntity> potentialOwners = task.getPeopleAssignments().getPotentialOwners();
- List<String> ids = new ArrayList<String>(potentialOwners.size());
- for ( OrganizationalEntity entity : potentialOwners ) {
- ids.add( entity.getId() );
- }
- assertTrue( ids.contains( users.get( "tony" ).getId() ));
- assertTrue( ids.contains( users.get( "luke" ).getId() ));
-
- // should have re-assigned by now
- long time = 0;
- while ( wiser.getMessages().size() != 2 && time < 15000 ) {
- Thread.sleep( 500 );
- time += 500;
- }
-
- getTaskHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskHandler );
- task = getTaskHandler.getTask();
- assertEquals( Status.Ready, task.getTaskData().getStatus() );
- potentialOwners = task.getPeopleAssignments().getPotentialOwners();
- System.out.println( potentialOwners );
- ids = new ArrayList<String>(potentialOwners.size());
- for ( OrganizationalEntity entity : potentialOwners ) {
- ids.add( entity.getId() );
- }
- assertTrue( ids.contains( users.get( "bobba" ).getId() ));
- assertTrue( ids.contains( users.get( "jabba" ).getId() ));
- }
-}
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationBaseTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationBaseTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationBaseTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,205 @@
+package org.drools.task.service;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.BaseTest;
+import org.drools.task.Deadline;
+import org.drools.task.Task;
+import org.drools.task.service.TaskServiceEscalationBaseTest.MockEscalatedDeadlineHandler.Item;
+import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
+
+public abstract class TaskServiceEscalationBaseTest extends BaseTest {
+
+ private TaskClient client;
+
+ public void testDummy() {
+ assertTrue( true );
+ }
+
+ public void FIXME_testUnescalatedDeadlines() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+
+ MockEscalatedDeadlineHandler handler = new MockEscalatedDeadlineHandler();
+ taskService.setEscalatedDeadlineHandler( handler );
+
+ //Reader reader;
+ Reader reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryData_UnescalatedDeadlines.mvel" ) );
+ List<Task> tasks = (List<Task>) eval( reader,
+ vars );
+ long now = ((Date)vars.get( "now" )).getTime();
+
+ for ( Task task : tasks ) {
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ client.addTask( task, null, addTaskResponseHandler );
+ addTaskResponseHandler.waitTillDone( 3000 );
+ }
+
+ handler.wait( 3, 30000 );
+
+ assertEquals( 3, handler.list.size() );
+
+ Item item0 = handler.list.get( 0 );
+ assertEquals( now + 20000,
+ item0.getDeadline().getDate().getTime() );
+
+ Item item1 = handler.list.get( 1 );
+ assertEquals( now + 22000,
+ item1.getDeadline().getDate().getTime() );
+
+ Item item2 = handler.list.get( 2 );
+ assertEquals( now + 24000,
+ item2.getDeadline().getDate().getTime() );
+ }
+
+ public void FIXME_testUnescalatedDeadlinesOnStartup() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+
+ //Reader reader;
+ Reader reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryData_UnescalatedDeadlines.mvel" ) );
+ List<Task> tasks = (List<Task>) eval( reader,
+ vars );
+ long now = ((Date)vars.get( "now" )).getTime();
+
+ EntityManager em = emf.createEntityManager();
+ em.getTransaction().begin();
+ for ( Task task : tasks ) {
+ // for this one we put the task in directly;
+ em.persist( task );
+ }
+ em.getTransaction().commit();
+
+ // now create a new service, to see if it initiates from the DB correctly
+ MockEscalatedDeadlineHandler handler = new MockEscalatedDeadlineHandler();
+ TaskService local = new TaskService(emf, SystemEventListenerFactory.getSystemEventListener(), handler);
+
+ handler.wait( 3, 30000 );
+
+ assertEquals( 3, handler.list.size() );
+
+ Item item0 = handler.list.get( 0 );
+ assertEquals( item0.getDeadline().getDate().getTime(),
+ now + 20000 );
+
+ Item item1 = handler.list.get( 1 );
+ assertEquals( item1.getDeadline().getDate().getTime(),
+ now + 22000 );
+
+ Item item2 = handler.list.get( 2 );
+ assertEquals( item2.getDeadline().getDate().getTime(),
+ now + 24000 );
+ }
+
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
+ public TaskClient getClient() {
+ return client;
+ }
+
+ public static class MockEscalatedDeadlineHandler
+ implements
+ EscalatedDeadlineHandler {
+
+ List<Item> list = new ArrayList<Item>();
+
+ TaskService taskService;
+
+ public void executeEscalatedDeadline(Task task,
+ Deadline deadline,
+ EntityManager em,
+ TaskService taskService) {
+ list.add( new Item( task,
+ deadline,
+ em,
+ taskService ) );
+ }
+
+ public List<Item> getList() {
+ return this.list;
+ }
+
+ public static class Item {
+ Task task;
+ Deadline deadline;
+ EntityManager em;
+
+ public Item(Task task,
+ Deadline deadline,
+ EntityManager em,
+ TaskService taskService) {
+ this.deadline = deadline;
+ this.em = em;
+ this.task = task;
+ }
+
+ public Task getTask() {
+ return task;
+ }
+
+ public void setTask(Task task) {
+ this.task = task;
+ }
+
+ public Deadline getDeadline() {
+ return deadline;
+ }
+
+ public void setDeadline(Deadline deadline) {
+ this.deadline = deadline;
+ }
+
+ public EntityManager getEntityManager() {
+ return em;
+ }
+
+ public void setEntityManager(EntityManager em) {
+ this.em = em;
+ }
+
+ public EntityManager getEm() {
+ return em;
+ }
+
+ public void setEm(EntityManager em) {
+ this.em = em;
+ }
+ }
+
+ public synchronized void wait(int totalSize, int totalWait) {
+ int wait = 0;
+ int size = 0;
+
+ while ( true ) {
+ synchronized ( list ) {
+ size = list.size();
+ }
+
+ if ( size >= totalSize || wait >= totalWait ) {
+ break;
+ }
+
+ try {
+ Thread.sleep( 250 );
+ } catch( Exception e ) {
+ throw new RuntimeException( "Unable to sleep", e);
+ }
+ wait += 250;
+ }
+ }
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationBaseTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Deleted: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEscalationTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -1,223 +0,0 @@
-package org.drools.task.service;
-
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import javax.persistence.EntityManager;
-
-import org.apache.commons.collections.map.HashedMap;
-import org.drools.SystemEventListenerFactory;
-import org.drools.task.BaseTest;
-import org.drools.task.Deadline;
-import org.drools.task.Task;
-import org.drools.task.service.TaskServiceEscalationTest.MockEscalatedDeadlineHandler.Item;
-import org.drools.task.service.mina.MinaTaskClientConnector;
-import org.drools.task.service.mina.MinaTaskServer;
-import org.drools.task.service.mina.TaskMinaClientHandler;
-import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
-
-public class TaskServiceEscalationTest extends BaseTest {
- MinaTaskServer server;
- TaskClient client;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- server = new MinaTaskServer( taskService );
- Thread thread = new Thread( server );
- thread.start();
- Thread.sleep( 500 );
-
- client = new TaskClient(new MinaTaskClientConnector("client 1",
- new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 9123);
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- client.disconnect();
- server.stop();
- }
-
- public void testDummy() {
- assertTrue( true );
- }
-
- public void FIXME_testUnescalatedDeadlines() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users",
- users );
- vars.put( "groups",
- groups );
-
- MockEscalatedDeadlineHandler handler = new MockEscalatedDeadlineHandler();
- taskService.setEscalatedDeadlineHandler( handler );
-
- //Reader reader;
- Reader reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryData_UnescalatedDeadlines.mvel" ) );
- List<Task> tasks = (List<Task>) eval( reader,
- vars );
- long now = ((Date)vars.get( "now" )).getTime();
-
- for ( Task task : tasks ) {
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- client.addTask( task, null, addTaskResponseHandler );
- addTaskResponseHandler.waitTillDone( 3000 );
- }
-
- handler.wait( 3, 30000 );
-
- assertEquals( 3, handler.list.size() );
-
- Item item0 = handler.list.get( 0 );
- assertEquals( now + 20000,
- item0.getDeadline().getDate().getTime() );
-
- Item item1 = handler.list.get( 1 );
- assertEquals( now + 22000,
- item1.getDeadline().getDate().getTime() );
-
- Item item2 = handler.list.get( 2 );
- assertEquals( now + 24000,
- item2.getDeadline().getDate().getTime() );
- }
-
- public void FIXME_testUnescalatedDeadlinesOnStartup() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users",
- users );
- vars.put( "groups",
- groups );
-
- //Reader reader;
- Reader reader = new InputStreamReader( getClass().getResourceAsStream( "../QueryData_UnescalatedDeadlines.mvel" ) );
- List<Task> tasks = (List<Task>) eval( reader,
- vars );
- long now = ((Date)vars.get( "now" )).getTime();
-
- EntityManager em = emf.createEntityManager();
- em.getTransaction().begin();
- for ( Task task : tasks ) {
- // for this one we put the task in directly;
- em.persist( task );
- }
- em.getTransaction().commit();
-
- // now create a new service, to see if it initiates from the DB correctly
- MockEscalatedDeadlineHandler handler = new MockEscalatedDeadlineHandler();
- TaskService local = new TaskService(emf, SystemEventListenerFactory.getSystemEventListener(), handler);
-
- handler.wait( 3, 30000 );
-
- assertEquals( 3, handler.list.size() );
-
- Item item0 = handler.list.get( 0 );
- assertEquals( item0.getDeadline().getDate().getTime(),
- now + 20000 );
-
- Item item1 = handler.list.get( 1 );
- assertEquals( item1.getDeadline().getDate().getTime(),
- now + 22000 );
-
- Item item2 = handler.list.get( 2 );
- assertEquals( item2.getDeadline().getDate().getTime(),
- now + 24000 );
- }
-
- public static class MockEscalatedDeadlineHandler
- implements
- EscalatedDeadlineHandler {
-
- List<Item> list = new ArrayList<Item>();
-
- TaskService taskService;
-
- public void executeEscalatedDeadline(Task task,
- Deadline deadline,
- EntityManager em,
- TaskService taskService) {
- list.add( new Item( task,
- deadline,
- em,
- taskService ) );
- }
-
- public List<Item> getList() {
- return this.list;
- }
-
- public static class Item {
- Task task;
- Deadline deadline;
- EntityManager em;
-
- public Item(Task task,
- Deadline deadline,
- EntityManager em,
- TaskService taskService) {
- this.deadline = deadline;
- this.em = em;
- this.task = task;
- }
-
- public Task getTask() {
- return task;
- }
-
- public void setTask(Task task) {
- this.task = task;
- }
-
- public Deadline getDeadline() {
- return deadline;
- }
-
- public void setDeadline(Deadline deadline) {
- this.deadline = deadline;
- }
-
- public EntityManager getEntityManager() {
- return em;
- }
-
- public void setEntityManager(EntityManager em) {
- this.em = em;
- }
-
- public EntityManager getEm() {
- return em;
- }
-
- public void setEm(EntityManager em) {
- this.em = em;
- }
- }
-
- public synchronized void wait(int totalSize, int totalWait) {
- int wait = 0;
- int size = 0;
-
- while ( true ) {
- synchronized ( list ) {
- size = list.size();
- }
-
- if ( size >= totalSize || wait >= totalWait ) {
- break;
- }
-
- try {
- Thread.sleep( 250 );
- } catch( Exception e ) {
- throw new RuntimeException( "Unable to sleep", e);
- }
- wait += 250;
- }
- }
- }
-
-}
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingBaseTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingBaseTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingBaseTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,68 @@
+package org.drools.task.service;
+
+import java.io.StringReader;
+import java.util.Date;
+import java.util.Map;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.drools.eventmessaging.EventKey;
+import org.drools.eventmessaging.Payload;
+import org.drools.task.BaseTest;
+import org.drools.task.Status;
+import org.drools.task.Task;
+import org.drools.task.event.TaskClaimedEvent;
+import org.drools.task.event.TaskEventKey;
+import org.drools.task.event.TaskUserEvent;
+import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingEventResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
+
+public abstract class TaskServiceEventMessagingBaseTest extends BaseTest {
+
+ private TaskClient client;
+
+ public void testClaimEvent() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // A Task with multiple potential owners moves to "Ready" state until someone claims it.
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready , task1.getTaskData().getStatus() );
+
+ EventKey key = new TaskEventKey(TaskClaimedEvent.class, taskId );
+ BlockingEventResponseHandler handler = new BlockingEventResponseHandler();
+ client.registerForEvent( key, true, handler );
+ Thread.sleep( 3000 );
+
+ taskSession.taskOperation( Operation.Claim, taskId, users.get( "darth" ).getId(), null, null );
+ handler.waitTillDone( 5000 );
+
+ Payload payload = handler.getPayload();
+ TaskUserEvent event = ( TaskUserEvent ) payload.get();
+ assertNotNull( event );
+ }
+
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
+ public TaskClient getClient() {
+ return client;
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingBaseTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Deleted: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceEventMessagingTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -1,96 +0,0 @@
-package org.drools.task.service;
-
-import java.io.StringReader;
-import java.util.Date;
-import java.util.Map;
-
-import org.apache.commons.collections.map.HashedMap;
-import org.drools.SystemEventListenerFactory;
-import org.drools.eventmessaging.EventKey;
-import org.drools.eventmessaging.Payload;
-import org.drools.task.BaseTest;
-import org.drools.task.MockUserInfo;
-import org.drools.task.Status;
-import org.drools.task.Task;
-import org.drools.task.event.TaskClaimedEvent;
-import org.drools.task.event.TaskEventKey;
-import org.drools.task.event.TaskUserEvent;
-import org.drools.task.service.mina.MinaTaskClientConnector;
-import org.drools.task.service.mina.MinaTaskServer;
-import org.drools.task.service.mina.TaskMinaClientHandler;
-import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingEventResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
-
-public class TaskServiceEventMessagingTest extends BaseTest {
- MinaTaskServer server;
- TaskClient client;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- server = new MinaTaskServer( taskService );
- Thread thread = new Thread( server );
- thread.start();
- Thread.sleep( 500 );
-
- client = new TaskClient(new MinaTaskClientConnector("client 1",
- new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 9123);
-
- MockUserInfo userInfo = new MockUserInfo();
- userInfo.getEmails().put( users.get( "tony" ),
- "tony at domain.com" );
- userInfo.getEmails().put( users.get( "steve" ),
- "steve at domain.com" );
-
- userInfo.getLanguages().put( users.get( "tony" ),
- "en-UK" );
- userInfo.getLanguages().put( users.get( "steve" ),
- "en-UK" );
- taskService.setUserinfo( userInfo );
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- client.disconnect();
- server.stop();
- }
-
- public void testClaimEvent() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // A Task with multiple potential owners moves to "Ready" state until someone claims it.
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready , task1.getTaskData().getStatus() );
-
- EventKey key = new TaskEventKey(TaskClaimedEvent.class, taskId );
- BlockingEventResponseHandler handler = new BlockingEventResponseHandler();
- client.registerForEvent( key, true, handler );
- Thread.sleep( 3000 );
-
- taskSession.taskOperation( Operation.Claim, taskId, users.get( "darth" ).getId(), null, null );
- handler.waitTillDone( 5000 );
-
- Payload payload = handler.getPayload();
- TaskUserEvent event = ( TaskUserEvent ) payload.get();
- assertNotNull( event );
- }
-
-}
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleBaseTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleBaseTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleBaseTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,1407 @@
+package org.drools.task.service;
+
+import java.io.StringReader;
+import java.util.Date;
+import java.util.Map;
+
+import org.apache.commons.collections.map.HashedMap;
+import org.drools.task.AccessType;
+import org.drools.task.BaseTest;
+import org.drools.task.Content;
+import org.drools.task.Status;
+import org.drools.task.Task;
+import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
+import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
+
+public abstract class TaskServiceLifeCycleBaseTest extends BaseTest {
+
+ private static final int DEFAULT_WAIT_TIME = 5000;
+
+ private TaskClient client;
+
+ public void testNewTaskWithNoPotentialOwners() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Task should remain in Created state with no actual owner
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( task1.getTaskData().getStatus(), Status.Created );
+ assertNull( task1.getTaskData().getActualOwner() );
+ }
+
+ public void testNewTaskWithSinglePotentialOwner() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Task should be assigned to the single potential owner and state set to Reserved
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
+ }
+
+ public void testNewTaskWithContent() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ ContentData data = new ContentData();
+ data.setAccessType(AccessType.Inline);
+ data.setType("type");
+ data.setContent("content".getBytes());
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, data, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Task should be assigned to the single potential owner and state set to Reserved
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( AccessType.Inline, task1.getTaskData().getDocumentAccessType() );
+ assertEquals( "type", task1.getTaskData().getDocumentType() );
+ long contentId = task1.getTaskData().getDocumentContentId();
+ assertTrue( contentId != -1 );
+
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent(contentId, getContentResponseHandler);
+ Content content = getContentResponseHandler.getContent();
+ assertEquals("content", new String(content.getContent()));
+ }
+
+ public void testNewTaskWithLargeContent() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ ContentData data = new ContentData();
+ data.setAccessType(AccessType.Inline);
+ data.setType("type");
+ String largeContent = "";
+ for (int i = 0; i < 1000; i++) {
+ largeContent += i + "xxxxxxxxx";
+ }
+ data.setContent(largeContent.getBytes());
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, data, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Task should be assigned to the single potential owner and state set to Reserved
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( AccessType.Inline, task1.getTaskData().getDocumentAccessType() );
+ assertEquals( "type", task1.getTaskData().getDocumentType() );
+ long contentId = task1.getTaskData().getDocumentContentId();
+ assertTrue( contentId != -1 );
+
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent(contentId, getContentResponseHandler);
+ Content content = getContentResponseHandler.getContent();
+ System.out.println(new String(content.getContent()));
+ assertEquals(largeContent, new String(content.getContent()));
+ }
+
+ public void testClaimWithMultiplePotentialOwners() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // A Task with multiple potential owners moves to "Ready" state until someone claims it.
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready , task1.getTaskData().getStatus() );
+
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testStartFromReadyStateWithPotentialOwner() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // A Task with multiple potential owners moves to "Ready" state until someone claims it.
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready , task1.getTaskData().getStatus() );
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testStartFromReadyStateWithIncorrectPotentialOwner() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // A Task with multiple potential owners moves to "Ready" state until someone claims it.
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready , task1.getTaskData().getStatus() );
+
+ // State should not change as user isn't potential owner
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "tony" ).getId(), responseHandler );
+
+ PermissionDeniedException denied = null;
+ try {
+ responseHandler.waitTillDone( DEFAULT_WAIT_TIME );
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+
+ assertNotNull("Should get permissed denied exception", denied);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready, task2.getTaskData().getStatus() );
+ assertNull( task2.getTaskData().getActualOwner() );
+ }
+
+ public void testStartFromReserved() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Task should be assigned to the single potential owner and state set to Reserved
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus());
+ assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
+
+ // Should change to InProgress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "bobba" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
+ }
+
+ public void testStartFromReservedWithIncorrectUser() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Task should be assigned to the single potential owner and state set to Reserved
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved , task1.getTaskData().getStatus());
+ assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
+
+ // Should change not change
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "tony" ).getId(), responseHandler );
+
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch (PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
+ }
+
+ public void testStop() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Now Stop
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.stop( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testStopWithIncorrectUser() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Should not stop
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.stop( taskId, users.get( "bobba" ).getId(), responseHandler );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testReleaseFromInprogress() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is Released
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.release( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready, task2.getTaskData().getStatus() );
+ assertNull( task2.getTaskData().getActualOwner() );
+ }
+
+ public void testReleaseFromReserved() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is Released
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.release( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready, task2.getTaskData().getStatus() );
+ assertNull( task2.getTaskData().getActualOwner() );
+ }
+
+ public void testReleaseWithIncorrectUser() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is not changed
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.release( taskId, users.get( "bobba" ).getId(), responseHandler );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+ }
+
+ public void testSuspendFromReady() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Ready
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready, task1.getTaskData().getStatus() );
+ assertNull( task1.getTaskData().getActualOwner() );
+
+ // Check is Suspended
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
+ assertEquals( Status.Ready, task2.getTaskData().getPreviousStatus() );
+ assertNull( task1.getTaskData().getActualOwner() );
+ }
+
+ public void testSuspendFromReserved() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Reserved
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is Suspended
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task2.getTaskData().getPreviousStatus() );
+ assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testSuspendFromReservedWithIncorrectUser() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Reserved
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is not changed
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.suspend( taskId, users.get( "bobba" ).getId(), responseHandler );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+ }
+
+ public void testResumeFromReady() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Ready
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready, task1.getTaskData().getStatus() );
+ assertNull( task1.getTaskData().getActualOwner() );
+
+ // Check is Suspended
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
+ assertEquals( Status.Ready, task2.getTaskData().getPreviousStatus() );
+ assertNull( task1.getTaskData().getActualOwner() );
+
+ // Check is Resumed
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.resume( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task3 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Ready, task3.getTaskData().getStatus() );
+ assertEquals( Status.Suspended, task3.getTaskData().getPreviousStatus() );
+ assertNull( task3.getTaskData().getActualOwner() );
+ }
+
+ public void testResumeFromReserved() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Reserved
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is suspended
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task2.getTaskData().getPreviousStatus() );
+ assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+
+ // Check is Resumed
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.resume( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task3 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task3.getTaskData().getStatus() );
+ assertEquals( Status.Suspended, task3.getTaskData().getPreviousStatus() );
+ assertEquals( users.get( "darth" ), task3.getTaskData().getActualOwner() );
+ }
+
+ public void testResumeFromReservedWithIncorrectUser() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Reserved
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check not changed
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.suspend( taskId, users.get( "bobba" ).getId(), responseHandler );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+ }
+
+ public void testSkipFromReady() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { skipable = true} ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ] }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Complete
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.skip( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Obsolete, task1.getTaskData().getStatus() );
+ assertNull( task1.getTaskData().getActualOwner() );
+ }
+
+ public void testSkipFromReserved() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { skipable = true} ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ] }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ // Check is Complete
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.skip( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Obsolete, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+ }
+
+ public void testDelegateFromReady() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Delegated
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.delegate( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
+ assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
+ assertEquals( users.get( "tony" ), task2.getTaskData().getActualOwner() );
+ assertEquals( Status.Ready, task2.getTaskData().getStatus() );
+ }
+
+ public void testDelegateFromReserved() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Claim and Reserved
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is Delegated
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.delegate( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
+ assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
+ assertEquals( users.get( "tony" ), task2.getTaskData().getActualOwner() );
+ assertEquals( Status.Ready, task2.getTaskData().getStatus() );
+ }
+
+ public void testDelegateFromReservedWithIncorrectUser() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Claim and Reserved
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check was not delegated
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.delegate( taskId, users.get( "bobba" ).getId(), users.get( "tony" ).getId(), responseHandler );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
+ assertFalse( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
+ }
+
+ public void testForwardFromReady() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Check is Forwarded
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.forward( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertFalse( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
+ assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
+ assertNull( task2.getTaskData().getActualOwner() );
+ assertEquals( Status.Ready, task2.getTaskData().getStatus() );
+ }
+
+ public void testForwardFromReserved() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Claim and Reserved
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is Delegated
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.forward( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertFalse( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
+ assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
+ assertNull( task2.getTaskData().getActualOwner() );
+ assertEquals( Status.Ready, task2.getTaskData().getStatus() );
+ }
+
+ public void testForwardFromReservedWithIncorrectUser() throws Exception {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Claim and Reserved
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check was not delegated
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.forward( taskId, users.get( "bobba" ).getId(), users.get( "tony" ).getId(), responseHandler );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
+ assertFalse( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
+ }
+
+ public void testComplete() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is Complete
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.complete( taskId, users.get( "darth" ).getId(), null, responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Completed, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testCompleteWithIncorrectUser() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Should not complete as wrong user
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testCompleteWithContent() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ ContentData data = new ContentData();
+ data.setAccessType(AccessType.Inline);
+ data.setType("type");
+ data.setContent("content".getBytes());
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.complete( taskId, users.get( "darth" ).getId(), data, responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( AccessType.Inline, task2.getTaskData().getOutputAccessType() );
+ assertEquals( "type", task2.getTaskData().getOutputType() );
+ long contentId = task2.getTaskData().getOutputContentId();
+ assertTrue( contentId != -1 );
+
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent(contentId, getContentResponseHandler);
+ Content content = getContentResponseHandler.getContent();
+ assertEquals("content", new String(content.getContent()));
+ }
+
+ public void testFail() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Check is Failed
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.fail( taskId, users.get( "darth" ).getId(), null, responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Failed, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testFailWithIncorrectUser() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ // Should not fail as wrong user
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.fail( taskId, users.get( "bobba" ).getId(), null, responseHandler );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
+ }
+
+ public void testFailWithContent() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ // One potential owner, should go straight to state Reserved
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, null, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Go straight from Ready to Inprogress
+ BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
+ client.start( taskId, users.get( "darth" ).getId(), responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
+ assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
+
+ FaultData data = new FaultData();
+ data.setAccessType(AccessType.Inline);
+ data.setType("type");
+ data.setFaultName("faultName");
+ data.setContent("content".getBytes());
+ responseHandler = new BlockingTaskOperationResponseHandler();
+ client.fail( taskId, users.get( "darth" ).getId(), data, responseHandler );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+
+ getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task2 = getTaskResponseHandler.getTask();
+ assertEquals( Status.Failed, task2.getTaskData().getStatus() );
+ assertEquals( AccessType.Inline, task2.getTaskData().getFaultAccessType() );
+ assertEquals( "type", task2.getTaskData().getFaultType() );
+ assertEquals( "faultName", task2.getTaskData().getFaultName() );
+ long contentId = task2.getTaskData().getFaultContentId();
+ assertTrue( contentId != -1 );
+
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent(contentId, getContentResponseHandler);
+ Content content = getContentResponseHandler.getContent();
+ assertEquals("content", new String(content.getContent()));
+ }
+
+ public void setClient(TaskClient client) {
+ this.client = client;
+ }
+
+ public TaskClient getClient() {
+ return client;
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleBaseTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Deleted: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -1,1421 +0,0 @@
-package org.drools.task.service;
-
-import java.io.StringReader;
-import java.util.Date;
-import java.util.Map;
-
-import org.apache.commons.collections.map.HashedMap;
-import org.drools.SystemEventListenerFactory;
-import org.drools.task.AccessType;
-import org.drools.task.BaseTest;
-import org.drools.task.Content;
-import org.drools.task.Status;
-import org.drools.task.Task;
-import org.drools.task.service.mina.MinaTaskClientConnector;
-import org.drools.task.service.mina.MinaTaskServer;
-import org.drools.task.service.mina.TaskMinaClientHandler;
-import org.drools.task.service.responsehandlers.BlockingAddTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
-import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
-
-public class TaskServiceLifeCycleTest extends BaseTest {
- MinaTaskServer server;
- TaskClient client;
- private static final int DEFAULT_WAIT_TIME = 5000;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- server = new MinaTaskServer( taskService );
- Thread thread = new Thread( server );
- thread.start();
- Thread.sleep( 500 );
-
- client = new TaskClient(new MinaTaskClientConnector("client 1",
- new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 9123);
- }
-
- protected void tearDown() throws Exception {
- super.tearDown();
- client.disconnect();
- server.stop();
- }
-
- public void testNewTaskWithNoPotentialOwners() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Task should remain in Created state with no actual owner
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( task1.getTaskData().getStatus(), Status.Created );
- assertNull( task1.getTaskData().getActualOwner() );
- }
-
- public void testNewTaskWithSinglePotentialOwner() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Task should be assigned to the single potential owner and state set to Reserved
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
- }
-
- public void testNewTaskWithContent() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- ContentData data = new ContentData();
- data.setAccessType(AccessType.Inline);
- data.setType("type");
- data.setContent("content".getBytes());
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, data, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Task should be assigned to the single potential owner and state set to Reserved
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( AccessType.Inline, task1.getTaskData().getDocumentAccessType() );
- assertEquals( "type", task1.getTaskData().getDocumentType() );
- long contentId = task1.getTaskData().getDocumentContentId();
- assertTrue( contentId != -1 );
-
- BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
- client.getContent(contentId, getContentResponseHandler);
- Content content = getContentResponseHandler.getContent();
- assertEquals("content", new String(content.getContent()));
- }
-
- public void testNewTaskWithLargeContent() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- ContentData data = new ContentData();
- data.setAccessType(AccessType.Inline);
- data.setType("type");
- String largeContent = "";
- for (int i = 0; i < 1000; i++) {
- largeContent += i + "xxxxxxxxx";
- }
- data.setContent(largeContent.getBytes());
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, data, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Task should be assigned to the single potential owner and state set to Reserved
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( AccessType.Inline, task1.getTaskData().getDocumentAccessType() );
- assertEquals( "type", task1.getTaskData().getDocumentType() );
- long contentId = task1.getTaskData().getDocumentContentId();
- assertTrue( contentId != -1 );
-
- BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
- client.getContent(contentId, getContentResponseHandler);
- Content content = getContentResponseHandler.getContent();
- System.out.println(new String(content.getContent()));
- assertEquals(largeContent, new String(content.getContent()));
- }
-
- public void testClaimWithMultiplePotentialOwners() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // A Task with multiple potential owners moves to "Ready" state until someone claims it.
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready , task1.getTaskData().getStatus() );
-
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- }
-
- public void testStartFromReadyStateWithPotentialOwner() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // A Task with multiple potential owners moves to "Ready" state until someone claims it.
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready , task1.getTaskData().getStatus() );
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- }
-
- public void testStartFromReadyStateWithIncorrectPotentialOwner() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // A Task with multiple potential owners moves to "Ready" state until someone claims it.
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready , task1.getTaskData().getStatus() );
-
- // State should not change as user isn't potential owner
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "tony" ).getId(), responseHandler );
-
- PermissionDeniedException denied = null;
- try {
- responseHandler.waitTillDone( DEFAULT_WAIT_TIME );
- } catch(PermissionDeniedException e) {
- denied = e;
- }
-
- assertNotNull("Should get permissed denied exception", denied);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready, task2.getTaskData().getStatus() );
- assertNull( task2.getTaskData().getActualOwner() );
- }
-
- public void testStartFromReserved() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Task should be assigned to the single potential owner and state set to Reserved
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus());
- assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
-
- // Should change to InProgress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "bobba" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
- assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
- }
-
- public void testStartFromReservedWithIncorrectUser() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Task should be assigned to the single potential owner and state set to Reserved
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved , task1.getTaskData().getStatus());
- assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
-
- // Should change not change
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "tony" ).getId(), responseHandler );
-
- PermissionDeniedException denied = null;
- try{
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch (PermissionDeniedException e) {
- denied = e;
- }
- assertNotNull("Should get permissed denied exception", denied);
-
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
- assertEquals( users.get( "bobba" ), task1.getTaskData().getActualOwner() );
- }
-
- public void testStop() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Now Stop
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.stop( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- }
-
- public void testStopWithIncorrectUser() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Should not stop
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.stop( taskId, users.get( "bobba" ).getId(), responseHandler );
- PermissionDeniedException denied = null;
- try{
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch(PermissionDeniedException e) {
- denied = e;
- }
- assertNotNull("Should get permissed denied exception", denied);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- }
-
- public void testReleaseFromInprogress() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is Released
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.release( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready, task2.getTaskData().getStatus() );
- assertNull( task2.getTaskData().getActualOwner() );
- }
-
- public void testReleaseFromReserved() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is Released
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.release( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready, task2.getTaskData().getStatus() );
- assertNull( task2.getTaskData().getActualOwner() );
- }
-
- public void testReleaseWithIncorrectUser() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is not changed
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.release( taskId, users.get( "bobba" ).getId(), responseHandler );
- PermissionDeniedException denied = null;
- try{
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch(PermissionDeniedException e) {
- denied = e;
- }
- assertNotNull("Should get permissed denied exception", denied);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
- }
-
- public void testSuspendFromReady() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Check is Ready
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready, task1.getTaskData().getStatus() );
- assertNull( task1.getTaskData().getActualOwner() );
-
- // Check is Suspended
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
- assertEquals( Status.Ready, task2.getTaskData().getPreviousStatus() );
- assertNull( task1.getTaskData().getActualOwner() );
- }
-
- public void testSuspendFromReserved() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Check is Reserved
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is Suspended
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task2.getTaskData().getPreviousStatus() );
- assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- }
-
- public void testSuspendFromReservedWithIncorrectUser() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Check is Reserved
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is not changed
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.suspend( taskId, users.get( "bobba" ).getId(), responseHandler );
- PermissionDeniedException denied = null;
- try{
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch(PermissionDeniedException e) {
- denied = e;
- }
- assertNotNull("Should get permissed denied exception", denied);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
- }
-
- public void testResumeFromReady() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Check is Ready
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready, task1.getTaskData().getStatus() );
- assertNull( task1.getTaskData().getActualOwner() );
-
- // Check is Suspended
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
- assertEquals( Status.Ready, task2.getTaskData().getPreviousStatus() );
- assertNull( task1.getTaskData().getActualOwner() );
-
- // Check is Resumed
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.resume( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task3 = getTaskResponseHandler.getTask();
- assertEquals( Status.Ready, task3.getTaskData().getStatus() );
- assertEquals( Status.Suspended, task3.getTaskData().getPreviousStatus() );
- assertNull( task3.getTaskData().getActualOwner() );
- }
-
- public void testResumeFromReserved() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Check is Reserved
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is suspended
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task2.getTaskData().getPreviousStatus() );
- assertEquals( Status.Suspended, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
-
- // Check is Resumed
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.resume( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task3 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task3.getTaskData().getStatus() );
- assertEquals( Status.Suspended, task3.getTaskData().getPreviousStatus() );
- assertEquals( users.get( "darth" ), task3.getTaskData().getActualOwner() );
- }
-
- public void testResumeFromReservedWithIncorrectUser() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Check is Reserved
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check not changed
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.suspend( taskId, users.get( "bobba" ).getId(), responseHandler );
- PermissionDeniedException denied = null;
- try{
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch(PermissionDeniedException e) {
- denied = e;
- }
- assertNotNull("Should get permissed denied exception", denied);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
- }
-
- public void testSkipFromReady() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { skipable = true} ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ] }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Check is Complete
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.skip( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Obsolete, task1.getTaskData().getStatus() );
- assertNull( task1.getTaskData().getActualOwner() );
- }
-
- public void testSkipFromReserved() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { skipable = true} ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ] }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- // Check is Complete
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.skip( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Obsolete, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
- }
-
- public void testDelegateFromReady() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Check is Delegated
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.delegate( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
- assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
- assertEquals( users.get( "tony" ), task2.getTaskData().getActualOwner() );
- assertEquals( Status.Ready, task2.getTaskData().getStatus() );
- }
-
- public void testDelegateFromReserved() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Claim and Reserved
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is Delegated
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.delegate( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
- assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
- assertEquals( users.get( "tony" ), task2.getTaskData().getActualOwner() );
- assertEquals( Status.Ready, task2.getTaskData().getStatus() );
- }
-
- public void testDelegateFromReservedWithIncorrectUser() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Claim and Reserved
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check was not delegated
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.delegate( taskId, users.get( "bobba" ).getId(), users.get( "tony" ).getId(), responseHandler );
- PermissionDeniedException denied = null;
- try{
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch(PermissionDeniedException e) {
- denied = e;
- }
- assertNotNull("Should get permissed denied exception", denied);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
- assertFalse( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
- }
-
- public void testForwardFromReady() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Check is Forwarded
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.forward( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertFalse( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
- assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
- assertNull( task2.getTaskData().getActualOwner() );
- assertEquals( Status.Ready, task2.getTaskData().getStatus() );
- }
-
- public void testForwardFromReserved() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Claim and Reserved
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is Delegated
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.forward( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertFalse( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
- assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
- assertNull( task2.getTaskData().getActualOwner() );
- assertEquals( Status.Ready, task2.getTaskData().getStatus() );
- }
-
- public void testForwardFromReservedWithIncorrectUser() throws Exception {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Claim and Reserved
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.Reserved, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check was not delegated
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.forward( taskId, users.get( "bobba" ).getId(), users.get( "tony" ).getId(), responseHandler );
- PermissionDeniedException denied = null;
- try{
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch(PermissionDeniedException e) {
- denied = e;
- }
- assertNotNull("Should get permissed denied exception", denied);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertTrue( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "darth" ) ) );
- assertFalse( task2.getPeopleAssignments().getPotentialOwners().contains( users.get( "tony" ) ) );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- assertEquals( Status.Reserved, task2.getTaskData().getStatus() );
- }
-
- public void testComplete() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is Complete
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId, users.get( "darth" ).getId(), null, responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Completed, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- }
-
- public void testCompleteWithIncorrectUser() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Should not complete as wrong user
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
- PermissionDeniedException denied = null;
- try{
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch(PermissionDeniedException e) {
- denied = e;
- }
- assertNotNull("Should get permissed denied exception", denied);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- }
-
- public void testCompleteWithContent() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- ContentData data = new ContentData();
- data.setAccessType(AccessType.Inline);
- data.setType("type");
- data.setContent("content".getBytes());
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.complete( taskId, users.get( "darth" ).getId(), data, responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( AccessType.Inline, task2.getTaskData().getOutputAccessType() );
- assertEquals( "type", task2.getTaskData().getOutputType() );
- long contentId = task2.getTaskData().getOutputContentId();
- assertTrue( contentId != -1 );
-
- BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
- client.getContent(contentId, getContentResponseHandler);
- Content content = getContentResponseHandler.getContent();
- assertEquals("content", new String(content.getContent()));
- }
-
- public void testFail() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Check is Failed
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.fail( taskId, users.get( "darth" ).getId(), null, responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Failed, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- }
-
- public void testFailWithIncorrectUser() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- // Should not fail as wrong user
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.fail( taskId, users.get( "bobba" ).getId(), null, responseHandler );
- PermissionDeniedException denied = null;
- try{
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
- } catch(PermissionDeniedException e) {
- denied = e;
- }
- assertNotNull("Should get permissed denied exception", denied);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task2.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task2.getTaskData().getActualOwner() );
- }
-
- public void testFailWithContent() {
- Map vars = new HashedMap();
- vars.put( "users", users );
- vars.put( "groups", groups );
- vars.put( "now", new Date() );
-
- // One potential owner, should go straight to state Reserved
- String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
- str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ], users['darth'] ], }),";
- str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
-
- BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
- Task task = ( Task ) eval( new StringReader( str ), vars );
- client.addTask( task, null, addTaskResponseHandler );
-
- long taskId = addTaskResponseHandler.getTaskId();
-
- // Go straight from Ready to Inprogress
- BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
- client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task1 = getTaskResponseHandler.getTask();
- assertEquals( Status.InProgress, task1.getTaskData().getStatus() );
- assertEquals( users.get( "darth" ), task1.getTaskData().getActualOwner() );
-
- FaultData data = new FaultData();
- data.setAccessType(AccessType.Inline);
- data.setType("type");
- data.setFaultName("faultName");
- data.setContent("content".getBytes());
- responseHandler = new BlockingTaskOperationResponseHandler();
- client.fail( taskId, users.get( "darth" ).getId(), data, responseHandler );
- responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
-
- getTaskResponseHandler = new BlockingGetTaskResponseHandler();
- client.getTask( taskId, getTaskResponseHandler );
- Task task2 = getTaskResponseHandler.getTask();
- assertEquals( Status.Failed, task2.getTaskData().getStatus() );
- assertEquals( AccessType.Inline, task2.getTaskData().getFaultAccessType() );
- assertEquals( "type", task2.getTaskData().getFaultType() );
- assertEquals( "faultName", task2.getTaskData().getFaultName() );
- long contentId = task2.getTaskData().getFaultContentId();
- assertTrue( contentId != -1 );
-
- BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
- client.getContent(contentId, getContentResponseHandler);
- Content content = getContentResponseHandler.getContent();
- assertEquals("content", new String(content.getContent()));
- }
-
-}
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/IcalHornetQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/IcalHornetQTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/IcalHornetQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,44 @@
+package org.drools.task.service.hornetq;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.IcalBaseTest;
+import org.drools.task.service.TaskClient;
+import org.drools.util.ChainedProperties;
+import org.drools.util.ClassLoaderUtil;
+import org.subethamail.wiser.Wiser;
+
+public class IcalHornetQTest extends IcalBaseTest {
+
+ private HornetQTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ ChainedProperties props = new ChainedProperties("process.email.conf", ClassLoaderUtil.getClassLoader(null, getClass(), false ));
+ setEmailHost(props.getProperty("host", "locahost"));
+ setEmailPort(props.getProperty("port", "2345"));
+
+ server = new HornetQTaskServer(taskService, 5446);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new HornetQTaskClientConnector("client 1",
+ new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 5446);
+
+ setWiser(new Wiser());
+ getWiser().setHostname(getEmailHost());
+ getWiser().setPort(Integer.parseInt(getEmailPort()));
+ getWiser().start();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ getWiser().stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/IcalHornetQTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskLifeCycleHornetQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskLifeCycleHornetQTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskLifeCycleHornetQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,29 @@
+package org.drools.task.service.hornetq;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskLifeCycleBaseTest;
+
+public class TaskLifeCycleHornetQTest extends TaskLifeCycleBaseTest {
+
+ private HornetQTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new HornetQTaskServer(taskService, 5446);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+ setClient(new TaskClient(new HornetQTaskClientConnector("client 1",
+ new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 5446);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskLifeCycleHornetQTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceCommentsAndAttachmentsHornetQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceCommentsAndAttachmentsHornetQTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceCommentsAndAttachmentsHornetQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -6,23 +6,24 @@
public class TaskServiceCommentsAndAttachmentsHornetQTest extends TaskServiceCommentsAndAttachmentsBaseTest {
- HornetQTaskServer server;
+ private HornetQTaskServer server;
@Override
protected void setUp() throws Exception {
super.setUp();
- server = new HornetQTaskServer( taskService, 5446);
- Thread thread = new Thread( server );
+ server = new HornetQTaskServer(taskService, 5446);
+ Thread thread = new Thread(server);
thread.start();
- Thread.sleep( 500 );
- client = new TaskClient(new HornetQTaskClientConnector("client 1",
- new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 5446);
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new HornetQTaskClientConnector("client 1",
+ new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 5446);
}
protected void tearDown() throws Exception {
super.tearDown();
- client.disconnect();
+ getClient().disconnect();
server.stop();
}
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceDeadlinesHornetQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceDeadlinesHornetQTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceDeadlinesHornetQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,47 @@
+package org.drools.task.service.hornetq;
+
+import java.util.Properties;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskServiceDeadlinesBaseTest;
+import org.subethamail.wiser.Wiser;
+
+public class TaskServiceDeadlinesHornetQTest extends TaskServiceDeadlinesBaseTest {
+
+ private HornetQTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ setConf(new Properties());
+ getConf().setProperty("mail.smtp.host", "localhost");
+ getConf().setProperty("mail.smtp.port", "2345");
+ getConf().setProperty("from", "from at domain.com");
+ getConf().setProperty("replyTo", "replyTo at domain.com");
+ getConf().setProperty("defaultLanguage", "en-UK");
+
+ server = new HornetQTaskServer(taskService, 5446);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new HornetQTaskClientConnector("client 1",
+ new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 5446);
+
+ setWiser(new Wiser());
+ getWiser().setHostname(getConf().getProperty("mail.smtp.host"));
+ getWiser().setPort(Integer.parseInt(getConf().getProperty("mail.smtp.port")));
+ getWiser().start();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ getWiser().stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceDeadlinesHornetQTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEscalationHornetQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEscalationHornetQTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEscalationHornetQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,30 @@
+package org.drools.task.service.hornetq;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskServiceEscalationBaseTest;
+
+public class TaskServiceEscalationHornetQTest extends TaskServiceEscalationBaseTest {
+
+ private HornetQTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new HornetQTaskServer(taskService, 5446);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new HornetQTaskClientConnector("client 1",
+ new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 5446);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEscalationHornetQTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEventMessagingHornetQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEventMessagingHornetQTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEventMessagingHornetQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,39 @@
+package org.drools.task.service.hornetq;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.MockUserInfo;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskServiceEventMessagingBaseTest;
+
+public class TaskServiceEventMessagingHornetQTest extends TaskServiceEventMessagingBaseTest {
+
+ private HornetQTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new HornetQTaskServer(taskService, 5446);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new HornetQTaskClientConnector("client 1",
+ new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
+
+ MockUserInfo userInfo = new MockUserInfo();
+ userInfo.getEmails().put(users.get("tony"), "tony at domain.com");
+ userInfo.getEmails().put(users.get("steve"), "steve at domain.com");
+
+ userInfo.getLanguages().put(users.get("tony"), "en-UK");
+ userInfo.getLanguages().put(users.get("steve"), "en-UK");
+ taskService.setUserinfo(userInfo);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceEventMessagingHornetQTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceHornetQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceHornetQTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceHornetQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -6,7 +6,7 @@
public class TaskServiceHornetQTest extends TaskServiceBaseTest {
- HornetQTaskServer server;
+ private HornetQTaskServer server;
@Override
protected void setUp() throws Exception {
@@ -15,14 +15,14 @@
Thread thread = new Thread( server );
thread.start();
Thread.sleep( 500 );
- client = new TaskClient(new HornetQTaskClientConnector("client 1",
- new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 5446);
+ setClient(new TaskClient(new HornetQTaskClientConnector("client 1",
+ new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 5446);
}
protected void tearDown() throws Exception {
super.tearDown();
- client.disconnect();
+ getClient().disconnect();
server.stop();
}
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceLifeCycleHornetQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceLifeCycleHornetQTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceLifeCycleHornetQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,30 @@
+package org.drools.task.service.hornetq;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskServiceLifeCycleBaseTest;
+
+public class TaskServiceLifeCycleHornetQTest extends TaskServiceLifeCycleBaseTest {
+
+ private HornetQTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new HornetQTaskServer(taskService, 5446);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new HornetQTaskClientConnector("client 1",
+ new TaskHornetQClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 5446);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/hornetq/TaskServiceLifeCycleHornetQTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/IcalMinaTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/IcalMinaTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/IcalMinaTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,47 @@
+package org.drools.task.service.mina;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.IcalBaseTest;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.mina.MinaTaskClientConnector;
+import org.drools.task.service.mina.MinaTaskServer;
+import org.drools.task.service.mina.TaskMinaClientHandler;
+import org.drools.util.ChainedProperties;
+import org.drools.util.ClassLoaderUtil;
+import org.subethamail.wiser.Wiser;
+
+public class IcalMinaTest extends IcalBaseTest {
+
+ private MinaTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ ChainedProperties props = new ChainedProperties("process.email.conf", ClassLoaderUtil.getClassLoader(null, getClass(), false) );
+ setEmailHost(props.getProperty("host", "locahost"));
+ setEmailPort(props.getProperty("port", "2345"));
+
+ server = new MinaTaskServer(taskService);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new MinaTaskClientConnector("client 1",
+ new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
+
+ setWiser(new Wiser());
+ getWiser().setHostname(getEmailHost());
+ getWiser().setPort( Integer.parseInt(getEmailPort()));
+ getWiser().start();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ getWiser().stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/IcalMinaTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskLifeCycleMinaTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskLifeCycleMinaTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskLifeCycleMinaTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,32 @@
+package org.drools.task.service.mina;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskLifeCycleBaseTest;
+import org.drools.task.service.mina.MinaTaskClientConnector;
+import org.drools.task.service.mina.MinaTaskServer;
+import org.drools.task.service.mina.TaskMinaClientHandler;
+
+public class TaskLifeCycleMinaTest extends TaskLifeCycleBaseTest {
+
+ private MinaTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new MinaTaskServer(taskService);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+ setClient(new TaskClient(new MinaTaskClientConnector("client 1",
+ new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskLifeCycleMinaTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceCommentsAndAttachmentsMinaTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceCommentsAndAttachmentsMinaTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceCommentsAndAttachmentsMinaTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -6,7 +6,7 @@
public class TaskServiceCommentsAndAttachmentsMinaTest extends TaskServiceCommentsAndAttachmentsBaseTest {
- MinaTaskServer server;
+ private MinaTaskServer server;
@Override
protected void setUp() throws Exception {
@@ -16,14 +16,14 @@
thread.start();
Thread.sleep( 500 );
- client = new TaskClient(new MinaTaskClientConnector("client 1",
- new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 9123);
+ setClient(new TaskClient(new MinaTaskClientConnector("client 1",
+ new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
}
protected void tearDown() throws Exception {
super.tearDown();
- client.disconnect();
+ getClient().disconnect();
server.stop();
}
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceDeadlinesMinaQTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceDeadlinesMinaQTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceDeadlinesMinaQTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,50 @@
+package org.drools.task.service.mina;
+
+import java.util.Properties;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskServiceDeadlinesBaseTest;
+import org.drools.task.service.mina.MinaTaskClientConnector;
+import org.drools.task.service.mina.MinaTaskServer;
+import org.drools.task.service.mina.TaskMinaClientHandler;
+import org.subethamail.wiser.Wiser;
+
+public class TaskServiceDeadlinesMinaQTest extends TaskServiceDeadlinesBaseTest {
+
+ private MinaTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ setConf(new Properties());
+ getConf().setProperty("mail.smtp.host", "localhost");
+ getConf().setProperty("mail.smtp.port", "2345");
+ getConf().setProperty("from", "from at domain.com");
+ getConf().setProperty("replyTo", "replyTo at domain.com");
+ getConf().setProperty("defaultLanguage", "en-UK");
+
+ server = new MinaTaskServer(taskService);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new MinaTaskClientConnector("client 1",
+ new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
+
+ setWiser(new Wiser());
+ getWiser().setHostname(getConf().getProperty("mail.smtp.host"));
+ getWiser().setPort(Integer.parseInt(getConf().getProperty("mail.smtp.port")));
+ getWiser().start();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ getWiser().stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceDeadlinesMinaQTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEscalationMinaTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEscalationMinaTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEscalationMinaTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,33 @@
+package org.drools.task.service.mina;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskServiceEscalationBaseTest;
+import org.drools.task.service.mina.MinaTaskClientConnector;
+import org.drools.task.service.mina.MinaTaskServer;
+import org.drools.task.service.mina.TaskMinaClientHandler;
+
+public class TaskServiceEscalationMinaTest extends TaskServiceEscalationBaseTest {
+
+ private MinaTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new MinaTaskServer(taskService);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new MinaTaskClientConnector("client 1",
+ new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEscalationMinaTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEventMessagingMinaTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEventMessagingMinaTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEventMessagingMinaTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,42 @@
+package org.drools.task.service.mina;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.MockUserInfo;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskServiceEventMessagingBaseTest;
+import org.drools.task.service.mina.MinaTaskClientConnector;
+import org.drools.task.service.mina.MinaTaskServer;
+import org.drools.task.service.mina.TaskMinaClientHandler;
+
+public class TaskServiceEventMessagingMinaTest extends TaskServiceEventMessagingBaseTest {
+
+ private MinaTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new MinaTaskServer(taskService);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new MinaTaskClientConnector("client 1",
+ new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
+
+ MockUserInfo userInfo = new MockUserInfo();
+ userInfo.getEmails().put(users.get("tony"), "tony at domain.com");
+ userInfo.getEmails().put(users.get("steve"), "steve at domain.com");
+
+ userInfo.getLanguages().put(users.get("tony"), "en-UK");
+ userInfo.getLanguages().put(users.get("steve"), "en-UK");
+ taskService.setUserinfo(userInfo);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceEventMessagingMinaTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Added: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceLifeCycleMinaTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceLifeCycleMinaTest.java (rev 0)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceLifeCycleMinaTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -0,0 +1,33 @@
+package org.drools.task.service.mina;
+
+import org.drools.SystemEventListenerFactory;
+import org.drools.task.service.TaskClient;
+import org.drools.task.service.TaskServiceLifeCycleBaseTest;
+import org.drools.task.service.mina.MinaTaskClientConnector;
+import org.drools.task.service.mina.MinaTaskServer;
+import org.drools.task.service.mina.TaskMinaClientHandler;
+
+public class TaskServiceLifeCycleMinaTest extends TaskServiceLifeCycleBaseTest {
+
+ private MinaTaskServer server;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ server = new MinaTaskServer(taskService);
+ Thread thread = new Thread(server);
+ thread.start();
+ Thread.sleep(500);
+
+ setClient(new TaskClient(new MinaTaskClientConnector("client 1",
+ new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ getClient().disconnect();
+ server.stop();
+ }
+
+}
Property changes on: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceLifeCycleMinaTest.java
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Modified: labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceMinaTest.java
===================================================================
--- labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceMinaTest.java 2010-05-19 03:22:33 UTC (rev 32946)
+++ labs/jbossrules/branches/remote_implementation_using_hornetq-lucaz/drools-process/drools-process-task/src/test/java/org/drools/task/service/mina/TaskServiceMinaTest.java 2010-05-19 03:26:46 UTC (rev 32947)
@@ -9,7 +9,7 @@
public class TaskServiceMinaTest extends TaskServiceBaseTest {
- MinaTaskServer server;
+ private MinaTaskServer server;
@Override
protected void setUp() throws Exception {
@@ -18,14 +18,14 @@
Thread thread = new Thread( server );
thread.start();
Thread.sleep( 500 );
- client = new TaskClient(new MinaTaskClientConnector("client 1",
- new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener())));
- client.connect("127.0.0.1", 9123);
+ setClient(new TaskClient(new MinaTaskClientConnector("client 1",
+ new TaskMinaClientHandler(SystemEventListenerFactory.getSystemEventListener()))));
+ getClient().connect("127.0.0.1", 9123);
}
protected void tearDown() throws Exception {
super.tearDown();
- client.disconnect();
+ getClient().disconnect();
server.stop();
}
More information about the jboss-svn-commits
mailing list