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 2018/06/15 12:18:22 UTC
[32/50] tinkerpop git commit: TINKERPOP-1878 Test cleanup for
sparql-gremlin
TINKERPOP-1878 Test cleanup for sparql-gremlin
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/5a163f23
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/5a163f23
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/5a163f23
Branch: refs/heads/TINKERPOP-1878
Commit: 5a163f238efa852a86a8966cc7be3d3b9e589efb
Parents: 47a9867
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Jan 26 08:10:48 2018 -0500
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Jun 15 08:17:30 2018 -0400
----------------------------------------------------------------------
sparql-gremlin/pom.xml | 10 +-
.../dsl/sparql/SparqlTraversalSource.java | 4 +-
.../gremlin/sparql/ResourceHelper.java | 37 ---
.../sparql/SparqlToGremlinCompilerTest.java | 223 -------------------
.../dsl/sparql/SparqlTraversalSourceTest.java | 31 ++-
5 files changed, 36 insertions(+), 269 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a163f23/sparql-gremlin/pom.xml
----------------------------------------------------------------------
diff --git a/sparql-gremlin/pom.xml b/sparql-gremlin/pom.xml
index 0e3da38..731b822 100644
--- a/sparql-gremlin/pom.xml
+++ b/sparql-gremlin/pom.xml
@@ -41,9 +41,13 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.tinkerpop</groupId>
- <artifactId>gremlin-test</artifactId>
- <version>${project.version}</version>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-all</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a163f23/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
----------------------------------------------------------------------
diff --git a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
index deb16f7..cc54aa5 100644
--- a/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
+++ b/sparql-gremlin/src/main/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSource.java
@@ -28,6 +28,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.ConstantStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.InjectStep;
+import org.apache.tinkerpop.gremlin.sparql.process.traversal.strategy.SparqlStrategy;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.Transaction;
import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
@@ -46,6 +47,7 @@ public class SparqlTraversalSource implements TraversalSource {
public SparqlTraversalSource(final Graph graph, final TraversalStrategies traversalStrategies) {
this.graph = graph;
this.strategies = traversalStrategies;
+ this.strategies.addStrategies(SparqlStrategy.instance());
}
public SparqlTraversalSource(final Graph graph) {
@@ -122,7 +124,7 @@ public class SparqlTraversalSource implements TraversalSource {
/**
* The start step for a SPARQL based traversal that accepts a string representation of the query to execute.
*/
- public <S> SparqlTraversal<S,String> sparql(final String query) {
+ public <S> SparqlTraversal<S,?> sparql(final String query) {
final SparqlTraversalSource clone = this.clone();
// this is a bit of a hack to get remote traversals to work cleanly. on the remote side, we'd expect a
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a163f23/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/ResourceHelper.java
----------------------------------------------------------------------
diff --git a/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/ResourceHelper.java b/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/ResourceHelper.java
deleted file mode 100644
index 4f58e61..0000000
--- a/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/ResourceHelper.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tinkerpop.gremlin.sparql;
-
-import org.apache.commons.io.IOUtils;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * @author Daniel Kuppitz (http://gremlin.guru)
- */
-public class ResourceHelper {
-
- public static String loadQuery(final String prefix, final int number) throws IOException {
- final String path = "/queries/" + prefix + number + ".sparql";
- final InputStream stream = ResourceHelper.class.getResourceAsStream(path);
- return IOUtils.toString(stream, "UTF-8");
- }
-}
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a163f23/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/SparqlToGremlinCompilerTest.java
----------------------------------------------------------------------
diff --git a/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/SparqlToGremlinCompilerTest.java b/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/SparqlToGremlinCompilerTest.java
deleted file mode 100644
index 3fb49e8..0000000
--- a/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/SparqlToGremlinCompilerTest.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tinkerpop.gremlin.sparql;
-
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.structure.Graph;
-import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.apache.tinkerpop.gremlin.process.computer.Computer;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import static org.apache.tinkerpop.gremlin.sparql.SparqlToGremlinCompiler.convertToGremlinTraversal;
-import static org.junit.Assert.assertEquals;
-
-
-import java.io.IOException;
-
-import static org.apache.tinkerpop.gremlin.sparql.ResourceHelper.loadQuery;
-
-
-public class SparqlToGremlinCompilerTest {
-
- private Graph modern, crew;
- private GraphTraversalSource mg, cg;
- private GraphTraversalSource mc, cc;
-/*
- @Before
- public void setUp() throws Exception {
- modern = TinkerFactory.createModern();
- mg = modern.traversal();
- mc = modern.traversal(computer());
- crew = TinkerFactory.createTheCrew();
- cg = modern.traversal();
- cc = modern.traversal(computer());
- }
-
- @Ignore
- @Test
- public void play() throws IOException {
- final String query = loadQuery("modern", 11);
- final Traversal traversal = convertToGremlinTraversal(modern, query);
- System.out.println(traversal);
- System.out.println(traversal.toList());
- System.out.println(traversal);
- }
-
- /* Modern */
-
- /* @Test
- public void testModern1() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("a").hasLabel("person"),
- as("a").out("knows").as("b"),
- as("a").out("created").as("c"),
- as("b").out("created").as("c"),
- as("a").values("age").as("d")).where(as("d").is(lt(30))).
- select("a", "b", "c");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 1)));
- }
-
- @Test
- public void testModern2() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("a").hasLabel("person"),
- as("a").out("knows").as("b"),
- as("a").out("created").as("c"),
- as("b").out("created").as("c"),
- as("a").values("age").as("d")).where(as("d").is(lt(30)));
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 2)));
- }
-
- @Test
- public void testModern3() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("person").values("name").as("name"),
- as("person").values("age").as("age")).select("name", "age");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 3)));
- }
-
- @Test
- public void testModern4() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("person").values("name").as("name"),
- as("person").values("age").as("age"),
- as("person").out("created").as("project"),
- as("project").values("name").is("lop")).select("name", "age");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 4)));
- }
-
- @Test
- public void testModern5() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("person").values("name").as("name"),
- as("person").values("age").is(29)).select("name");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 5)));
- }
-
- @Test
- public void testModern6() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("person").values("name").as("name"),
- as("person").values("age").as("age")).where(and(as("age").is(gt(30)), as("age").is(lt(40)))).
- select("name", "age");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 6)));
- }
-
- @Test
- public void testModern7() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("person").values("name").as("name"),
- as("person").values("age").as("age")).where(or(as("age").is(lt(30)), as("age").is(gt(40)))).
- select("name", "age");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 7)));
- }
-
- @Test
- public void testModern8() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("person").values("name").as("name"),
- as("person").values("age").as("age")).where(
- or(and(as("age").is(gt(30)), as("age").is(lt(40))), as("name").is("marko"))).
- select("name", "age");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 8)));
- }
-
- @Test
- public void testModern9() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("a").values("name").as("name")).where(as("a").values("age")).
- select("name");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 9)));
- }
-
- @Test
- public void testModern10() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("a").values("name").as("name")).where(__.not(as("a").values("age"))).
- select("name");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 10)));
- }
-
- @Test
- public void testModern11() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("a").out("created").as("b"),
- as("a").values("name").as("name")).dedup("name").select("name");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 11)));
- }
-
- @Test
- public void testModern12() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("a").out("created").as("b"),
- as("b").values("name").as("name")).dedup();
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 12)));
- }
-
- @Test
- public void testModern13() throws Exception {
- final GraphTraversal expected = mg.V().match(
- as("a").out("created").as("b"),
- as("a").values("name").as("c")).dedup("a", "b", "c").select("a", "b", "c");
- assertEquals(expected, convertToGremlinTraversal(modern, loadQuery("modern", 13)));
- }
-
- /* The Crew */
-
- /* @Test
- public void testCrew1() throws Exception {
- final GraphTraversal expected = cg.V().match(
- as("a").values("name").is("daniel"),
- as("a").properties("location").as("b"),
- as("b").value().as("c"),
- as("b").values("startTime").as("d")).
- select("c", "d");
- assertEquals(expected, convertToGremlinTraversal(crew, loadQuery("crew", 1)));
- }
-
- /* Computer Mode */
-
- /* @Test
- public void testModernInComputerMode() throws Exception {
- final GraphTraversal expected = mc.V().match(
- as("a").hasLabel("person"),
- as("a").out("knows").as("b"),
- as("a").out("created").as("c"),
- as("b").out("created").as("c"),
- as("a").values("age").as("d")).where(as("d").is(lt(30))).
- select("a", "b", "c");
- assertEquals(expected, convertToGremlinTraversal(mc, loadQuery("modern", 1)));
- }
-
- @Test
- public void testCrewInComputerMode() throws Exception {
- final GraphTraversal expected = cc.V().match(
- as("a").values("name").is("daniel"),
- as("a").properties("location").as("b"),
- as("b").value().as("c"),
- as("b").values("startTime").as("d")).
- select("c", "d");
- assertEquals(expected, convertToGremlinTraversal(crew, loadQuery("crew", 1)));
- } */
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/5a163f23/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSourceTest.java
----------------------------------------------------------------------
diff --git a/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSourceTest.java b/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSourceTest.java
index 9e5ffc0..9bb6025 100644
--- a/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSourceTest.java
+++ b/sparql-gremlin/src/test/java/org/apache/tinkerpop/gremlin/sparql/process/traversal/dsl/sparql/SparqlTraversalSourceTest.java
@@ -18,11 +18,16 @@
*/
package org.apache.tinkerpop.gremlin.sparql.process.traversal.dsl.sparql;
-import org.apache.tinkerpop.gremlin.sparql.process.traversal.strategy.SparqlStrategy;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
import org.junit.Test;
+import java.util.HashMap;
+import java.util.List;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder;
+
/**
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
@@ -31,9 +36,25 @@ public class SparqlTraversalSourceTest {
@Test
public void shouldDoStuff() {
final Graph graph = TinkerFactory.createModern();
- final SparqlTraversalSource g = graph.traversal(SparqlTraversalSource.class).
- withStrategies(SparqlStrategy.instance());
- final Object x = g.sparql("SELECT ?name ?age WHERE { ?person v:name ?name . ?person v:age ?age }").toList();
- System.out.println(x);
+ final SparqlTraversalSource g = graph.traversal(SparqlTraversalSource.class);
+ final List<?> x = g.sparql("SELECT ?name ?age WHERE { ?person v:name ?name . ?person v:age ?age }").toList();
+ assertThat(x, containsInAnyOrder(
+ new HashMap<String,Object>(){{
+ put("name", "marko");
+ put("age", 29);
+ }},
+ new HashMap<String,Object>(){{
+ put("name", "vadas");
+ put("age", 27);
+ }},
+ new HashMap<String,Object>(){{
+ put("name", "josh");
+ put("age", 32);
+ }},
+ new HashMap<String,Object>(){{
+ put("name", "peter");
+ put("age", 35);
+ }}
+ ));
}
}