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 2016/09/07 23:49:34 UTC

[6/7] incubator-taverna-language git commit: test resolveStream()

test resolveStream()

.. and use correct path in flatMap() !


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/bc6f8a23
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/bc6f8a23
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/bc6f8a23

Branch: refs/heads/master
Commit: bc6f8a23a43181c23f269ca8997d8c1c9af5dbd2
Parents: 135155e
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Mon Aug 29 19:05:33 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Mon Aug 29 19:05:33 2016 +0100

----------------------------------------------------------------------
 .../apache/taverna/databundle/DataBundles.java  |  2 +-
 .../taverna/databundle/TestDataBundles.java     | 40 ++++++++++++++++++++
 2 files changed, 41 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/bc6f8a23/taverna-databundle/src/main/java/org/apache/taverna/databundle/DataBundles.java
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/main/java/org/apache/taverna/databundle/DataBundles.java b/taverna-databundle/src/main/java/org/apache/taverna/databundle/DataBundles.java
index 9db6a2c..897bc15 100644
--- a/taverna-databundle/src/main/java/org/apache/taverna/databundle/DataBundles.java
+++ b/taverna-databundle/src/main/java/org/apache/taverna/databundle/DataBundles.java
@@ -702,7 +702,7 @@ public class DataBundles extends Bundles {
 				return Files.walk(path)
 						// avoid re-recursion
 						.filter(p -> !Files.isDirectory(p)) 
-						.flatMap(p -> resolveItemAsStream(path, type, options));
+						.flatMap(p -> resolveItemAsStream(p, type, options));
 			} catch (IOException e) {
 				throw new UncheckedIOException(e);
 			}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/bc6f8a23/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestDataBundles.java
----------------------------------------------------------------------
diff --git a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestDataBundles.java b/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestDataBundles.java
index 6c6ab4b..0a67b95 100644
--- a/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestDataBundles.java
+++ b/taverna-databundle/src/test/java/org/apache/taverna/databundle/TestDataBundles.java
@@ -43,6 +43,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.stream.Stream;
 
 import org.apache.taverna.databundle.DataBundles.ResolveOptions;
 import org.apache.taverna.robundle.Bundle;
@@ -603,6 +604,45 @@ public class TestDataBundles {
 		assertEquals("test0,2", resolved.get(0).get(2));
 		assertEquals("test2,0", resolved.get(2).get(0));		
     }        
+
+
+    @Test
+    public void resolveStream() throws Exception {
+		Path inputs = DataBundles.getInputs(dataBundle);
+		Path list = DataBundles.getPort(inputs, "in1");
+		DataBundles.createList(list);
+		
+		Path nested0 = DataBundles.newListItem(list);
+		DataBundles.newListItem(nested0);		
+		DataBundles.setStringValue(DataBundles.newListItem(nested0), "test0,0");
+		DataBundles.setStringValue(DataBundles.newListItem(nested0), "test0,1");
+		DataBundles.setStringValue(DataBundles.newListItem(nested0), "test0,2");
+		DataBundles.setError(DataBundles.newListItem(nested0), "Ignore me", "This error is hidden");
+		Path nested1 = DataBundles.newListItem(list);
+		DataBundles.newListItem(nested1); // empty
+		Path nested2 = DataBundles.newListItem(list);
+		DataBundles.newListItem(nested2);
+		DataBundles.setStringValue(DataBundles.newListItem(nested2), "test2,0");
+		DataBundles.setReference(DataBundles.newListItem(nested2), URI.create("http://example.com/"));
+		
+		
+
+		assertEquals(6, DataBundles.resolveAsStream(list, Object.class).count());		
+		assertEquals(6, DataBundles.resolveAsStream(list, Path.class).count());
+		assertEquals(5, DataBundles.resolveAsStream(list, URI.class).count());
+		assertEquals(1, DataBundles.resolveAsStream(list, URL.class).count());
+		assertEquals(0, DataBundles.resolveAsStream(list, File.class).count());
+		assertEquals(1, DataBundles.resolveAsStream(list, ErrorDocument.class).count());
+		// Let's have a look at one of the types in detail
+		assertEquals(4, DataBundles.resolveAsStream(list, String.class).count());		
+		Stream<String> resolved = DataBundles.resolveAsStream(list, String.class);
+		Object[] strings = resolved.sorted().map(t -> t.replace("test", "X")).toArray();
+		// NOTE: We can only assume the below order because we used .sorted()
+		assertEquals("X0,0", strings[0]);
+		assertEquals("X0,1", strings[1]);
+		assertEquals("X0,2", strings[2]);
+		assertEquals("X2,0", strings[3]);
+    }        
     
     @Test
     public void resolveURIs() throws Exception {