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 2015/04/10 17:15:53 UTC
[2/2] incubator-tinkerpop git commit: Add edge iteration tests to
validate different types being passed to it for filtering TINKERPOP3-581
Add edge iteration tests to validate different types being passed to it for filtering TINKERPOP3-581
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/d564026a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/d564026a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/d564026a
Branch: refs/heads/TINKERPOP3-581
Commit: d564026a03b92cd9b2c0c4f3261c0c781e04e9cd
Parents: 866f6e9
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Apr 10 11:15:08 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Apr 10 11:15:08 2015 -0400
----------------------------------------------------------------------
.../tinkerpop/gremlin/structure/GraphTest.java | 546 ++++++++++++++++++-
.../tinkerpop/gremlin/structure/VertexTest.java | 95 ++++
.../tinkergraph/TinkerGraphProvider.java | 10 +
3 files changed, 650 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d564026a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java
index f19902f..a059f0b 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java
@@ -132,6 +132,7 @@ public class GraphTest extends AbstractGremlinTest {
@FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_NUMERIC_IDS)
public void shouldAddVertexWithUserSuppliedNumericId() {
graph.addVertex(T.id, 1000l);
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(1000l).next();
assertEquals(1000l, v.id());
@@ -144,6 +145,7 @@ public class GraphTest extends AbstractGremlinTest {
@FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_STRING_IDS)
public void shouldAddVertexWithUserSuppliedStringId() {
graph.addVertex(T.id, "1000");
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices("1000").next();
assertEquals("1000", v.id());
@@ -157,6 +159,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldAddVertexWithUserSuppliedUuidId() {
final UUID uuid = UUID.randomUUID();
graph.addVertex(T.id, uuid);
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(uuid).next();
assertEquals(uuid, v.id());
@@ -170,6 +173,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldAddVertexWithUserSuppliedAnyIdUsingUuid() {
final UUID uuid = UUID.randomUUID();
graph.addVertex(T.id, uuid);
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(uuid).next();
assertEquals(uuid, v.id());
@@ -183,6 +187,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldAddVertexWithUserSuppliedAnyIdUsingString() {
final UUID uuid = UUID.randomUUID();
graph.addVertex(T.id, uuid.toString());
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(uuid.toString()).next();
assertEquals(uuid.toString(), v.id());
@@ -198,8 +203,9 @@ public class GraphTest extends AbstractGremlinTest {
// this is different from "FEATURE_CUSTOM_IDS" as TinkerGraph does not define a specific id class
// (i.e. TinkerId) for the identifier.
- IoTest.CustomId customId = new IoTest.CustomId("test", uuid);
+ final IoTest.CustomId customId = new IoTest.CustomId("test", uuid);
graph.addVertex(T.id, customId);
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(customId).next();
assertEquals(customId, v.id());
@@ -212,6 +218,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithUuidIdSupportUsingVertex() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, UUID.randomUUID()) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1).next();
assertEquals(v1.id(), v.id());
@@ -224,6 +231,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithUuidIdSupportUsingVertexId() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, UUID.randomUUID()) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1.id()).next();
assertEquals(v1.id(), v.id());
@@ -236,6 +244,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithUuidIdSupportUsingStringRepresentation() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, UUID.randomUUID()) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1.id().toString()).next();
assertEquals(v1.id(), v.id());
@@ -249,6 +258,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, UUID.randomUUID()) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, UUID.randomUUID()) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1, v2)));
});
@@ -261,6 +271,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, UUID.randomUUID()) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, UUID.randomUUID()) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1.id(), v2.id())));
});
@@ -273,6 +284,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, UUID.randomUUID()) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, UUID.randomUUID()) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1.id().toString(), v2.id().toString())));
});
@@ -283,6 +295,7 @@ public class GraphTest extends AbstractGremlinTest {
@FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_CUSTOM_IDS)
public void shouldIterateVerticesWithCustomIdSupportUsingVertex() {
final Vertex v1 = graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1).next();
assertEquals(v1.id(), v.id());
@@ -294,6 +307,7 @@ public class GraphTest extends AbstractGremlinTest {
@FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_CUSTOM_IDS)
public void shouldIterateVerticesWithCustomIdSupportUsingVertexId() {
final Vertex v1 = graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1.id()).next();
assertEquals(v1.id(), v.id());
@@ -305,6 +319,7 @@ public class GraphTest extends AbstractGremlinTest {
@FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_CUSTOM_IDS)
public void shouldIterateVerticesWithCustomIdSupportUsingStringRepresentation() {
final Vertex v1 = graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1.id().toString()).next();
assertEquals(v1.id(), v.id());
@@ -317,6 +332,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithCustomIdSupportUsingVertices() {
final Vertex v1 = graph.addVertex();
final Vertex v2 = graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1, v2)));
});
@@ -328,6 +344,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithCustomIdSupportUsingVertexIds() {
final Vertex v1 = graph.addVertex();
final Vertex v2 = graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1.id(), v2.id())));
});
@@ -339,6 +356,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithCustomIdSupportUsingStringRepresentations() {
final Vertex v1 = graph.addVertex();
final Vertex v2 = graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1.id().toString(), v2.id().toString())));
});
@@ -350,6 +368,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithNumericIdSupportUsingVertex() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1).next();
assertEquals(v1.id(), v.id());
@@ -362,6 +381,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithNumericIdSupportUsingVertexId() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1.id()).next();
assertEquals(v1.id(), v.id());
@@ -374,6 +394,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithNumericIdSupportUsingLongRepresentation() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(Long.parseLong(v1.id().toString())).next();
assertEquals(v1.id(), v.id());
@@ -386,6 +407,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithNumericIdSupportUsingIntegerRepresentation() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(Integer.parseInt(v1.id().toString())).next();
assertEquals(v1.id(), v.id());
@@ -398,6 +420,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithNumericIdSupportUsingFloatRepresentation() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(Float.parseFloat(v1.id().toString())).next();
assertEquals(v1.id(), v.id());
@@ -410,6 +433,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithNumericIdSupportUsingDoubleRepresentation() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(Double.parseDouble(v1.id().toString())).next();
assertEquals(v1.id(), v.id());
@@ -422,6 +446,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithNumericIdSupportUsingStringRepresentation() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1.id().toString()).next();
assertEquals(v1.id(), v.id());
@@ -435,6 +460,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 2l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1, v2)));
});
@@ -447,6 +473,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 2l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1.id(), v2.id())));
});
@@ -459,6 +486,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 2l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(Long.parseLong(v1.id().toString()), Long.parseLong(v2.id().toString()))));
});
@@ -471,6 +499,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 2l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(Integer.parseInt(v1.id().toString()), Integer.parseInt(v2.id().toString()))));
});
@@ -483,6 +512,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 2l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(Float.parseFloat(v1.id().toString()), Float.parseFloat(v2.id().toString()))));
});
@@ -495,6 +525,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 2l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(Double.parseDouble(v1.id().toString()), Double.parseDouble(v2.id().toString()))));
});
@@ -507,6 +538,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 1l) : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, 2l) : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1.id().toString(), v2.id().toString())));
});
@@ -546,6 +578,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithStringIdSupportUsingVertex() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, "1") : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1).next();
assertEquals(v1.id(), v.id());
@@ -558,6 +591,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithStringIdSupportUsingVertexId() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, "1") : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1.id()).next();
assertEquals(v1.id(), v.id());
@@ -570,6 +604,7 @@ public class GraphTest extends AbstractGremlinTest {
public void shouldIterateVerticesWithStringIdSupportUsingStringRepresentation() {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, "1") : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
final Vertex v = graph.vertices(v1.id().toString()).next();
assertEquals(v1.id(), v.id());
@@ -583,6 +618,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, "1") : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, "2") : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1, v2)));
});
@@ -595,6 +631,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, "1") : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, "2") : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1.id(), v2.id())));
});
@@ -607,6 +644,7 @@ public class GraphTest extends AbstractGremlinTest {
// if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
final Vertex v1 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, "1") : graph.addVertex();
final Vertex v2 = graph.features().vertex().supportsUserSuppliedIds() ? graph.addVertex(T.id, "2") : graph.addVertex();
+ graph.addVertex();
tryCommit(graph, graph -> {
assertEquals(2, IteratorUtils.count(graph.vertices(v1.id().toString(), v2.id().toString())));
});
@@ -1028,4 +1066,510 @@ public class GraphTest extends AbstractGremlinTest {
graphProvider.clear(reopenedGraph, graphProvider.standardGraphConfiguration(this.getClass(), name.getMethodName(), null));
}
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_UUID_IDS)
+ public void shouldIterateEdgesWithUuidIdSupportUsingEdge() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, UUID.randomUUID()) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_UUID_IDS)
+ public void shouldIterateEdgesWithUuidIdSupportUsingEdgeId() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, UUID.randomUUID()) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1.id()).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_UUID_IDS)
+ public void shouldIterateEdgesWithUuidIdSupportUsingStringRepresentation() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, UUID.randomUUID()) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1.id().toString()).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_UUID_IDS)
+ public void shouldIterateEdgesWithUuidIdSupportUsingEdges() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, UUID.randomUUID()) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, UUID.randomUUID()) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(e1, e2)));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_UUID_IDS)
+ public void shouldIterateEdgesWithUuidIdSupportUsingEdgeIds() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, UUID.randomUUID()) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, UUID.randomUUID()) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(e1.id(), e2.id())));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_UUID_IDS)
+ public void shouldIterateEdgesWithUuidIdSupportUsingStringRepresentations() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, UUID.randomUUID()) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, UUID.randomUUID()) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(e1.id().toString(), e2.id().toString())));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_CUSTOM_IDS)
+ public void shouldIterateEdgesWithCustomIdSupportUsingEdge() {
+ final Vertex v = graph.addVertex();
+ final Edge e1 = v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_CUSTOM_IDS)
+ public void shouldIterateEdgesWithCustomIdSupportUsingEdgeId() {
+ final Vertex v = graph.addVertex();
+ final Edge e1 = v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1.id()).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_CUSTOM_IDS)
+ public void shouldIterateEdgesWithCustomIdSupportUsingStringRepresentation() {
+ final Vertex v = graph.addVertex();
+ final Edge e1 = v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1.id().toString()).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_CUSTOM_IDS)
+ public void shouldIterateEdgesWithCustomIdSupportUsingEdges() {
+ final Vertex v = graph.addVertex();
+ final Edge e1 = v.addEdge("self", v);
+ final Edge e2 = v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.vertices(e1, e2)));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_CUSTOM_IDS)
+ public void shouldIterateEdgesWithCustomIdSupportUsingEdgeIds() {
+ final Vertex v = graph.addVertex();
+ final Edge e1 = v.addEdge("self", v);
+ final Edge e2 = v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.vertices(e1.id(), e2.id())));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_CUSTOM_IDS)
+ public void shouldIterateEdgesWithCustomIdSupportUsingStringRepresentations() {
+ final Vertex v = graph.addVertex();
+ final Edge e1 = v.addEdge("self", v);
+ final Edge e2 = v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.vertices(e1.id().toString(), e2.id().toString())));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingEdge() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingEdgeId() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1.id()).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingLongRepresentation() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(Long.parseLong(e1.id().toString())).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingIntegerRepresentation() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(Integer.parseInt(e1.id().toString())).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingFloatRepresentation() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(Float.parseFloat(e1.id().toString())).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingDoubleRepresentation() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(Double.parseDouble(e1.id().toString())).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingStringRepresentation() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1.id().toString()).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingVertices() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 2l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(e1, e2)));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingEdgeIds() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 2l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(e1.id(), e2.id())));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingLongRepresentations() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 2l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(Long.parseLong(e1.id().toString()), Long.parseLong(e2.id().toString()))));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingIntegerRepresentations() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 2l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(Integer.parseInt(e1.id().toString()), Integer.parseInt(e2.id().toString()))));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingFloatRepresentations() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 2l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(Float.parseFloat(e1.id().toString()), Float.parseFloat(e2.id().toString()))));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingDoubleRepresentations() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 2l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(Double.parseDouble(e1.id().toString()), Double.parseDouble(e2.id().toString()))));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldIterateEdgesWithNumericIdSupportUsingStringRepresentations() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 1l) : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, 2l) : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(e1.id().toString(), e2.id().toString())));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ public void shouldNotMixTypesForGettingSpecificEdgesWithEdgeFirst() {
+ final Vertex v = graph.addVertex();
+ final Edge e1 = v.addEdge("self", v);
+ try {
+ graph.edges(e1, graphProvider.convertId("1"));
+ fail("Should have thrown an exception because id arguments were mixed.");
+ } catch (Exception ex) {
+ final Exception expected = Graph.Exceptions.idArgsMustBeEitherIdOrElement();
+ assertEquals(expected.getClass(), ex.getClass());
+ assertEquals(expected.getMessage(), ex.getMessage());
+ }
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ public void shouldNotMixTypesForGettingSpecificEdgesWithStringFirst() {
+ final Vertex v = graph.addVertex();
+ final Edge e1 = v.addEdge("self", v);
+ try {
+ graph.edges(graphProvider.convertId("1"), e1);
+ fail("Should have thrown an exception because id arguments were mixed.");
+ } catch (Exception ex) {
+ final Exception expected = Graph.Exceptions.idArgsMustBeEitherIdOrElement();
+ assertEquals(expected.getClass(), ex.getClass());
+ assertEquals(expected.getMessage(), ex.getMessage());
+ }
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_STRING_IDS)
+ public void shouldIterateEdgesWithStringIdSupportUsingEdge() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, "1") : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_STRING_IDS)
+ public void shouldIterateEdgesWithStringIdSupportUsingEdgeId() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, "1") : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1.id()).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_STRING_IDS)
+ public void shouldIterateEdgesWithStringIdSupportUsingStringRepresentation() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, "1") : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(e1.id().toString()).next();
+ assertEquals(e1.id(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_STRING_IDS)
+ public void shouldIterateEdgesWithStringIdSupportUsingEdges() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, "1") : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, "2") : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(e1, e2)));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_STRING_IDS)
+ public void shouldIterateEdgesWithStringIdSupportUsingEdgeIds() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, "1") : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, "2") : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(e1.id(), e2.id())));
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_STRING_IDS)
+ public void shouldIterateEdgesWithStringIdSupportUsingStringRepresentations() {
+ // if the graph supports id assigned, it should allow it. if the graph does not, it will generate one
+ final Vertex v = graph.addVertex();
+ final Edge e1 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, "1") : v.addEdge("self", v);
+ final Edge e2 = graph.features().edge().supportsUserSuppliedIds() ? v.addEdge("self", v, T.id, "2") : v.addEdge("self", v);
+ v.addEdge("self", v);
+ tryCommit(graph, graph -> {
+ assertEquals(2, IteratorUtils.count(graph.edges(e1.id().toString(), e2.id().toString())));
+ });
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d564026a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java
index c281e27..de2a20e 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/VertexTest.java
@@ -42,6 +42,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Set;
+import java.util.UUID;
import java.util.function.Consumer;
import static org.apache.tinkerpop.gremlin.structure.Graph.Features.PropertyFeatures.*;
@@ -55,6 +56,100 @@ import static org.junit.Assert.*;
@RunWith(Enclosed.class)
public class VertexTest {
+ public static class AddEdgeTest extends AbstractGremlinTest {
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_USER_SUPPLIED_IDS)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_NUMERIC_IDS)
+ public void shouldAddEdgeWithUserSuppliedNumericId() {
+ final Vertex v = graph.addVertex();
+ v.addEdge("self", v, T.id, 1000l);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(1000l).next();
+ assertEquals(1000l, e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_USER_SUPPLIED_IDS)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_STRING_IDS)
+ public void shouldAddEdgeWithUserSuppliedStringId() {
+ final Vertex v = graph.addVertex();
+ v.addEdge("self", v, T.id, "1000");
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges("1000").next();
+ assertEquals("1000", e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_USER_SUPPLIED_IDS)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_UUID_IDS)
+ public void shouldAddEdgeWithUserSuppliedUuidId() {
+ final UUID uuid = UUID.randomUUID();
+ final Vertex v = graph.addVertex();
+ v.addEdge("self", v, T.id, uuid);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(uuid).next();
+ assertEquals(uuid, e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_USER_SUPPLIED_IDS)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ANY_IDS)
+ public void shouldAddEdgeWithUserSuppliedAnyIdUsingUuid() {
+ final UUID uuid = UUID.randomUUID();
+ final Vertex v = graph.addVertex();
+ v.addEdge("self", v, T.id, uuid);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(uuid).next();
+ assertEquals(uuid, e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_USER_SUPPLIED_IDS)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ANY_IDS)
+ public void shouldAddEdgeWithUserSuppliedAnyIdUsingString() {
+ final UUID uuid = UUID.randomUUID();
+ final Vertex v = graph.addVertex();
+ v.addEdge("self", v, T.id, uuid.toString());
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(uuid.toString()).next();
+ assertEquals(uuid.toString(), e.id());
+ });
+ }
+
+ @Test
+ @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ADD_EDGES)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_USER_SUPPLIED_IDS)
+ @FeatureRequirement(featureClass = Graph.Features.EdgeFeatures.class, feature = Graph.Features.EdgeFeatures.FEATURE_ANY_IDS)
+ public void shouldAddEdgeWithUserSuppliedAnyIdUsingAnyObject() {
+ final UUID uuid = UUID.randomUUID();
+
+ // this is different from "FEATURE_CUSTOM_IDS" as TinkerGraph does not define a specific id class
+ // (i.e. TinkerId) for the identifier.
+ final IoTest.CustomId customId = new IoTest.CustomId("test", uuid);
+ final Vertex v = graph.addVertex();
+ v.addEdge("self", v, T.id, customId);
+ tryCommit(graph, graph -> {
+ final Edge e = graph.edges(customId).next();
+ assertEquals(customId, e.id());
+ });
+ }
+ }
+
@ExceptionCoverage(exceptionClass = Edge.Exceptions.class, methods = {
"userSuppliedIdsNotSupported"
})
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/d564026a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java
index 596e565..65db06a 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/TinkerGraphProvider.java
@@ -89,11 +89,21 @@ public class TinkerGraphProvider extends AbstractGraphProvider {
add("shouldIterateVerticesWithNumericIdSupportUsingFloatRepresentations");
add("shouldIterateVerticesWithNumericIdSupportUsingStringRepresentation");
add("shouldIterateVerticesWithNumericIdSupportUsingStringRepresentations");
+ add("shouldIterateEdgesWithNumericIdSupportUsingDoubleRepresentation");
+ add("shouldIterateEdgesWithNumericIdSupportUsingDoubleRepresentations");
+ add("shouldIterateEdgesWithNumericIdSupportUsingIntegerRepresentation");
+ add("shouldIterateEdgesWithNumericIdSupportUsingIntegerRepresentations");
+ add("shouldIterateEdgesWithNumericIdSupportUsingFloatRepresentation");
+ add("shouldIterateEdgesWithNumericIdSupportUsingFloatRepresentations");
+ add("shouldIterateEdgesWithNumericIdSupportUsingStringRepresentation");
+ add("shouldIterateEdgesWithNumericIdSupportUsingStringRepresentations");
}};
final Set<String> testsThatNeedUuidIdManager = new HashSet<String>(){{
add("shouldIterateVerticesWithUuidIdSupportUsingStringRepresentation");
add("shouldIterateVerticesWithUuidIdSupportUsingStringRepresentations");
+ add("shouldIterateEdgesWithUuidIdSupportUsingStringRepresentation");
+ add("shouldIterateEdgesWithUuidIdSupportUsingStringRepresentations");
}};
if (testsThatNeedLongIdManager.contains(testMethodName))