@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 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_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_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 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_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 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 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 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 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 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) @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 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_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 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 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 = EdgeFeatures.class, feature = EdgeFeatures.FEATURE_USER_SUPPLIED_IDS, supported = false) public void shouldNotAllowAnyIdsIfUserSuppliedIdsIsFalse() throws Exception { assertFalse(graph.features().edge().willAllowId(graphProvider.convertId(99999943835l, Edge.class))); }
@Override protected void sideEffect(final Traverser.Admin<Edge> traverser) { parentGraphFeatures = ((Graph) traversal.getGraph().get()).features().vertex(); if (null == subgraph) { subgraph = traverser.sideEffects(sideEffectKey); if (!subgraph.features().vertex().supportsUserSuppliedIds() || !subgraph.features().edge().supportsUserSuppliedIds()) throw new IllegalArgumentException("The provided subgraph must support user supplied ids for vertices and edges: " + this.subgraph); } subgraphSupportsMetaProperties = subgraph.features().vertex().supportsMetaProperties(); addEdgeToSubgraph(traverser.get()); }
@Before public void innerSetup() { final Graph.Features f = graph.features(); edgeFeatures = f.edge(); edgePropertyFeatures = edgeFeatures.properties(); graphFeatures = f.graph(); variablesFeatures = graphFeatures.variables(); vertexFeatures = f.vertex(); vertexPropertyFeatures = vertexFeatures.properties(); }