You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2018/08/10 11:58:34 UTC

[3/6] incubator-taverna-language git commit: Change nesting method name, Add a test

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....@criteo.com>
Authored: Mon Aug 6 23:59:57 2018 +0200
Committer: Majdi Haouech <m....@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