Convert ports inside steps while converting parent processes

- Cleanup some unused imports
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
index 6bfe77d..5cfd9ce 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
@@ -196,10 +196,40 @@
     }
 
     public Processor convertCommandLineTool(CommandLineTool command) {
-        return new Processor(null, command.getBaseCommand());
+        Processor processor = new Processor(null, command.getBaseCommand());
+
+        processor.setInputPorts(convertInputProcessPorts(command.getInputPorts()));
+        processor.setOutputPorts(convertOutputProcessPorts(command.getOutputPorts()));
+
+        return processor;
     }
 
     public Processor convertReference(Reference reference) {
-        return new Processor(null, reference.getSource());
+        Processor processor = new Processor(null, reference.getSource());
+
+        processor.setInputPorts(convertInputProcessPorts(reference.getInputPorts()));
+        processor.setOutputPorts(convertOutputProcessPorts(reference.getOutputPorts()));
+
+        return processor;
+    }
+
+    public Set<InputProcessorPort> convertInputProcessPorts(Set<InputPort> inputPorts) {
+        Set<InputProcessorPort> processorInputPorts = new HashSet<>();
+
+        for(InputPort port: inputPorts) {
+            processorInputPorts.add(new InputProcessorPort(null, port.getName()));
+        }
+
+        return processorInputPorts;
+    }
+
+    public Set<OutputProcessorPort> convertOutputProcessPorts(Set<OutputPort> outputPorts) {
+        Set<OutputProcessorPort> processorOutputPorts = new HashSet<>();
+
+        for(OutputPort port: outputPorts) {
+            processorOutputPorts.add(new OutputProcessorPort(null, port.getName()));
+        }
+
+        return processorOutputPorts;
     }
 }
\ No newline at end of file
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
index 9f61758..a8e6607 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
@@ -101,6 +101,8 @@
 
         for(Step step: cwlSteps) {
             Process process = step.getRun();
+            process.setInputPorts(step.getInputs());
+            process.setOutputPorts(step.getOutputs());
             result.add(process);
         }
 
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
index b17cc88..2b34a3c 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestConverting.java
@@ -19,13 +19,7 @@
 package org.apache.taverna.scufl2.cwl;
 
 
-import java.io.File;
-import java.io.IOException;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.HashMap;
-
+import org.junit.Before;
 import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 
@@ -35,17 +29,9 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
-
-import org.apache.taverna.scufl2.api.core.Workflow;
-
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-
-import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
-import org.apache.taverna.scufl2.api.io.WriterException;
-
 import org.apache.taverna.scufl2.api.container.WorkflowBundle;
+import org.apache.taverna.scufl2.api.core.Workflow;
+import org.apache.taverna.scufl2.api.core.Processor;
 
 public class TestConverting {
     private static final String HELLO_WORLD_CWL = "/hello_world.cwl";
@@ -65,7 +51,7 @@
 
     @Test
     public void testWorkflowBundleWithOneWorkflow() {
-        JsonNode cwlFile = loadYamlFile(HELLO_WORLD_CWL);
+        this.cwlFile = loadYamlFile(HELLO_WORLD_CWL);
 
         WorkflowProcess workflow = (WorkflowProcess) ProcessFactory.createProcess(cwlFile);
         Converter converter = new Converter();
@@ -76,7 +62,7 @@
 
     @Test
     public void testWorkflowBundleWithMultipleWorkflows() {
-        JsonNode cwlFile = loadYamlFile(WORKFLOW_WITH_WORKFLOW);
+        this.cwlFile = loadYamlFile(WORKFLOW_WITH_WORKFLOW);
 
         WorkflowProcess workflow = (WorkflowProcess) ProcessFactory.createProcess(cwlFile);
         Converter converter = new Converter();
@@ -85,4 +71,20 @@
         assertEquals(workflowBundle.getWorkflows().size(), 2);
     }
 
+    @Test
+    public void testConvertWorkflowProcessToWorkflow() {
+        this.cwlFile = loadYamlFile(HELLO_WORLD_CWL);
+
+        WorkflowProcess workflowProcess = (WorkflowProcess) ProcessFactory.createProcess(cwlFile);
+        WorkflowBundle bundle = new WorkflowBundle();
+        Converter converter = new Converter();
+        Workflow workflow = converter.convertWorkflowProcess(workflowProcess, bundle);
+        assertEquals(1, workflow.getProcessors().size());
+        assertEquals(1, workflow.getInputPorts().size());
+        assertEquals(1, workflow.getOutputPorts().size());
+
+        Processor processor = workflow.getProcessors().iterator().next();
+        assertEquals(1, processor.getInputPorts().size());
+        assertEquals(0, processor.getOutputPorts().size());
+    }
 }