[02/10] tinkerpop git commit: added test cases that verify that nested collection detachment works for Lists, Sets, and Maps (and any arbitrary nest of those collections within themselves).

2017-06-30 Thread okram
added test cases that verify that nested collection detachment works for Lists, 
Sets, and Maps (and any arbitrary nest of those collections within themselves).


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d16d0df5
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d16d0df5
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d16d0df5

Branch: refs/heads/tp32
Commit: d16d0df5c64f6da04c6a11c9403273f30eb264d4
Parents: 6e2ebb5
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 14:14:22 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 14:14:22 2017 -0600

--
 .../util/detached/DetachedVertexTest.java   | 49 ++
 .../util/reference/ReferenceVertexTest.java | 53 
 2 files changed, 102 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d16d0df5/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
--
diff --git 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
index 582b9a5..93cb46f 100644
--- 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
+++ 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
@@ -22,6 +22,7 @@ import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
 import org.apache.tinkerpop.gremlin.FeatureRequirement;
 import org.apache.tinkerpop.gremlin.FeatureRequirementSet;
 import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
@@ -39,6 +40,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.inE;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
@@ -325,4 +327,51 @@ public class DetachedVertexTest extends 
AbstractGremlinTest {
 });
 assertEquals(1, dogTimes.get());
 }
+
+@Test
+@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
+@FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY)
+public void shouldDetachCollections() {
+// single element
+final Vertex vertex = DetachedFactory.detach(g.V().has("name", 
"marko").next(), true);
+assertTrue(vertex instanceof DetachedVertex);
+// list nest
+final List vertices = 
DetachedFactory.detach(g.V().hasLabel("software").fold().next(), true);
+for (final Vertex v : vertices) {
+assertTrue(v instanceof DetachedVertex);
+assertEquals("java", v.value("lang"));
+}
+// double nested list
+final List lists = 
DetachedFactory.detach(g.V().hasLabel("software").fold().fold().next(), true);
+for (final Vertex v : lists.get(0)) {
+assertTrue(v instanceof DetachedVertex);
+assertEquals("java", v.value("lang"));
+}
+// double nested list to set
+final Set set = 
DetachedFactory.detach(g.V().hasLabel("software").fold().toSet(), true);
+for (final Vertex v : set.iterator().next()) {
+assertTrue(v instanceof DetachedVertex);
+assertEquals("java", v.value("lang"));
+}
+// map keys and values
+Map map = 
DetachedFactory.detach(g.V().hasLabel("software").group().by().by(inE().fold()).next(),
 true);
+for (final Map.Entry entry : map.entrySet()) {
+assertTrue(entry.getKey() instanceof DetachedVertex);
+assertEquals("java", entry.getKey().value("lang"));
+for (final Edge edge : entry.getValue()) {
+assertTrue(edge instanceof DetachedEdge);
+assertTrue(edge.property("weight").isPresent());
+}
+}
+// map keys and values as sideEffect
+map = 
DetachedFactory.detach(g.V().hasLabel("software").group("m").by().by(inE().fold()).identity().cap("m").next(),
 true);
+for (final Map.Entry entry : map.entrySet()) {
+assertTrue(entry.getKey() instanceof DetachedVertex);
+assertEquals("java", entry.getKey().value("lang"));
+for (final Edge edge : entry.getValue()) {
+  

tinkerpop git commit: added test cases that verify that nested collection detachment works for Lists, Sets, and Maps (and any arbitrary nest of those collections within themselves).

2017-06-27 Thread okram
Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1701 6e2ebb52f -> d16d0df5c


added test cases that verify that nested collection detachment works for Lists, 
Sets, and Maps (and any arbitrary nest of those collections within themselves).


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d16d0df5
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d16d0df5
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d16d0df5

Branch: refs/heads/TINKERPOP-1701
Commit: d16d0df5c64f6da04c6a11c9403273f30eb264d4
Parents: 6e2ebb5
Author: Marko A. Rodriguez 
Authored: Tue Jun 27 14:14:22 2017 -0600
Committer: Marko A. Rodriguez 
Committed: Tue Jun 27 14:14:22 2017 -0600

--
 .../util/detached/DetachedVertexTest.java   | 49 ++
 .../util/reference/ReferenceVertexTest.java | 53 
 2 files changed, 102 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d16d0df5/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
--
diff --git 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
index 582b9a5..93cb46f 100644
--- 
a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
+++ 
b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedVertexTest.java
@@ -22,6 +22,7 @@ import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
 import org.apache.tinkerpop.gremlin.FeatureRequirement;
 import org.apache.tinkerpop.gremlin.FeatureRequirementSet;
 import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.structure.Edge;
 import org.apache.tinkerpop.gremlin.structure.Graph;
 import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
@@ -39,6 +40,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.inE;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
@@ -325,4 +327,51 @@ public class DetachedVertexTest extends 
AbstractGremlinTest {
 });
 assertEquals(1, dogTimes.get());
 }
+
+@Test
+@LoadGraphWith(LoadGraphWith.GraphData.MODERN)
+@FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY)
+public void shouldDetachCollections() {
+// single element
+final Vertex vertex = DetachedFactory.detach(g.V().has("name", 
"marko").next(), true);
+assertTrue(vertex instanceof DetachedVertex);
+// list nest
+final List vertices = 
DetachedFactory.detach(g.V().hasLabel("software").fold().next(), true);
+for (final Vertex v : vertices) {
+assertTrue(v instanceof DetachedVertex);
+assertEquals("java", v.value("lang"));
+}
+// double nested list
+final List lists = 
DetachedFactory.detach(g.V().hasLabel("software").fold().fold().next(), true);
+for (final Vertex v : lists.get(0)) {
+assertTrue(v instanceof DetachedVertex);
+assertEquals("java", v.value("lang"));
+}
+// double nested list to set
+final Set set = 
DetachedFactory.detach(g.V().hasLabel("software").fold().toSet(), true);
+for (final Vertex v : set.iterator().next()) {
+assertTrue(v instanceof DetachedVertex);
+assertEquals("java", v.value("lang"));
+}
+// map keys and values
+Map map = 
DetachedFactory.detach(g.V().hasLabel("software").group().by().by(inE().fold()).next(),
 true);
+for (final Map.Entry entry : map.entrySet()) {
+assertTrue(entry.getKey() instanceof DetachedVertex);
+assertEquals("java", entry.getKey().value("lang"));
+for (final Edge edge : entry.getValue()) {
+assertTrue(edge instanceof DetachedEdge);
+assertTrue(edge.property("weight").isPresent());
+}
+}
+// map keys and values as sideEffect
+map = 
DetachedFactory.detach(g.V().hasLabel("software").group("m").by().by(inE().fold()).identity().cap("m").next(),
 true);
+for (final Map.Entry entry : map.entrySet()) {
+assertTrue(entry.getKey() instanceof DetachedVertex);
+