[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).
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. RodriguezAuthored: 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).
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. RodriguezAuthored: 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); +