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/07/05 10:46:00 UTC
[10/13] incubator-taverna-language git commit: Add parser tests
Add parser tests
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/62c3615b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/62c3615b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/62c3615b
Branch: refs/heads/cwlparser
Commit: 62c3615bf2bbd4a50d6bc864b399bfeb4064743d
Parents: 4ee2f5b
Author: Majdi Haouech <m....@criteo.com>
Authored: Mon Jun 11 16:53:09 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Mon Jun 11 16:53:09 2018 +0200
----------------------------------------------------------------------
.../apache/taverna/scufl2/cwl/TestParser.java | 90 ++++++++++++++------
.../src/test/resources/hello_world.cwl | 18 ++++
2 files changed, 84 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/62c3615b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java
index 83c48e1..23b9533 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestParser.java
@@ -3,6 +3,7 @@ package org.apache.taverna.scufl2.cwl;
import java.util.*;
+import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -13,41 +14,82 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
+import org.apache.taverna.scufl2.api.core.Workflow;
+import org.apache.taverna.scufl2.api.core.Processor;
+import org.apache.taverna.scufl2.api.core.DataLink;
+
+import org.apache.taverna.scufl2.api.common.NamedSet;
+
import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
+import org.apache.taverna.scufl2.api.port.InputProcessorPort;
public class TestParser {
- private static final String SIMPLE_STRING_INPUT = "/simple_string_input.cwl";
- private static final String INT_INPUT = "/int_input.cwl";
+ private static final String HELLO_WORLD_CWL = "/hello_world.cwl";
private static JsonNode cwlFile;
+ private WorkflowParser parser;
+ private Workflow workflow;
- @Test
- public void testStringInput() throws Exception {
+ @Before
+ public void initialize() {
Yaml reader = new Yaml();
ObjectMapper mapper = new ObjectMapper();
- cwlFile = mapper.valueToTree(reader.load(TestParser.class.getResourceAsStream(SIMPLE_STRING_INPUT)));
+ cwlFile = mapper.valueToTree(reader.load(TestParser.class.getResourceAsStream(HELLO_WORLD_CWL)));
System.out.println(cwlFile);
- Parser parser = new Parser(cwlFile);
-
- Set<InputWorkflowPort> result = parser.parseInputs();
- for(InputWorkflowPort port: result) {
- System.out.println(port.getName());
- }
- ArrayList<InputWorkflowPort> inputs = new ArrayList<>(result);
- assertEquals(inputs.get(0).getName(), "example_string");
-
- Set<OutputWorkflowPort> result2 = parser.parseOutputs();
- for(OutputWorkflowPort port: result2) {
- System.out.println(port.getName());
- }
- System.out.println("Showing steps:");
-
- Set<Step> steps = parser.parseSteps();
- for(Step step: steps) {
- System.out.println(step);
- }
+ this.parser = new WorkflowParser(cwlFile);
+
+ this.workflow = parser.buildWorkflow();
+ }
+
+ @Test
+ public void testParseInputs() throws Exception {
+
+ NamedSet<InputWorkflowPort> workflowInputs = workflow.getInputPorts();
+ NamedSet<InputWorkflowPort> expectedInputs = new NamedSet<>();
+ expectedInputs.add(new InputWorkflowPort(workflow, "name"));
+
+ assertEquals(expectedInputs, workflowInputs);
+ }
+
+ @Test
+ public void testParseOutputs() throws Exception {
+
+ NamedSet<OutputWorkflowPort> workflowOutputs = workflow.getOutputPorts();
+ NamedSet<OutputWorkflowPort> expectedOutputs = new NamedSet<>();
+
+ assertEquals(expectedOutputs, workflowOutputs);
+ }
+
+ @Test
+ public void testParseProcessors() throws Exception {
+
+ NamedSet<Processor> workflowProcessors = workflow.getProcessors();
+ NamedSet<Processor> expectedProcessors = new NamedSet<>();
+ expectedProcessors.add(new Processor(workflow, "step1"));
+
+ assertEquals(expectedProcessors, workflowProcessors);
+ }
+
+ @Test
+ public void testParseDataLinks() throws Exception {
+
+ Set<DataLink> workflowDataLinks = workflow.getDataLinks();
+ Set<DataLink> expectedDataLinks = new HashSet<>();
+ Set<Processor> processorSet = workflow.getProcessors();
+ // processorSet has one processor
+ Processor processor = processorSet.iterator().next();
+
+ expectedDataLinks.add(
+ new DataLink(
+ workflow,
+ new InputWorkflowPort(workflow, "name"),
+ new InputProcessorPort(processor, "text")
+ )
+ );
+
+ assertEquals(expectedDataLinks, workflowDataLinks);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/62c3615b/taverna-scufl2-cwl/src/test/resources/hello_world.cwl
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/resources/hello_world.cwl b/taverna-scufl2-cwl/src/test/resources/hello_world.cwl
new file mode 100644
index 0000000..d716812
--- /dev/null
+++ b/taverna-scufl2-cwl/src/test/resources/hello_world.cwl
@@ -0,0 +1,18 @@
+#!/usr/bin/env cwl-runner
+cwlVersion: v1.0
+class: Workflow
+
+inputs:
+ name: string
+
+outputs: []
+
+steps:
+ step1:
+ run: example.cwl
+
+ inputs:
+ - id: text
+ source: "#x/name"
+
+ outputs: []