Change nesting method name, Add a test

Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/3efbf085
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/3efbf085
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/3efbf085

Branch: refs/heads/master
Commit: 3efbf0857f0ed3c8d7fa8b52f45bdc73af2ff747
Parents: d93452d
Author: Majdi Haouech <m.haou...@criteo.com>
Authored: Mon Aug 6 23:59:57 2018 +0200
Committer: Majdi Haouech <m.haou...@criteo.com>
Committed: Mon Aug 6 23:59:57 2018 +0200

----------------------------------------------------------------------
 .../taverna/scufl2/api/common/Scufl2Tools.java  |  8 +++++++-
 .../scufl2/api/common/TestScufl2Tools.java      | 20 ++++++++++++++++----
 2 files changed, 23 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3efbf085/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
----------------------------------------------------------------------
diff --git 
a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
 
b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
index f7f7698..0823e3b 100644
--- 
a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
+++ 
b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
@@ -753,7 +753,7 @@ public class Scufl2Tools {
                return activity;
        }
 
-       public Configuration createNestedRelationship(Processor processor, 
Workflow childWorkflow, Profile profile) {
+       public Configuration setAsNestedWorkflow(Processor processor, Workflow 
childWorkflow, Profile profile) {
                if(processor.getParent() == null) {
                        throw new IllegalStateException("Processor " + 
processor + " has no parent");
                }
@@ -764,6 +764,12 @@ public class Scufl2Tools {
                if(nestedWorkflowForProcessor(processor, profile) != null) {
                        throw new IllegalStateException("Processor " + 
processor + " already has a nested workflow");
                }
+               try {
+                       processor.getActivity(profile);
+                       throw new IllegalStateException("Processor " + 
processor + " already has a bound activity");
+               } catch(IndexOutOfBoundsException e) {
+                       // Processor should have no bound activity, which is 
the case here.
+               }
 
                Activity activity = createActivityFromProcessor(processor, 
profile);
                activity.setType(NESTED_WORKFLOW);

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/3efbf085/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
----------------------------------------------------------------------
diff --git 
a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
 
b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
index 24fc788..179553b 100644
--- 
a/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
+++ 
b/taverna-scufl2-api/src/test/java/org/apache/taverna/scufl2/api/common/TestScufl2Tools.java
@@ -34,10 +34,8 @@ import java.util.Set;
 
 import org.apache.taverna.scufl2.api.ExampleWorkflow;
 import org.apache.taverna.scufl2.api.activity.Activity;
-import org.apache.taverna.scufl2.api.common.Child;
-import org.apache.taverna.scufl2.api.common.Scufl2Tools;
-import org.apache.taverna.scufl2.api.common.WorkflowBean;
 import org.apache.taverna.scufl2.api.common.Visitor.VisitorWithPath;
+import org.apache.taverna.scufl2.api.configurations.Configuration;
 import org.apache.taverna.scufl2.api.container.WorkflowBundle;
 import org.apache.taverna.scufl2.api.core.ControlLink;
 import org.apache.taverna.scufl2.api.core.Processor;
@@ -78,10 +76,24 @@ public class TestScufl2Tools extends ExampleWorkflow {
                Profile profile = workflowBundle.getMainProfile();
 
                Scufl2Tools tools = new Scufl2Tools();
-               tools.createNestedRelationship(processor, child, profile);
+               tools.setAsNestedWorkflow(processor, child, profile);
                Workflow nested = tools.nestedWorkflowForProcessor(processor, 
profile);
 
                assertEquals(child, nested);
+
+               boolean found = false;
+
+               for(Activity activity: profile.getActivities()) {
+                       
if(activity.getType().equals(Scufl2Tools.NESTED_WORKFLOW)) {
+                               for(Configuration config: 
tools.configurationsFor(activity, profile)) {
+                                       String nestedWorkflowName = 
config.getJson().get("nestedWorkflow").asText();
+                                       Workflow wf = 
workflowBundle.getWorkflows().getByName(nestedWorkflowName);
+                                       found |= (wf != null && 
nestedWorkflowName.equals(child.getName()));
+                               }
+                       }
+               }
+
+               assertTrue(found);
        }
        
        @Test

Reply via email to