You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/06/20 14:09:28 UTC

[tinkerpop] 01/03: Added some tests for g.V()/E() around accepting vertex/edge objects CTR

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit d7b94be3dcec0f4e09333de0b6bf19146640f217
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Thu Jun 20 09:45:15 2019 -0400

    Added some tests for g.V()/E() around accepting vertex/edge objects CTR
---
 gremlin-test/features/map/Vertex.feature           | 53 ++++++++++++++++
 .../tinkerpop/gremlin/AbstractGremlinTest.java     |  6 +-
 .../process/traversal/step/map/VertexTest.java     | 71 ++++++++++++++++++++++
 3 files changed, 129 insertions(+), 1 deletion(-)

diff --git a/gremlin-test/features/map/Vertex.feature b/gremlin-test/features/map/Vertex.feature
index 3f2a63b..ea32638 100644
--- a/gremlin-test/features/map/Vertex.feature
+++ b/gremlin-test/features/map/Vertex.feature
@@ -61,6 +61,20 @@ Feature: Step - V(), E(), out(), in(), both(), inE(), outE(), bothE()
       | v[ripple] |
       | v[peter] |
 
+  Scenario: g_VXv1X_out
+    Given the modern graph
+    And using the parameter v1 defined as "v[marko]"
+    And the traversal of
+      """
+      g.V(v1).out()
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[vadas] |
+      | v[lop] |
+      | v[josh] |
+
   Scenario: g_VX1X_out
     Given the modern graph
     And using the parameter v1Id defined as "v[marko].id"
@@ -141,6 +155,45 @@ Feature: Step - V(), E(), out(), in(), both(), inE(), outE(), bothE()
       | result |
       | e[josh-created->lop] |
 
+  Scenario: g_EXe11X
+    Given the modern graph
+    And using the parameter e11 defined as "e[josh-created->lop]"
+    And the traversal of
+    """
+      g.E(e11)
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | e[josh-created->lop] |
+
+  Scenario: g_EXe7_e11X
+    Given the modern graph
+    And using the parameter e7 defined as "e[marko-knows->vadas]"
+    And using the parameter e11 defined as "e[josh-created->lop]"
+    And the traversal of
+    """
+      g.E(e7,e11)
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | e[marko-knows->vadas] |
+      | e[josh-created->lop] |
+
+  Scenario: g_EXlistXe7_e11XX
+    Given the modern graph
+    And using the parameter l defined as "l[e[marko-knows->vadas],e[josh-created->lop]]"
+    And the traversal of
+    """
+      g.E(l)
+      """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | e[marko-knows->vadas] |
+      | e[josh-created->lop] |
+
   Scenario: g_VX1X_outE
     Given the modern graph
     And using the parameter v1Id defined as "v[marko].id"
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
index c874ae8..9c6db39 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGremlinTest.java
@@ -205,12 +205,16 @@ public abstract class AbstractGremlinTest {
         return (GraphTraversal<Vertex, VertexProperty<Object>>) graph.traversal().V().has("name", vertexName).properties(vertexPropertyKey);
     }
 
+    public Edge convertToEdge(final Graph graph, final String outVertexName, String edgeLabel, final String inVertexName) {
+        return graphProvider.traversal(graph).V().has("name", outVertexName).outE(edgeLabel).as("e").inV().has("name", inVertexName).<Edge>select("e").toList().get(0);
+    }
+
     public Object convertToEdgeId(final String outVertexName, String edgeLabel, final String inVertexName) {
         return convertToEdgeId(graph, outVertexName, edgeLabel, inVertexName);
     }
 
     public Object convertToEdgeId(final Graph graph, final String outVertexName, String edgeLabel, final String inVertexName) {
-        return graphProvider.traversal(graph).V().has("name", outVertexName).outE(edgeLabel).as("e").inV().has("name", inVertexName).<Edge>select("e").toList().get(0).id();
+        return convertToEdge(graph, outVertexName, edgeLabel, inVertexName).id();
     }
 
     /**
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexTest.java
index 7908952..ec3c721 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexTest.java
@@ -42,8 +42,10 @@ import java.util.Set;
 
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
 import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.SINK;
+import static org.hamcrest.Matchers.containsInAnyOrder;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
 /**
@@ -60,6 +62,8 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Vertex, Vertex> get_g_V();
 
+    public abstract Traversal<Vertex, Vertex> get_g_VXv1X_out(final Vertex v1);
+
     public abstract Traversal<Vertex, Vertex> get_g_VX1X_out(final Object v1Id);
 
     public abstract Traversal<Vertex, Vertex> get_g_VX2X_in(final Object v2Id);
@@ -68,8 +72,14 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
 
     public abstract Traversal<Edge, Edge> get_g_E();
 
+    public abstract Traversal<Edge, Edge> get_g_EXe11X(final Edge e11);
+
     public abstract Traversal<Edge, Edge> get_g_EX11X(final Object e11Id);
 
+    public abstract Traversal<Edge, Edge> get_g_EXlistXe7_e11XX(final Edge e7, final Edge e11);
+
+    public abstract Traversal<Edge, Edge> get_g_EXe7_e11X(final Edge e7, final Edge e11);
+
     public abstract Traversal<Vertex, Edge> get_g_VX1X_outE(final Object v1Id);
 
     public abstract Traversal<Vertex, Edge> get_g_VX2X_inE(final Object v2Id);
@@ -160,6 +170,13 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
         assert_g_v1_out(traversal);
     }
 
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_VXv1X_out() {
+        final Traversal<Vertex, Vertex> traversal = get_g_VXv1X_out(convertToVertex(graph, "marko"));
+        assert_g_v1_out(traversal);
+    }
+
     private void assert_g_v1_out(final Traversal<Vertex, Vertex> traversal) {
         printTraversalForm(traversal);
         int counter = 0;
@@ -239,6 +256,40 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
 
     @Test
     @LoadGraphWith(MODERN)
+    public void g_EXe11X() {
+        final Edge edge = convertToEdge(graph, "josh", "created", "lop");
+        final Traversal<Edge, Edge> traversal = get_g_EXe11X(edge);
+        assert_g_EX11X(edge.id(), traversal);
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_EXe7_e11X() {
+        final Edge e7 = convertToEdge(graph, "marko", "knows", "vadas");
+        final Edge e11 = convertToEdge(graph, "josh", "created", "lop");
+        final Traversal<Edge, Edge> traversal = get_g_EXe7_e11X(e7,e11);
+
+        printTraversalForm(traversal);
+        final List<Edge> list = traversal.toList();
+        assertEquals(2, list.size());
+        assertThat(list, containsInAnyOrder(e7, e11));
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
+    public void g_EXlistXe7_e11XX() {
+        final Edge e7 = convertToEdge(graph, "marko", "knows", "vadas");
+        final Edge e11 = convertToEdge(graph, "josh", "created", "lop");
+        final Traversal<Edge, Edge> traversal = get_g_EXlistXe7_e11XX(e7,e11);
+
+        printTraversalForm(traversal);
+        final List<Edge> list = traversal.toList();
+        assertEquals(2, list.size());
+        assertThat(list, containsInAnyOrder(e7, e11));
+    }
+
+    @Test
+    @LoadGraphWith(MODERN)
     public void g_EX11AsStringX() {
         final Object edgeId = convertToEdgeId("josh", "created", "lop");
         final Traversal<Edge, Edge> traversal = get_g_EX11X(edgeId.toString());
@@ -615,6 +666,11 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
         }
 
         @Override
+        public Traversal<Vertex, Vertex> get_g_VXv1X_out(final Vertex v1) {
+            return g.V(v1).out();
+        }
+
+        @Override
         public Traversal<Vertex, Vertex> get_g_VX1X_out(final Object v1Id) {
             return g.V(v1Id).out();
         }
@@ -745,6 +801,21 @@ public abstract class VertexTest extends AbstractGremlinProcessTest {
         }
 
         @Override
+        public Traversal<Edge, Edge> get_g_EXe11X(final Edge e11) {
+            return g.E(e11);
+        }
+
+        @Override
+        public Traversal<Edge, Edge> get_g_EXlistXe7_e11XX(final Edge e7, final Edge e11) {
+            return g.E(Arrays.asList(e7, e11));
+        }
+
+        @Override
+        public Traversal<Edge, Edge> get_g_EXe7_e11X(final Edge e7, final Edge e11) {
+            return g.E(e7, e11);
+        }
+
+        @Override
         public Traversal<Vertex, String> get_g_V_hasLabelXpersonX_V_hasLabelXsoftwareX_name() {
             return g.V().hasLabel("person").V().hasLabel("software").values("name");
         }