[jbpm-commits] JBoss JBPM SVN: r2669 - jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Oct 30 05:34:45 EDT 2008


Author: tom.baeyens at jboss.com
Date: 2008-10-30 05:34:45 -0400 (Thu, 30 Oct 2008)
New Revision: 2669

Modified:
   jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/MailTest.java
   jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/TaskMailTest.java
Log:
[JBPM-850] Cope with null values coming out of the email address resolver

Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/MailTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/MailTest.java	2008-10-30 08:45:49 UTC (rev 2668)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/MailTest.java	2008-10-30 09:34:45 UTC (rev 2669)
@@ -19,6 +19,9 @@
   public static class TestAddressResolver implements AddressResolver {
     private static final long serialVersionUID = 1L;
     public Object resolveAddress(String actorId) {
+      if ("ghost".equals(actorId)) {
+        return null;
+      }
       return actorId+"@example.domain";
     }
   }

Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/TaskMailTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/TaskMailTest.java	2008-10-30 08:45:49 UTC (rev 2668)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/mail/TaskMailTest.java	2008-10-30 09:34:45 UTC (rev 2669)
@@ -43,6 +43,8 @@
   {
     super.setUp();
     server = MailTest.startSmtpServer(23583);
+    TestSchedulerService testSchedulerService = (TestSchedulerService) jbpmConfiguration.getServiceFactory("scheduler");
+    testSchedulerService.reset();
     jbpmContext = jbpmConfiguration.createJbpmContext();
   }
 
@@ -88,11 +90,16 @@
   }
   
   public static class TestSchedulerService implements SchedulerService, ServiceFactory {
-
     private static final long serialVersionUID = 1L;
-    List createdTimers = new ArrayList();
-    List cancelledTimers = new ArrayList();
-
+    List createdTimers = null;
+    List cancelledTimers = null;
+    public TestSchedulerService() {
+      reset();
+    }
+    public void reset() {
+      createdTimers = new ArrayList();
+      cancelledTimers = new ArrayList();
+    }
     public void createTimer(Timer timer) {
       createdTimers.add(timer);
     }
@@ -109,7 +116,6 @@
     }
     public void close() {
     }
-
   }
 
   public void testTaskInstanceReminder() throws Exception {
@@ -156,4 +162,41 @@
     taskInstance.end();
     assertEquals(1, testSchedulerService.cancelledTimers.size());
   }
+  
+  public static class GhostAssigner implements AssignmentHandler {
+    private static final long serialVersionUID = 1L;
+    public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception {
+      assignable.setActorId("ghost");
+    }
+  }
+
+  public void testUnexistingUser() throws Exception {
+    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
+      "<process-definition>" +
+      "  <start-state>" +
+      "    <transition to='a' />" +
+      "  </start-state>" +
+      "  <task-node name='a'>" +
+      "    <task name='laundry' notify='true'>" +
+      "      <assignment class='org.jbpm.mail.TaskMailTest$GhostAssigner' />" +
+      "    </task>" +
+      "    <transition to='b' />" +
+      "  </task-node>" +
+      "  <state name='b' />" +
+      "</process-definition>"
+    );
+    ProcessInstance processInstance = new ProcessInstance(processDefinition);
+    processInstance.signal();
+
+    assertEquals(0, server.getReceivedEmailSize());
+
+    TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+    TaskInstance taskInstance = (TaskInstance) taskMgmtInstance.getTaskInstances().iterator().next();
+    
+    // ghost will get null as an email address in the org.jbpm.mail.MailTest$TestAddressResolver
+    assertEquals("ghost", taskInstance.getActorId());
+    
+    taskInstance.end();
+    assertEquals(0, server.getReceivedEmailSize());
+  }
 }




More information about the jbpm-commits mailing list