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");
}