Add test for nested helper in Scufl2Tools
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/d93452d7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/d93452d7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/d93452d7 Branch: refs/heads/master Commit: d93452d7ab30dc36bf0cabafe923ff3707bb0c55 Parents: edb12c6 Author: Majdi Haouech <m.haou...@criteo.com> Authored: Sat Jul 28 14:28:08 2018 +0200 Committer: Majdi Haouech <m.haou...@criteo.com> Committed: Sat Jul 28 14:28:08 2018 +0200 ---------------------------------------------------------------------- .../taverna/scufl2/api/common/Scufl2Tools.java | 7 +++++++ .../scufl2/api/common/TestScufl2Tools.java | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/d93452d7/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 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 org.apache.taverna.scufl2.api.profiles.Profile; import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; /** * Utility methods for dealing with SCUFL2 models @@ -767,6 +768,12 @@ public class Scufl2Tools { 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; } http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/d93452d7/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 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.common.Visitor.VisitorWithPath; 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 @@ public class TestScufl2Tools extends ExampleWorkflow { 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() {