unit tests

Project: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/commit/626919d5
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/626919d5
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/626919d5

Branch: refs/heads/cwl-browse
Commit: 626919d5bc0960ecc7940c1c031b0e5f18cd5637
Parents: 4e8f8d0
Author: ThilinaManamgoda <[email protected]>
Authored: Sat Jul 23 13:42:55 2016 +0530
Committer: ThilinaManamgoda <[email protected]>
Committed: Sat Jul 23 13:42:55 2016 +0530

----------------------------------------------------------------------
 .../ui/serviceprovider/CwlServiceProvider.java  | 122 ++++++++++++-------
 .../ui/view/CwlActivityContextViewFactory.java  |   1 +
 .../src/main/resources/CWLFiles/customtool1.cwl |   2 +-
 .../serviceprovider/CwlServiceProviderTest.java |  19 +++
 .../view/CwlActivityContextViewFactoryTest.java |  25 ++++
 taverna-cwl-activity/pom.xml                    |  46 +++----
 .../src/main/resources/CWLFiles/customtool1.cwl |   2 +-
 .../taverna/cwl/CwlActivityFactoryTest.java     |  86 +++++++++----
 8 files changed, 211 insertions(+), 92 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/626919d5/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceProvider.java
----------------------------------------------------------------------
diff --git 
a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceProvider.java
 
b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceProvider.java
index 44672aa..56c462f 100644
--- 
a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceProvider.java
+++ 
b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceProvider.java
@@ -23,7 +23,9 @@ import java.nio.file.DirectoryStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Stream;
@@ -51,71 +53,102 @@ public class CwlServiceProvider extends 
AbstractConfigurableServiceProvider impl
 
        public static final String DEFAULT_PATH_1 = "/usr/share/commonwl/";
        public static final String DEFAULT_PATH_2 = 
"/usr/local/share/commonwl/";
-       public static final String DEFAULT_PATH_3 = 
"$HOME/.local/share/commonwl";
-       
+       public static final String XDF_DATA_HOME = "XDF_DATA_HOME";
+       public static final String COMMONWL = "commonwl/";
        private static Logger logger = 
Logger.getLogger(CwlServiceProvider.class);
 
        CwlServiceProvider() {
-               //FIXME
+               // FIXME
                super(getDefaultConfiguration());
        }
 
        private static final String providerName = "CWL Services";
        private static final URI providerId = 
CwlServiceDesc.ACTIVITY_TYPE.resolve("#provider");
 
-       
-
        @Override
        public void 
findServiceDescriptionsAsync(FindServiceDescriptionsCallBack callBack) {
 
-               // TODO default and configurable provider
-
                // get the location of the cwl tool from the workbench
-               Path path = getPath();
-               // figure out the dots in the path ex: /maanadev/../cwltools
-               Path normalizedPath = path.normalize();
-
-               DirectoryStream<Path> stream = null;
-               try {
-                       stream = Files.newDirectoryStream(normalizedPath, 
"*.cwl");
-               } catch (IOException e) {
-                       logger.warn("Path is not correct !");
-                       return;
-               }
-               // create stream with parallel capabilities
-               Stream<Path> paralleStream = 
StreamSupport.stream(stream.spliterator(), true);
+               ArrayList<Path> paths = getPath();
 
-               paralleStream.forEach(p -> {
-                       Yaml reader = getYamlReader();
-
-                       Map cwlFile;
-                       try (FileInputStream file = new 
FileInputStream(path.toFile())) {
-                               cwlFile = (Map) reader.load(file);
-                               JsonNode config = createJsonNode(p, cwlFile);
-                               // Creating CWl service Description
-                               CwlServiceDesc cwlServiceDesc = 
createCWLDesc(config);
-                               // return the service description
-                               
callBack.partialResults(Arrays.asList(cwlServiceDesc));
+               for (Path path : paths) {
+                       // figure out the dots in the path ex: 
/maanadev/../cwltools
+                       Path normalizedPath = path.normalize();
 
+                       DirectoryStream<Path> stream = null;
+                       try {
+                               stream = 
Files.newDirectoryStream(normalizedPath, "*.cwl");
                        } catch (IOException e) {
+                               logger.warn("Path is not correct !");
+                               return;
+                       }
+                       // create stream with parallel capabilities
+                       Stream<Path> paralleStream = 
StreamSupport.stream(stream.spliterator(), true);
 
-                               logger.warn("File not Found !");
+                       paralleStream.forEach(p -> {
+                               Yaml reader = getYamlReader();
 
-                       }
+                               Map cwlFile;
+                               try (FileInputStream file = new 
FileInputStream(path.toFile())) {
+                                       cwlFile = (Map) reader.load(file);
+                                       JsonNode config = createJsonNode(p, 
cwlFile);
+                                       // Creating CWl service Description
+                                       CwlServiceDesc cwlServiceDesc = 
createCWLDesc(config);
+                                       // return the service description
+                                       
callBack.partialResults(Arrays.asList(cwlServiceDesc));
+
+                               } catch (IOException e) {
 
-               });
+                                       logger.warn("File not Found !");
 
-               callBack.finished();
+                               }
 
+                       });
+
+                       callBack.finished();
+               }
+
+       }
+/**
+ * This method checks whether provided path is valid or not and if it's valid 
the it's added to the list
+ * @param defaultPaths arrylist to hold valid paths
+ * @param path 
+ * @param path1 if there is no second path argument this should be set to null
+ */
+       public void addPath(ArrayList<Path> defaultPaths, String path, String 
path1) {
+
+               Path defaultPath;
+               if (path1 == null)
+                       defaultPath = Paths.get(path);
+               else
+                       defaultPath = Paths.get(path, path1);
+
+               if (defaultPath.isAbsolute())
+                       defaultPaths.add(defaultPath);
        }
 
-       private Path getPath() {
-               return 
Paths.get(getConfiguration().getJsonAsObjectNode().get("path").asText());
+       private ArrayList<Path> getPath() {
+               String userInput = 
getConfiguration().getJsonAsObjectNode().get("path").asText();
+               // If user haven't provided a PATH 
+               if (userInput.isEmpty()||userInput==null) {
+                       ArrayList<Path> defaultPaths = new ArrayList<>();
+                       addPath(defaultPaths, DEFAULT_PATH_1, null);
+                       addPath(defaultPaths, DEFAULT_PATH_2, null);
+                       addPath(defaultPaths, XDF_DATA_HOME, COMMONWL);
+                       return defaultPaths;
+               }
+
+               return (ArrayList<Path>) Arrays.asList(Paths.get(userInput));
        }
+
        /**
-        * This method is creating a JsonNode object which contains Tool as a 
map and it's Path,Name
-        * @param p Path of the CWL tool
-        * @param cwlFile Output of the YAML reader
+        * This method is creating a JsonNode object which contains Tool as a 
map
+        * and it's Path,Name
+        * 
+        * @param p
+        *            Path of the CWL tool
+        * @param cwlFile
+        *            Output of the YAML reader
         * @return
         */
        private JsonNode createJsonNode(Path p, Map cwlFile) {
@@ -127,10 +160,14 @@ public class CwlServiceProvider extends 
AbstractConfigurableServiceProvider impl
                ((ObjectNode) root).put(CWL_PATH, p.toString());
                return root;
        }
+
        /**
         * 
-        * This method creates CwlServiceDesc which hold the configuration of 
the tool and the tool name
-        * @param node JsonnNode which holds the final configuration of the tool
+        * This method creates CwlServiceDesc which hold the configuration of 
the
+        * tool and the tool name
+        * 
+        * @param node
+        *            JsonnNode which holds the final configuration of the tool
         * @return
         */
 
@@ -186,7 +223,6 @@ public class CwlServiceProvider extends 
AbstractConfigurableServiceProvider impl
                return false;
        }
 
-       
        private static Configuration getDefaultConfiguration() {
                Configuration c = new Configuration();
                ObjectNode conf = c.getJsonAsObjectNode();

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/626919d5/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactory.java
----------------------------------------------------------------------
diff --git 
a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactory.java
 
b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactory.java
index 3967cc1..0e10086 100644
--- 
a/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactory.java
+++ 
b/taverna-cwl-activity-ui/src/main/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactory.java
@@ -20,6 +20,7 @@ import java.net.URI;
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.taverna.cwl.CwlDumyActivity;
 import org.apache.taverna.scufl2.api.activity.Activity;
 import org.apache.taverna.workbench.configuration.colour.ColourManager;
 import org.apache.taverna.workbench.ui.views.contextualviews.ContextualView;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/626919d5/taverna-cwl-activity-ui/src/main/resources/CWLFiles/customtool1.cwl
----------------------------------------------------------------------
diff --git 
a/taverna-cwl-activity-ui/src/main/resources/CWLFiles/customtool1.cwl 
b/taverna-cwl-activity-ui/src/main/resources/CWLFiles/customtool1.cwl
index cc36f02..b140207 100644
--- a/taverna-cwl-activity-ui/src/main/resources/CWLFiles/customtool1.cwl
+++ b/taverna-cwl-activity-ui/src/main/resources/CWLFiles/customtool1.cwl
@@ -52,7 +52,7 @@ outputs:
     description: this is a short description of output 1
     format: just a string
 
-  - id: ouput_2
+  - id: output_2
     type: String
     label: output 2 testing label
     description: this is a short description of output 2

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/626919d5/taverna-cwl-activity-ui/src/test/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceProviderTest.java
----------------------------------------------------------------------
diff --git 
a/taverna-cwl-activity-ui/src/test/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceProviderTest.java
 
b/taverna-cwl-activity-ui/src/test/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceProviderTest.java
new file mode 100644
index 0000000..cfc50b1
--- /dev/null
+++ 
b/taverna-cwl-activity-ui/src/test/java/org/apache/taverna/cwl/ui/serviceprovider/CwlServiceProviderTest.java
@@ -0,0 +1,19 @@
+package org.apache.taverna.cwl.ui.serviceprovider;
+
+import static org.junit.Assert.*;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class CwlServiceProviderTest {
+
+       @Before
+       public void setUp() throws Exception {
+       }
+
+       @Test
+       public void test() {
+               fail("Not yet implemented");
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/626919d5/taverna-cwl-activity-ui/src/test/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/taverna-cwl-activity-ui/src/test/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactoryTest.java
 
b/taverna-cwl-activity-ui/src/test/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactoryTest.java
new file mode 100644
index 0000000..873dd78
--- /dev/null
+++ 
b/taverna-cwl-activity-ui/src/test/java/org/apache/taverna/cwl/ui/view/CwlActivityContextViewFactoryTest.java
@@ -0,0 +1,25 @@
+package org.apache.taverna.cwl.ui.view;
+
+import static org.junit.Assert.*;
+
+import org.apache.taverna.cwl.CwlDumyActivity;
+import org.apache.taverna.scufl2.api.activity.Activity;
+import org.apache.taverna.workbench.configuration.colour.ColourManager;
+import org.junit.Before;
+import org.junit.Test;
+
+public class CwlActivityContextViewFactoryTest {
+
+       @Before
+       public void setUp() throws Exception {
+               ColourManager  colourManager=null;
+               CwlDumyActivity activity =new  CwlDumyActivity();
+               //CwlContextualView contextualView = new 
CwlContextualView((Activity)activity,colourManager);
+       }
+
+       @Test
+       public void test() {
+               fail("Not yet implemented");
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/626919d5/taverna-cwl-activity/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-cwl-activity/pom.xml b/taverna-cwl-activity/pom.xml
index eaecd6f..10c6ad6 100644
--- a/taverna-cwl-activity/pom.xml
+++ b/taverna-cwl-activity/pom.xml
@@ -1,22 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
+ Licensed to the Apache Software Foundation (ASF) under one or more 
contributor 
+       license agreements. See the NOTICE file distributed with this work for 
additional 
+       information regarding copyright ownership. The ASF licenses this file 
to 
+       You under the Apache License, Version 2.0 (the "License"); you may not 
use 
+       this file except in compliance with the License. You may obtain a copy 
of 
+       the License at http://www.apache.org/licenses/LICENSE-2.0 Unless 
required 
+       by applicable law or agreed to in writing, software distributed under 
the 
+       License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
CONDITIONS 
+       OF ANY KIND, either express or implied. See the License for the 
specific 
+       language governing permissions and limitations under the License.
+        -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
        <modelVersion>4.0.0</modelVersion>
@@ -71,11 +65,11 @@
                        <version>${jackson.version}</version>
                </dependency>
 
- <dependency>
-            <groupId>org.apache.taverna.workbench</groupId>
-            <artifactId>taverna-activity-palette-api</artifactId>
-            <version>${taverna.workbench.version}</version>
-        </dependency>
+               <dependency>
+                       <groupId>org.apache.taverna.workbench</groupId>
+                       <artifactId>taverna-activity-palette-api</artifactId>
+                       <version>${taverna.workbench.version}</version>
+               </dependency>
 
 
                <dependency>
@@ -85,14 +79,14 @@
                        <type>bundle</type>
                </dependency>
        </dependencies>
-<!-- Added these properties to configure new dependencies -->
+       <!-- Added these properties to configure new dependencies -->
        <properties>
-       <taverna.language.version>0.15.1-incubating</taverna.language.version>
+               
<taverna.language.version>0.15.1-incubating</taverna.language.version>
                <taverna.osgi.version>0.2.1-incubating</taverna.osgi.version>
                
<taverna.workbench.version>3.1.0-incubating-SNAPSHOT</taverna.workbench.version>
        </properties>
        <repositories>
-       <repository>
+               <repository>
                        <id>apache.snapshots</id>
                        <name>Apache Snapshot Repository</name>
                        <url>http://repository.apache.org/snapshots</url>
@@ -100,7 +94,7 @@
                                <enabled>false</enabled>
                        </releases>
                </repository>
-               
+
        </repositories>
 
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/626919d5/taverna-cwl-activity/src/main/resources/CWLFiles/customtool1.cwl
----------------------------------------------------------------------
diff --git a/taverna-cwl-activity/src/main/resources/CWLFiles/customtool1.cwl 
b/taverna-cwl-activity/src/main/resources/CWLFiles/customtool1.cwl
index cc36f02..b140207 100644
--- a/taverna-cwl-activity/src/main/resources/CWLFiles/customtool1.cwl
+++ b/taverna-cwl-activity/src/main/resources/CWLFiles/customtool1.cwl
@@ -52,7 +52,7 @@ outputs:
     description: this is a short description of output 1
     format: just a string
 
-  - id: ouput_2
+  - id: output_2
     type: String
     label: output 2 testing label
     description: this is a short description of output 2

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/626919d5/taverna-cwl-activity/src/main/test/java/org/apache/taverna/cwl/CwlActivityFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/taverna-cwl-activity/src/main/test/java/org/apache/taverna/cwl/CwlActivityFactoryTest.java
 
b/taverna-cwl-activity/src/main/test/java/org/apache/taverna/cwl/CwlActivityFactoryTest.java
index d8c3b09..d423991 100644
--- 
a/taverna-cwl-activity/src/main/test/java/org/apache/taverna/cwl/CwlActivityFactoryTest.java
+++ 
b/taverna-cwl-activity/src/main/test/java/org/apache/taverna/cwl/CwlActivityFactoryTest.java
@@ -1,14 +1,21 @@
 package org.apache.taverna.cwl;
 
-
-
 import static org.junit.Assert.assertEquals;
 
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
 
 import org.apache.log4j.Logger;
+import org.apache.taverna.workflowmodel.Edits;
+import org.apache.taverna.workflowmodel.impl.EditsImpl;
+import 
org.apache.taverna.workflowmodel.processor.activity.ActivityConfigurationException;
+import org.apache.taverna.workflowmodel.processor.activity.ActivityInputPort;
+import org.apache.taverna.workflowmodel.processor.activity.ActivityOutputPort;
 import org.junit.Before;
 import org.junit.Test;
 import org.yaml.snakeyaml.Yaml;
@@ -21,43 +28,80 @@ public class CwlActivityFactoryTest {
        private static Logger logger = 
Logger.getLogger(CwlActivityFactoryTest.class);
        CwlActivityFactory cwlActivityFactory;
        public static final String CWL_CONF = "cwl_conf";
-       private  JsonNode root;
-       
+       private JsonNode root;
+
        @Before
        public void setUp() throws Exception {
-               System.out.println("1");
                cwlActivityFactory = new CwlActivityFactory();
+               Edits edits = new EditsImpl();
+               cwlActivityFactory.setEdits(edits);
+
                Yaml reader = new Yaml();
-               ObjectMapper mapper = new  ObjectMapper();
+               ObjectMapper mapper = new ObjectMapper();
                ObjectNode cwlFile = null;
                try {
-                       cwlFile = mapper.valueToTree(reader.load(new 
FileInputStream(getClass().getResource("/CWLFiles/customtool1.cwl").getPath())));
+                       cwlFile = mapper.valueToTree(
+                                       reader.load(new 
FileInputStream(getClass().getResource("/CWLFiles/customtool1.cwl").getPath())));
                } catch (IllegalArgumentException | FileNotFoundException e) {
                        System.out.println(e);
-               } 
-       
-               root =mapper.createObjectNode();
+               }
+
+               root = mapper.createObjectNode();
                ((ObjectNode) root).put(CWL_CONF, cwlFile);
        }
 
        @Test
        public void testSchemaJson() {
                ObjectMapper objectMapper = new ObjectMapper();
-                try {
-                       
assertEquals(cwlActivityFactory.getActivityConfigurationSchema(), 
objectMapper.readTree(getClass().getResource("/schema.json")));
+               try {
+                       
assertEquals(cwlActivityFactory.getActivityConfigurationSchema(),
+                                       
objectMapper.readTree(getClass().getResource("/schema.json")));
                } catch (IOException e) {
                        logger.error(e);
                }
-               
+
        }
-       @Test //FIXME 
+
+       @Test // FIXME
        public void testgetInputPorts() {
-               
-//             try {
-//                     cwlActivityFactory.getInputPorts(root);
-//             } catch (ActivityConfigurationException e) {
-//                     logger.error(e);
-//                     
-//             }
+               Set<ActivityInputPort> set = null;
+               try {
+                       set = cwlActivityFactory.getInputPorts(root);
+               } catch (ActivityConfigurationException e) {
+                       logger.error(e);
+
+               }
+               assertEquals(3, set.size());
+               Map<String, Integer> expected = new HashMap<>();
+               expected.put("input_2", 1);
+               expected.put("input_3", 0);
+               expected.put("input_1", 0);
+               Iterator<ActivityInputPort> itr = set.iterator();
+               while (itr.hasNext()) {
+                       ActivityInputPort input = itr.next();
+                       int expectedDepth = expected.get(input.getName());
+                       assertEquals(expectedDepth, input.getDepth());
+               }
+       }
+
+       @Test // FIXME
+       public void testgetOutputPorts() {
+               Set<ActivityOutputPort> set = null;
+               try {
+                       set = cwlActivityFactory.getOutputPorts(root);
+               } catch (ActivityConfigurationException e) {
+                       logger.error(e);
+
+               }
+               assertEquals(2, set.size());
+               Map<String, Integer> expected = new HashMap<>();
+               expected.put("output_1", 0);
+               expected.put("output_2", 0);
+               Iterator<ActivityOutputPort> itr = set.iterator();
+               while (itr.hasNext()) {
+                       ActivityOutputPort output = itr.next();
+                       int expectedDepth = expected.get(output.getName());
+                       assertEquals(expectedDepth, output.getDepth());
+               }
        }
 }

Reply via email to