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:36 UTC
[5/6] incubator-taverna-language git commit: Check that nested
process has the same i/o ports as the child workflow
Check that nested process has the same i/o ports as the child workflow
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/0ca7ac29
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/0ca7ac29
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/0ca7ac29
Branch: refs/heads/master
Commit: 0ca7ac29164e15f2a05aed6af1370b184fd25fd6
Parents: 2530da3
Author: Majdi Haouech <m....@criteo.com>
Authored: Wed Aug 8 12:08:54 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Wed Aug 8 12:13:48 2018 +0200
----------------------------------------------------------------------
.../taverna/scufl2/api/common/Scufl2Tools.java | 8 ++--
.../scufl2/api/common/TestScufl2Tools.java | 40 +++++++++++++++++---
2 files changed, 39 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/0ca7ac29/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 bb5bcbe..e3b5d6e 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
@@ -764,10 +764,10 @@ public class Scufl2Tools {
if(nestedWorkflowForProcessor(processor, profile) != null) {
throw new IllegalStateException("Processor " + processor + " already has a nested workflow");
}
- List<ProcessorBinding> processorBindings = processorBindingsForProcessor(processor, profile);
- if(processorBindings.size() != 0) {
- throw new IllegalStateException("Processor " + processor + "already has a binding")
- }
+ List<ProcessorBinding> processorBindings = processorBindingsForProcessor(processor, profile);
+ if(processorBindings.size() != 0) {
+ throw new IllegalStateException("Processor " + processor + "already has a binding");
+ }
Activity activity = createActivityFromProcessor(processor, profile);
activity.setType(NESTED_WORKFLOW);
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/0ca7ac29/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 f336af0..d397168 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
@@ -31,7 +31,10 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.stream.Collectors;
import org.apache.taverna.scufl2.api.ExampleWorkflow;
import org.apache.taverna.scufl2.api.activity.Activity;
import org.apache.taverna.scufl2.api.common.Visitor.VisitorWithPath;
@@ -42,8 +45,10 @@ 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.InputWorkflowPort;
import org.apache.taverna.scufl2.api.port.OutputActivityPort;
import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
+import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
import org.apache.taverna.scufl2.api.profiles.ProcessorBinding;
import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding;
import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding;
@@ -51,7 +56,6 @@ import org.apache.taverna.scufl2.api.profiles.ProcessorPortBinding;
import org.apache.taverna.scufl2.api.profiles.Profile;
import org.junit.Before;
import org.junit.Test;
-import sun.security.krb5.Config;
public class TestScufl2Tools extends ExampleWorkflow {
@@ -84,11 +88,37 @@ public class TestScufl2Tools extends ExampleWorkflow {
ProcessorBinding binding = processor.getBinding(profile);
Activity activity = binding.getBoundActivity();
- Configuration configuration = activity.getConfiguration();
+ Configuration configuration = activity.getConfiguration();
- assertEquals(activity.getType(), Scufl2Tools.NESTED_WORKFLOW);
- String nestedWorkflowName = configuration.getJson().get("nestedWorkflow").asText();
- assertEquals(nestedWorkflowName, child.getName());
+ assertEquals(activity.getType(), Scufl2Tools.NESTED_WORKFLOW);
+ String nestedWorkflowName = configuration.getJson().get("nestedWorkflow").asText();
+ assertEquals(nestedWorkflowName, child.getName());
+ }
+
+ @Test
+ public void testNestedProcessHasCorrectStructure() {
+ 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.setAsNestedWorkflow(processor, child, profile);
+
+ Set<String> processorInputNames = processor.getInputPorts().stream().map(InputProcessorPort::getName).collect(Collectors.toSet());
+ Set<String> workflowInputNames = child.getInputPorts().stream().map(InputWorkflowPort::getName).collect(Collectors.toSet());
+
+ assertEquals(workflowInputNames, processorInputNames);
+
+ Set<String> processorOutputNames = processor.getOutputPorts().stream().map(OutputProcessorPort::getName).collect(Collectors.toSet());
+ Set<String> workflowOutputNames = child.getOutputPorts().stream().map(OutputWorkflowPort::getName).collect(Collectors.toSet());
+
+ assertEquals(workflowOutputNames, processorOutputNames);
}
@Test