Author: mattmann
Date: Sat Oct  6 21:38:29 2012
New Revision: 1395176

URL: http://svn.apache.org/viewvc?rev=1395176&view=rev
Log:
- fix for OODT-516: Add WorkflowLifecycle tests that check pctComplete for 
wengine and w1 style lifecycles

Modified:
    oodt/trunk/CHANGES.txt
    
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java
    
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java
    
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java

Modified: oodt/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/oodt/trunk/CHANGES.txt?rev=1395176&r1=1395175&r2=1395176&view=diff
==============================================================================
--- oodt/trunk/CHANGES.txt (original)
+++ oodt/trunk/CHANGES.txt Sat Oct  6 21:38:29 2012
@@ -4,6 +4,9 @@ Apache OODT Change Log
 Release 0.5
 --------------------------------------------
 
+* OODT-516: Add WorkflowLifecycle tests that check pctComplete for 
+  wengine and w1 style lifecycles (mattmann)
+
 * OODT-501: Method to create Processor from Instance should be based on 
   Graph structure (mattmann)
 

Modified: 
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java
URL: 
http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java?rev=1395176&r1=1395175&r2=1395176&view=diff
==============================================================================
--- 
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java
 (original)
+++ 
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java
 Sat Oct  6 21:38:29 2012
@@ -175,8 +175,10 @@ public class WorkflowLifecycle {
     if (this.stages != null && this.stages.size() > 0) {
       for (Iterator i = this.stages.iterator(); i.hasNext();) {
         WorkflowLifecycleStage stage = (WorkflowLifecycleStage) i.next();
-        if (stage.getStates().contains(status)) {
-          return stage;
+        for(WorkflowState state: stage.getStates()){
+          if(state.getName().equals(status)){
+            return stage;
+          }
         }
       }
 

Modified: 
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java
URL: 
http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java?rev=1395176&r1=1395175&r2=1395176&view=diff
==============================================================================
--- 
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java
 (original)
+++ 
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java
 Sat Oct  6 21:38:29 2012
@@ -212,7 +212,9 @@ public class WorkflowLifecycleManager {
      */
     public int getLastCompletedStageNum(WorkflowInstance inst) {  
         int currStageNum = getStageNum(inst);
-        if (inst.getStatus().equals(WorkflowStatus.FINISHED)
+        if ((inst.getStatus().equals(WorkflowStatus.FINISHED) || 
+            (inst.getState().getCategory() != null && 
+             inst.getState().getCategory().getName().equals("done")))
                 && currStageNum == getNumStages(inst.getWorkflow())) {
             return currStageNum;
         } else

Modified: 
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java
URL: 
http://svn.apache.org/viewvc/oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java?rev=1395176&r1=1395175&r2=1395176&view=diff
==============================================================================
--- 
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java
 (original)
+++ 
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java
 Sat Oct  6 21:38:29 2012
@@ -21,6 +21,10 @@ package org.apache.oodt.cas.workflow.lif
 import java.io.File;
 import java.util.List;
 
+import org.apache.oodt.cas.workflow.structs.Graph;
+import org.apache.oodt.cas.workflow.structs.ParentChildWorkflow;
+import org.apache.oodt.cas.workflow.structs.WorkflowInstance;
+
 //Junit imports
 import junit.framework.TestCase;
 
@@ -36,6 +40,36 @@ public class TestWorkflowLifecycleManage
 
   private WorkflowLifecycleManager lifecycle;
 
+  public void testPctCompleteWengineStages(){
+    ParentChildWorkflow workflow = new ParentChildWorkflow(new Graph());
+    WorkflowState successState = 
lifecycle.getDefaultLifecycle().createState("Success", "done", "All done.");
+    WorkflowInstance instance = new WorkflowInstance();
+    instance.setState(successState);
+    instance.setParentChildWorkflow(workflow);
+    double pct = lifecycle.getPercentageComplete(instance);
+    assertNotNull(pct);
+    assertEquals(1.0, pct);
+  }
+  
+  public void testPctCompleteWorkflow1Stages() throws InstantiationException{
+    this.lifecycle = new WorkflowLifecycleManager("./src/main/resources"
+        + "/examples/workflow-lifecycle.xml");
+    assertNotNull(this.lifecycle);
+    assertNotNull(this.lifecycle.getDefaultLifecycle());
+    assertNotNull(this.lifecycle.getDefaultLifecycle().getStages());
+    ParentChildWorkflow workflow = new ParentChildWorkflow(new Graph());
+    WorkflowState successState = 
lifecycle.getDefaultLifecycle().createState("FINISHED", "done", "All done.");
+    WorkflowInstance instance = new WorkflowInstance();
+    instance.setState(successState);
+    instance.setParentChildWorkflow(workflow);
+    double pct = lifecycle.getPercentageComplete(instance);
+    assertNotNull(pct);
+    assertEquals(1.0, pct);
+    
+    
+  }
+  
+  
   public void testStages() {
     assertNotNull(this.lifecycle.getDefaultLifecycle());
     assertNotNull(this.lifecycle.getDefaultLifecycle().getStages());


Reply via email to