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 <[email protected]>
Authored: Mon Aug 29 19:05:33 2016 +0100
Committer: Stian Soiland-Reyes <[email protected]>
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 {

Reply via email to