[jbpm-commits] JBoss JBPM SVN: r2526 - in projects/spec/trunk/modules: api/src/main/java/org/jbpm/api/test and 6 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Oct 10 07:41:39 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-10-10 07:41:39 -0400 (Fri, 10 Oct 2008)
New Revision: 2526

Added:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestProcessCatalog.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java
   projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java
Removed:
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/processmanager/
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/persistence/
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessCatalog.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/signalmanager/
Modified:
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java
   projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessBuilderTest.java
   projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java
   projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
Log:
Add persistence tests for proc and procdef

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java	2008-10-10 10:57:20 UTC (rev 2525)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessDefinitionService.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -30,7 +30,6 @@
 
 import javax.management.ObjectName;
 
-import org.hibernate.Session;
 import org.jbpm.api.client.Deployment;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.ProcessDefinition;

Modified: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java	2008-10-10 10:57:20 UTC (rev 2525)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/service/ProcessService.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -31,7 +31,6 @@
 
 import javax.management.ObjectName;
 
-import org.hibernate.Session;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Process;
 import org.jbpm.api.model.ProcessDefinition;

Added: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestProcessCatalog.java
===================================================================
--- projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestProcessCatalog.java	                        (rev 0)
+++ projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestProcessCatalog.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.api.test;
+
+// $Id$
+
+import junit.framework.TestCase;
+
+import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.Assignment;
+import org.jbpm.api.model.EndEvent;
+import org.jbpm.api.model.Expression;
+import org.jbpm.api.model.Message;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.SequenceFlow;
+import org.jbpm.api.model.StartEvent;
+import org.jbpm.api.model.Task;
+import org.jbpm.api.model.Assignment.AssignTime;
+import org.jbpm.api.model.builder.ProcessBuilder;
+import org.jbpm.api.service.ProcessBuilderService;
+
+/**
+ * A catalog of CTS test processes
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 24-Sep-2008
+ */
+public abstract class CTSTestProcessCatalog
+{
+  public static ProcessDefinition getDefaultProcess(ProcessEngine engine)
+  {
+    ProcessBuilder builder = engine.getService(ProcessBuilderService.class).getProcessBuilder();
+    builder.addProcess("Proc");
+    builder.addProcessProperty("proP1", "valP1").addProcessProperty("proP2", "valP2");
+    builder.addProcessMessage("procMsg").addProperty("msgPropName", "msgPropVal");
+    builder.addProcessAssignment(AssignTime.Start, Expression.ExpressionLanguage.MVEL, "foo==true", "fooTrue");
+    builder.addStartEvent("Start").addSequenceFlow("Task");
+    builder.addTask("Task").addNodeProperty("proT1", "valT1").addNodeProperty("proT2", "valT2");
+    builder.addSequenceFlow("End").addEndEvent("End");
+    return builder.getProcessDefinition();
+  }
+
+  public static void validateDefaultProcess(ProcessDefinition procDef)
+  {
+    TestCase.assertNotNull("Process not null", procDef);
+    TestCase.assertEquals("Proc", procDef.getName());
+
+    TestCase.assertEquals("Two proc props", 2, procDef.getPropertyNames().size());
+    TestCase.assertEquals("valP1", procDef.getProperty("proP1").getValue());
+    TestCase.assertEquals("valP2", procDef.getProperty("proP2").getValue());
+    
+    Message procMsg = procDef.getMessage("procMsg");
+    TestCase.assertEquals("One proc message", 1, procDef.getMessages().size());
+    TestCase.assertEquals("msgPropVal", procMsg.getProperty("msgPropName").getValue());
+
+    TestCase.assertEquals("One proc assignment", 1, procDef.getAssignments().size());
+    Assignment procAssign = procDef.getAssignments().get(0);
+    TestCase.assertEquals(AssignTime.Start, procAssign.getAssignTime());
+    TestCase.assertEquals("foo==true", procAssign.getFrom().getExpressionBody());
+    TestCase.assertEquals("fooTrue", procAssign.getTo().getName());
+    
+    StartEvent start = (StartEvent)procDef.getNode("Start");
+    Task task = (Task)procDef.getNode("Task");
+    EndEvent end = (EndEvent)procDef.getNode("End");
+
+    TestCase.assertNotNull("Start not null", start);
+    TestCase.assertNotNull("Task not null", task);
+    TestCase.assertNotNull("End not null", end);
+
+    TestCase.assertEquals("No start props", 0, start.getPropertyNames().size());
+    TestCase.assertEquals("Two task props", 2, task.getPropertyNames().size());
+    TestCase.assertEquals("No end props", 0, end.getPropertyNames().size());
+    
+    TestCase.assertEquals("valT1", task.getProperty("proT1").getValue());
+    TestCase.assertEquals("valT2", task.getProperty("proT2").getValue());
+    
+    SequenceFlow startFlow = start.getOutFlow();
+    TestCase.assertNotNull("Start flow not null", startFlow);
+    TestCase.assertEquals("Task", startFlow.getTargetName());
+    TestCase.assertSame(start, startFlow.getSourceRef());
+    TestCase.assertSame(task, startFlow.getTargetRef());
+
+    SequenceFlow taskFlow = task.getOutFlow();
+    TestCase.assertNotNull("Task flow not null", taskFlow);
+    TestCase.assertEquals("End", taskFlow.getTargetName());
+    TestCase.assertSame(task, taskFlow.getSourceRef());
+    TestCase.assertSame(end, taskFlow.getTargetRef());
+  }
+}


Property changes on: projects/spec/trunk/modules/api/src/main/java/org/jbpm/api/test/CTSTestProcessCatalog.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessBuilderTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessBuilderTest.java	2008-10-10 10:57:20 UTC (rev 2525)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessBuilderTest.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -28,6 +28,7 @@
 import org.jbpm.api.model.builder.ProcessBuilder;
 import org.jbpm.api.service.ProcessBuilderService;
 import org.jbpm.api.test.CTSTestCase;
+import org.jbpm.api.test.CTSTestProcessCatalog;
 
 /**
  * Test the ProcessBuilder
@@ -39,8 +40,8 @@
 {
   public void testBasicProcess() throws Exception
   {
-    ProcessDefinition procDef = ProcessCatalog.getDefaultProcess();
-    ProcessCatalog.validateDefaultProcess(procDef);
+    ProcessDefinition procDef = CTSTestProcessCatalog.getDefaultProcess(getProcessEngine());
+    CTSTestProcessCatalog.validateDefaultProcess(procDef);
   }
 
   public void testNoProcessName() throws Exception

Deleted: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessCatalog.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessCatalog.java	2008-10-10 10:57:20 UTC (rev 2525)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessCatalog.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -1,90 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.test.cts.service.process;
-
-// $Id$
-
-import junit.framework.TestCase;
-
-import org.jbpm.api.model.EndEvent;
-import org.jbpm.api.model.ProcessDefinition;
-import org.jbpm.api.model.SequenceFlow;
-import org.jbpm.api.model.StartEvent;
-import org.jbpm.api.model.Task;
-import org.jbpm.api.model.builder.ProcessBuilder;
-import org.jbpm.api.service.ProcessBuilderService;
-
-/**
- * A catalog of CTS test processes
- * 
- * @author thomas.diesler at jboss.com
- * @since 24-Sep-2008
- */
-public abstract class ProcessCatalog
-{
-  public static ProcessDefinition getDefaultProcess()
-  {
-    ProcessBuilder builder = ProcessBuilderService.locateProcessBuilder();
-    builder.addProcess("Proc").addProcessProperty("proP1", "valP1").addProcessProperty("proP2", "valP2");
-    builder.addStartEvent("Start").addSequenceFlow("Task");
-    builder.addTask("Task").addNodeProperty("proT1", "valT1").addNodeProperty("proT2", "valT2");
-    builder.addSequenceFlow("End").addEndEvent("End");
-    return builder.getProcessDefinition();
-  }
-
-  public static void validateDefaultProcess(ProcessDefinition procStruct)
-  {
-    TestCase.assertNotNull("Process not null", procStruct);
-    TestCase.assertEquals("Proc", procStruct.getName());
-
-    TestCase.assertEquals("Two proc props", 2, procStruct.getPropertyNames().size());
-    TestCase.assertEquals("valP1", procStruct.getProperty("proP1").getValue());
-    TestCase.assertEquals("valP2", procStruct.getProperty("proP2").getValue());
-    
-    StartEvent start = (StartEvent)procStruct.getNode("Start");
-    Task task = (Task)procStruct.getNode("Task");
-    EndEvent end = (EndEvent)procStruct.getNode("End");
-
-    TestCase.assertNotNull("Start not null", start);
-    TestCase.assertNotNull("Task not null", task);
-    TestCase.assertNotNull("End not null", end);
-
-    TestCase.assertEquals("No start props", 0, start.getPropertyNames().size());
-    TestCase.assertEquals("Two task props", 2, task.getPropertyNames().size());
-    TestCase.assertEquals("No end props", 0, end.getPropertyNames().size());
-    
-    TestCase.assertEquals("valT1", task.getProperty("proT1").getValue());
-    TestCase.assertEquals("valT2", task.getProperty("proT2").getValue());
-    
-    SequenceFlow startFlow = start.getOutFlow();
-    TestCase.assertNotNull("Start flow not null", startFlow);
-    TestCase.assertEquals("Task", startFlow.getTargetName());
-    TestCase.assertSame(start, startFlow.getSourceRef());
-    TestCase.assertSame(task, startFlow.getTargetRef());
-
-    SequenceFlow taskFlow = task.getOutFlow();
-    TestCase.assertNotNull("Task flow not null", taskFlow);
-    TestCase.assertEquals("End", taskFlow.getTargetName());
-    TestCase.assertSame(task, taskFlow.getSourceRef());
-    TestCase.assertSame(end, taskFlow.getTargetRef());
-  }
-}

Modified: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java	2008-10-10 10:57:20 UTC (rev 2525)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/process/ProcessDefinitionServiceTest.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -33,6 +33,7 @@
 import org.jbpm.api.service.ProcessDefinitionService;
 import org.jbpm.api.service.ProcessService;
 import org.jbpm.api.test.CTSTestCase;
+import org.jbpm.api.test.CTSTestProcessCatalog;
 
 /**
  * Test the ProcessDefinition
@@ -44,8 +45,8 @@
 {
   public void testBasicProcess() throws Exception
   {
-    ProcessDefinition procDef = ProcessCatalog.getDefaultProcess();
-    ProcessCatalog.validateDefaultProcess(procDef);
+    ProcessDefinition procDef = CTSTestProcessCatalog.getDefaultProcess(getProcessEngine());
+    CTSTestProcessCatalog.validateDefaultProcess(procDef);
 
     ProcessEngine engine = procDef.getProcessEngine();
     assertNotNull("ProcessEngine not null", engine);
@@ -59,7 +60,7 @@
 
   public void testNewInstance() throws Exception
   {
-    ProcessDefinition procDef = ProcessCatalog.getDefaultProcess();
+    ProcessDefinition procDef = CTSTestProcessCatalog.getDefaultProcess(getProcessEngine());
 
     ProcessEngine engine = procDef.getProcessEngine();
     ProcessDefinitionService procDefService = engine.getService(ProcessDefinitionService.class);
@@ -73,7 +74,7 @@
 
   public void testRegister() throws Exception
   {
-    ProcessDefinition procDef = ProcessCatalog.getDefaultProcess();
+    ProcessDefinition procDef = CTSTestProcessCatalog.getDefaultProcess(getProcessEngine());
 
     ProcessEngine engine = procDef.getProcessEngine();
     ProcessDefinitionService procDefService = engine.getService(ProcessDefinitionService.class);

Added: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java
===================================================================
--- projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java	                        (rev 0)
+++ projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test.pattern.control.sequence;
+
+// $Id$
+
+import java.io.IOException;
+
+import javax.management.ObjectName;
+
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.service.PersistenceService;
+
+/**
+ * Test the basic execution sequence
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 03-Jul-2008
+ */
+public class SequencePersistenceTest extends SequenceTest
+{
+  public ProcessDefinition getProcessDefinition() throws IOException
+  {
+    ProcessDefinition procDef = super.getProcessDefinition();
+
+    // Save the process definition
+    PersistenceService service = getProcessEngine().getService(PersistenceService.class);
+    ObjectName procDefID = service.saveProcessDefinition(procDef);
+    
+    // Reload the process defintion
+    return service.loadProcessDefinition(procDefID);
+  }
+}


Property changes on: projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/pattern/control/sequence/SequencePersistenceTest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java
===================================================================
--- projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java	2008-10-10 10:57:20 UTC (rev 2525)
+++ projects/spec/trunk/modules/ri/src/main/java/org/jbpm/ri/service/ProcessServiceImpl.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -29,7 +29,6 @@
 
 import javax.management.ObjectName;
 
-import org.hibernate.Session;
 import org.jbpm.api.client.ProcessEngine;
 import org.jbpm.api.model.Process;
 import org.jbpm.api.model.Process.ProcessStatus;

Copied: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java (from rev 2516, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/persistence/ProcessDefinitionPersistenceTest.java)
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java	                        (rev 0)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessDefinitionPersistenceTest.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -0,0 +1,83 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test.ri.service.persistence;
+
+// $Id: PersistenceServiceTest.java 2419 2008-09-29 07:22:59Z thomas.diesler at jboss.com $
+
+import javax.management.ObjectName;
+
+import org.jbpm.api.ProcessNotFoundException;
+import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.EndEvent;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.StartEvent;
+import org.jbpm.api.model.Task;
+import org.jbpm.api.service.PersistenceService;
+import org.jbpm.api.test.CTSTestCase;
+import org.jbpm.api.test.CTSTestProcessCatalog;
+
+/**
+ * Test the PersistenceService
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public class ProcessDefinitionPersistenceTest extends CTSTestCase
+{
+  /**
+   * Test save, load, delete of a trivial ProcessDefinition
+   */
+  public void testProcessDefinition() throws Exception
+  {
+    ProcessEngine engine = getProcessEngine();
+    PersistenceService service = engine.getService(PersistenceService.class);
+
+    // Save the ProcessDefinition
+    ProcessDefinition procDef = CTSTestProcessCatalog.getDefaultProcess(engine);
+    service.saveProcessDefinition(procDef);
+
+    // Load the ProcessDefinition
+    ObjectName procDefID = procDef.getKey();
+    ProcessDefinition loadDef = service.loadProcessDefinition(procDefID);
+    CTSTestProcessCatalog.validateDefaultProcess(loadDef);
+
+    StartEvent start = loadDef.getNode(StartEvent.class, "Start");
+    Task task = loadDef.getNode(Task.class, "Task");
+    EndEvent end = loadDef.getNode(EndEvent.class, "End");
+    
+    assertSame(loadDef, start.getProcessDefinition());
+    assertSame(loadDef, task.getProcessDefinition());
+    assertSame(loadDef, end.getProcessDefinition());
+
+    // Delete the ProcessDefinition
+    service.deleteProcessDefinition(procDef);
+    try
+    {
+      service.loadProcessDefinition(procDefID);
+      fail("ProcessNotFoundException expected");
+    }
+    catch (ProcessNotFoundException ex)
+    {
+      // expected
+    }
+  }
+}

Copied: projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java (from rev 2515, projects/spec/trunk/modules/cts/src/test/java/org/jbpm/test/cts/service/persistence/ProcessPersistenceTest.java)
===================================================================
--- projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java	                        (rev 0)
+++ projects/spec/trunk/modules/ri/src/test/java/org/jbpm/test/ri/service/persistence/ProcessPersistenceTest.java	2008-10-10 11:41:39 UTC (rev 2526)
@@ -0,0 +1,90 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.test.ri.service.persistence;
+
+// $Id$
+
+import javax.management.ObjectName;
+
+import org.jbpm.api.ProcessNotFoundException;
+import org.jbpm.api.client.ProcessEngine;
+import org.jbpm.api.model.EndEvent;
+import org.jbpm.api.model.Process;
+import org.jbpm.api.model.ProcessDefinition;
+import org.jbpm.api.model.StartEvent;
+import org.jbpm.api.model.Task;
+import org.jbpm.api.service.PersistenceService;
+import org.jbpm.api.service.ProcessDefinitionService;
+import org.jbpm.api.test.CTSTestCase;
+import org.jbpm.api.test.CTSTestProcessCatalog;
+
+/**
+ * Test the PersistenceService
+ * 
+ * @author thomas.diesler at jboss.com
+ * @since 08-Jul-2008
+ */
+public class ProcessPersistenceTest extends CTSTestCase
+{
+  /**
+   * Test save, load, delete of a trivial Process
+   */
+  public void testProcess() throws Exception
+  {
+    ProcessEngine engine = getProcessEngine();
+    ProcessDefinitionService procDefService = engine.getService(ProcessDefinitionService.class);
+    PersistenceService service = engine.getService(PersistenceService.class);
+
+    // Register (save) the process definition, which is not done implicitly
+    ProcessDefinition procDef = unregisterOnTearDown(CTSTestProcessCatalog.getDefaultProcess(engine));
+    procDefService.registerProcessDefinition(procDef);
+    
+    // Create and save the Process
+    Process proc = procDef.newInstance();
+    service.saveProcess(proc);
+
+    // Load the process
+    ObjectName procID = proc.getKey();
+    Process loadProc = service.loadProcess(procID);
+    CTSTestProcessCatalog.validateDefaultProcess(loadProc.getProcessDefinition());
+
+    StartEvent start = loadProc.getNode(StartEvent.class, "Start");
+    Task task = loadProc.getNode(Task.class, "Task");
+    EndEvent end = loadProc.getNode(EndEvent.class, "End");
+    
+    assertSame(loadProc, start.getProcess());
+    assertSame(loadProc, task.getProcess());
+    assertSame(loadProc, end.getProcess());
+    
+    // Delete the process
+    service.deleteProcess(proc);
+    try
+    {
+      service.loadProcess(procID);
+      fail("ProcessNotFoundException expected");
+    }
+    catch (ProcessNotFoundException ex)
+    {
+      // expected
+    }
+  }
+}




More information about the jbpm-commits mailing list