Add test for nested helper in Scufl2Tools
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 1222733..f7f7698 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
@@ -65,6 +65,7 @@
import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
/**
* Utility methods for dealing with SCUFL2 models
@@ -767,6 +768,12 @@
Activity activity = createActivityFromProcessor(processor, profile);
activity.setType(NESTED_WORKFLOW);
Configuration configuration = createConfigurationFor(activity, NESTED_WORKFLOW);
+
+ ObjectNode json = configuration.getJsonAsObjectNode();
+ json.put("nestedWorkflow", childWorkflow.getName());
+
+ childWorkflow.setParent(processor.getParent().getParent());
+
return configuration;
}
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 5880253..24fc788 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
@@ -41,6 +41,7 @@
import org.apache.taverna.scufl2.api.container.WorkflowBundle;
import org.apache.taverna.scufl2.api.core.ControlLink;
import org.apache.taverna.scufl2.api.core.Processor;
+import org.apache.taverna.scufl2.api.core.Workflow;
import org.apache.taverna.scufl2.api.port.InputActivityPort;
import org.apache.taverna.scufl2.api.port.InputProcessorPort;
import org.apache.taverna.scufl2.api.port.OutputActivityPort;
@@ -63,6 +64,25 @@
makeWorkflowBundle();
assertNotNull(workflowBundle);
}
+
+ @Test
+ public void testNestedWorkflows() {
+ Workflow child = new Workflow();
+ child.setName("childWorkflow");
+ child.setParent(workflowBundle);
+
+ Workflow mainWorkflow = workflowBundle.getMainWorkflow();
+ Processor processor = new Processor();
+ processor.setParent(mainWorkflow);
+
+ Profile profile = workflowBundle.getMainProfile();
+
+ Scufl2Tools tools = new Scufl2Tools();
+ tools.createNestedRelationship(processor, child, profile);
+ Workflow nested = tools.nestedWorkflowForProcessor(processor, profile);
+
+ assertEquals(child, nested);
+ }
@Test
public void controlLinksBlocking() {