You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/05/28 22:13:25 UTC
[4/5] incubator-tinkerpop git commit: FullNeo4jGraph and
SimpleNeo4jGraph exist. Neo4jGraph is abstract. Full for
meta/multi-properties. Simple for no meta-multi properties. Now they have
respective providers and individual test suite runs.
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/simple/SimpleNeo4jVertex.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/simple/SimpleNeo4jVertex.java b/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/simple/SimpleNeo4jVertex.java
new file mode 100644
index 0000000..df73a8d
--- /dev/null
+++ b/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/simple/SimpleNeo4jVertex.java
@@ -0,0 +1,161 @@
+/*
+ *
+ * * 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.neo4j.structure.simple;
+
+import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jEdge;
+import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
+import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jHelper;
+import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jVertex;
+import org.apache.tinkerpop.gremlin.structure.Direction;
+import org.apache.tinkerpop.gremlin.structure.Edge;
+import org.apache.tinkerpop.gremlin.structure.Element;
+import org.apache.tinkerpop.gremlin.structure.Graph;
+import org.apache.tinkerpop.gremlin.structure.Property;
+import org.apache.tinkerpop.gremlin.structure.Vertex;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+import org.apache.tinkerpop.gremlin.structure.util.ElementHelper;
+import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
+import org.neo4j.tinkerpop.api.Neo4jDirection;
+import org.neo4j.tinkerpop.api.Neo4jNode;
+import org.neo4j.tinkerpop.api.Neo4jRelationship;
+
+import java.util.Iterator;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+final class SimpleNeo4jVertex extends Neo4jVertex {
+
+ public SimpleNeo4jVertex(final Neo4jNode node, final Neo4jGraph neo4jGraph) {
+ super(node, neo4jGraph);
+ }
+
+ @Override
+ public Edge addEdge(final String label, final Vertex inVertex, final Object... keyValues) {
+ if (null == inVertex) throw Graph.Exceptions.argumentCanNotBeNull("inVertex");
+ if (this.removed) throw Element.Exceptions.elementAlreadyRemoved(Vertex.class, this.getBaseVertex().getId());
+ ElementHelper.validateLabel(label);
+ ElementHelper.legalPropertyKeyValueArray(keyValues);
+ if (ElementHelper.getIdValue(keyValues).isPresent())
+ throw Edge.Exceptions.userSuppliedIdsNotSupported();
+
+ this.graph.tx().readWrite();
+ final Neo4jNode node = (Neo4jNode) this.baseElement;
+ final Neo4jEdge edge = this.graph.createEdge(node.connectTo(((Neo4jVertex) inVertex).getBaseVertex(), label));
+ ElementHelper.attachProperties(edge, keyValues);
+ return edge;
+ }
+
+ @Override
+ public <V> VertexProperty<V> property(final String key) {
+ if (this.removed) throw Element.Exceptions.elementAlreadyRemoved(Vertex.class, this.getBaseVertex().getId());
+ this.graph.tx().readWrite();
+ if (existsInNeo4j(key)) {
+ return new SimpleNeo4jVertexProperty<>(this, key, (V) this.getBaseVertex().getProperty(key));
+ } else
+ return VertexProperty.<V>empty();
+
+ }
+
+ @Override
+ public <V> VertexProperty<V> property(final VertexProperty.Cardinality cardinality, final String key, final V value, final Object... keyValues) {
+ if (this.removed) throw Element.Exceptions.elementAlreadyRemoved(Vertex.class, this.getBaseVertex().getId());
+ if (cardinality != VertexProperty.Cardinality.single)
+ throw VertexProperty.Exceptions.multiPropertiesNotSupported();
+ if (keyValues.length > 0)
+ throw VertexProperty.Exceptions.metaPropertiesNotSupported();
+ ElementHelper.validateProperty(key, value);
+ try {
+ this.getBaseVertex().setProperty(key, value);
+ return new SimpleNeo4jVertexProperty<>(this, key, value);
+ } catch (final IllegalArgumentException iae) {
+ throw Property.Exceptions.dataTypeOfPropertyValueNotSupported(value);
+ }
+ }
+
+ @Override
+ public Iterator<Vertex> vertices(final Direction direction, final String... edgeLabels) {
+ this.graph.tx().readWrite();
+ return new Iterator<Vertex>() {
+ final Iterator<Neo4jRelationship> relationshipIterator = 0 == edgeLabels.length ?
+ getBaseVertex().relationships(Neo4jHelper.mapDirection(direction)).iterator() :
+ getBaseVertex().relationships(Neo4jHelper.mapDirection(direction), (edgeLabels)).iterator();
+
+ @Override
+ public boolean hasNext() {
+ return this.relationshipIterator.hasNext();
+ }
+
+ @Override
+ public Neo4jVertex next() {
+ return graph.createVertex(this.relationshipIterator.next().other(getBaseVertex()));
+ }
+ };
+ }
+
+ @Override
+ public Iterator<Edge> edges(final Direction direction, final String... edgeLabels) {
+ this.graph.tx().readWrite();
+ return new Iterator<Edge>() {
+ final Iterator<Neo4jRelationship> relationshipIterator = 0 == edgeLabels.length ?
+ getBaseVertex().relationships(Neo4jHelper.mapDirection(direction)).iterator() :
+ getBaseVertex().relationships(Neo4jHelper.mapDirection(direction), (edgeLabels)).iterator();
+
+ @Override
+ public boolean hasNext() {
+ return this.relationshipIterator.hasNext();
+ }
+
+ @Override
+ public Neo4jEdge next() {
+ return graph.createEdge(this.relationshipIterator.next());
+ }
+ };
+ }
+
+ @Override
+ public <V> Iterator<VertexProperty<V>> properties(final String... propertyKeys) {
+ this.graph.tx().readWrite();
+ return (Iterator) IteratorUtils.stream(getBaseVertex().getKeys())
+ .filter(key -> ElementHelper.keyExists(key, propertyKeys))
+ .map(key -> new SimpleNeo4jVertexProperty<>(SimpleNeo4jVertex.this, key, (V) this.getBaseVertex().getProperty(key))).iterator();
+ }
+
+ @Override
+ public void remove() {
+ if (this.removed) throw Element.Exceptions.elementAlreadyRemoved(Vertex.class, this.getBaseVertex().getId());
+ this.removed = true;
+ this.graph.tx().readWrite();
+ try {
+ final Neo4jNode node = this.getBaseVertex();
+ for (final Neo4jRelationship relationship : node.relationships(Neo4jDirection.BOTH)) {
+ relationship.delete();
+ }
+ node.delete();
+ } catch (final IllegalStateException ignored) {
+ // this one happens if the vertex is still chilling in the tx
+ } catch (final RuntimeException ex) {
+ if (!Neo4jHelper.isNotFound(ex)) throw ex;
+ // this one happens if the vertex is committed
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/simple/SimpleNeo4jVertexProperty.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/simple/SimpleNeo4jVertexProperty.java b/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/simple/SimpleNeo4jVertexProperty.java
new file mode 100644
index 0000000..4de7462
--- /dev/null
+++ b/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/simple/SimpleNeo4jVertexProperty.java
@@ -0,0 +1,67 @@
+/*
+ *
+ * * 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.neo4j.structure.simple;
+
+import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jVertex;
+import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jVertexProperty;
+import org.apache.tinkerpop.gremlin.structure.Property;
+import org.apache.tinkerpop.gremlin.structure.VertexProperty;
+
+import java.util.Iterator;
+import java.util.Set;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+final class SimpleNeo4jVertexProperty<V> extends Neo4jVertexProperty<V> {
+
+ public SimpleNeo4jVertexProperty(final Neo4jVertex vertex, final String key, final V value) {
+ super(vertex, key, value);
+ }
+
+ @Override
+ public Set<String> keys() {
+ throw VertexProperty.Exceptions.metaPropertiesNotSupported();
+ }
+
+ @Override
+ public <U> Property<U> property(String key, U value) {
+ throw VertexProperty.Exceptions.metaPropertiesNotSupported();
+ }
+
+ @Override
+ public <U> Property<U> property(final String key) {
+ throw VertexProperty.Exceptions.metaPropertiesNotSupported();
+ }
+
+ @Override
+ public void remove() {
+ this.vertex.graph().tx().readWrite();
+ if (this.vertex.getBaseVertex().hasProperty(this.key))
+ this.vertex.getBaseVertex().removeProperty(this.key);
+ }
+
+ @Override
+ public <U> Iterator<Property<U>> properties(final String... propertyKeys) {
+ throw VertexProperty.Exceptions.metaPropertiesNotSupported();
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/AbstractNeo4jGraphProvider.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/AbstractNeo4jGraphProvider.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/AbstractNeo4jGraphProvider.java
index b96c52a..e61440d 100644
--- a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/AbstractNeo4jGraphProvider.java
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/AbstractNeo4jGraphProvider.java
@@ -47,6 +47,11 @@ public abstract class AbstractNeo4jGraphProvider extends AbstractGraphProvider {
add(Neo4jVertexProperty.class);
}};
+ protected String cleanParameters(String methodName) {
+ int random = (int) (Math.random() * Integer.MAX_VALUE);
+ return methodName.replaceAll("[0-9, -]+$", String.valueOf(random));
+ }
+
@Override
public void clear(final Graph graph, final Configuration configuration) throws Exception {
if (null != graph) {
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/BaseNeo4jGraphTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/BaseNeo4jGraphTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/BaseNeo4jGraphTest.java
index 00d0805..d7f0454 100644
--- a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/BaseNeo4jGraphTest.java
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/BaseNeo4jGraphTest.java
@@ -40,7 +40,7 @@ import static org.junit.Assert.assertEquals;
*/
public class BaseNeo4jGraphTest {
protected Configuration conf;
- protected final DefaultNeo4jGraphProvider graphProvider = new DefaultNeo4jGraphProvider();
+ protected final FullNeo4jGraphProvider graphProvider = new FullNeo4jGraphProvider();
protected Neo4jGraph graph;
protected GraphTraversalSource g;
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/DefaultNeo4jGraphProvider.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/DefaultNeo4jGraphProvider.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/DefaultNeo4jGraphProvider.java
deleted file mode 100644
index 7430b96..0000000
--- a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/DefaultNeo4jGraphProvider.java
+++ /dev/null
@@ -1,50 +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.neo4j;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.TestHelper;
-import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
-import org.apache.tinkerpop.gremlin.structure.Graph;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public class DefaultNeo4jGraphProvider extends AbstractNeo4jGraphProvider {
- @Override
- public Map<String, Object> getBaseConfiguration(final String graphName, final Class<?> test, final String testMethodName, final LoadGraphWith.GraphData graphData) {
- return new HashMap<String, Object>() {{
- put(Graph.GRAPH, Neo4jGraph.class.getName());
- String directory = getWorkingDirectory() + File.separator + TestHelper.cleanPathSegment(graphName) + File.separator + cleanParameters(TestHelper.cleanPathSegment(testMethodName));
- put(Neo4jGraph.CONFIG_DIRECTORY, directory);
- put(Neo4jGraph.CONFIG_META_PROPERTIES, true);
- put(Neo4jGraph.CONFIG_MULTI_PROPERTIES, true);
- put(Neo4jGraph.CONFIG_CHECK_ELEMENTS_IN_TRANSACTION, true);
- }};
- }
-
- private String cleanParameters(String methodName) {
- int random = (int) (Math.random() * Integer.MAX_VALUE);
- return methodName.replaceAll("[0-9, -]+$", String.valueOf(random));
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/FullNeo4jGraphProvider.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/FullNeo4jGraphProvider.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/FullNeo4jGraphProvider.java
new file mode 100644
index 0000000..cce782c
--- /dev/null
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/FullNeo4jGraphProvider.java
@@ -0,0 +1,45 @@
+/*
+ * 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.neo4j;
+
+import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.TestHelper;
+import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
+import org.apache.tinkerpop.gremlin.structure.Graph;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public class FullNeo4jGraphProvider extends AbstractNeo4jGraphProvider {
+ @Override
+ public Map<String, Object> getBaseConfiguration(final String graphName, final Class<?> test, final String testMethodName, final LoadGraphWith.GraphData graphData) {
+ return new HashMap<String, Object>() {{
+ put(Graph.GRAPH, Neo4jGraph.class.getName());
+ String directory = getWorkingDirectory() + File.separator + TestHelper.cleanPathSegment(graphName) + File.separator + cleanParameters(TestHelper.cleanPathSegment(testMethodName));
+ put(Neo4jGraph.CONFIG_DIRECTORY, directory);
+ put(Neo4jGraph.CONFIG_META_PROPERTIES, true);
+ put(Neo4jGraph.CONFIG_MULTI_PROPERTIES, true);
+ put(Neo4jGraph.CONFIG_CHECK_ELEMENTS_IN_TRANSACTION, true);
+ }};
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/Neo4jGraphTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/Neo4jGraphTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/Neo4jGraphTest.java
index 5d3cf74..ba064a4 100644
--- a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/Neo4jGraphTest.java
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/Neo4jGraphTest.java
@@ -23,7 +23,7 @@ package org.apache.tinkerpop.gremlin.neo4j;
import org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine;
import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jVertex;
-import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jVertexProperty;
+import org.apache.tinkerpop.gremlin.neo4j.structure.full.FullNeo4jVertexProperty;
import org.apache.tinkerpop.gremlin.process.traversal.P;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -32,11 +32,14 @@ import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.apache.tinkerpop.gremlin.structure.VertexProperty;
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import org.junit.Test;
-import org.neo4j.tinkerpop.api.*;
+import org.neo4j.tinkerpop.api.Neo4jDirection;
+import org.neo4j.tinkerpop.api.Neo4jGraphAPI;
+import org.neo4j.tinkerpop.api.Neo4jNode;
+import org.neo4j.tinkerpop.api.Neo4jRelationship;
+import org.neo4j.tinkerpop.api.Neo4jTx;
import javax.script.Bindings;
import javax.script.ScriptException;
-import java.util.Arrays;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@@ -148,7 +151,7 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
@Test
public void shouldReturnResultsUsingLegacyIndexOnVertex() {
graph.tx().readWrite();
- this.graph.getBaseGraph().autoIndexProperties(true,"name");
+ this.graph.getBaseGraph().autoIndexProperties(true, "name");
this.graph.tx().commit();
this.graph.addVertex(T.label, "Person", "name", "marko");
@@ -176,7 +179,7 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
@Test
public void shouldEnforceUniqueConstraint() {
this.graph.tx().readWrite();
- this.graph.getBaseGraph().execute("CREATE CONSTRAINT ON (p:Person) assert p.name is unique",null);
+ this.graph.getBaseGraph().execute("CREATE CONSTRAINT ON (p:Person) assert p.name is unique", null);
this.graph.tx().commit();
this.graph.tx().commit();
this.graph.addVertex(T.label, "Person", "name", "marko");
@@ -242,7 +245,7 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
this.graph.tx().readWrite();
this.graph.getBaseGraph().execute("DROP CONSTRAINT ON (p:Person) assert p.name is unique", null);
- this.graph.getBaseGraph().execute("DROP CONSTRAINT ON (p:Person) assert p.surname is unique",null);
+ this.graph.getBaseGraph().execute("DROP CONSTRAINT ON (p:Person) assert p.surname is unique", null);
this.graph.tx().commit();
assertEquals(1, this.g.V().has(T.label, "Person").has("name", "marko").count().next(), 0);
@@ -363,8 +366,8 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
this.graph.tx().commit();
final Vertex a = graph.addVertex(T.label, "person", "name", "marko", "age", 34);
- a.property(VertexProperty.Cardinality.list,"name", "okram");
- a.property(VertexProperty.Cardinality.list,"name", "marko a. rodriguez");
+ a.property(VertexProperty.Cardinality.list, "name", "okram");
+ a.property(VertexProperty.Cardinality.list, "name", "marko a. rodriguez");
final Vertex b = graph.addVertex(T.label, "person", "name", "stephen");
final Vertex c = graph.addVertex("name", "matthias", "name", "mbroecheler");
@@ -372,7 +375,7 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
assertEquals(a.id(), graph.traversal().V().has("person", "name", "okram").id().next());
assertEquals(1, graph.traversal().V().has("person", "name", "okram").count().next().intValue());
assertEquals(34, ((Neo4jVertex) graph.traversal().V().has("person", "name", "okram").next()).getBaseVertex().getProperty("age"));
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_TOKEN, ((Neo4jVertex) graph.traversal().V().has("person", "name", "okram").next()).getBaseVertex().getProperty("name"));
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_TOKEN, ((Neo4jVertex) graph.traversal().V().has("person", "name", "okram").next()).getBaseVertex().getProperty("name"));
///
assertEquals(b.id(), graph.traversal().V().has("person", "name", "stephen").id().next());
assertEquals(1, graph.traversal().V().has("person", "name", "stephen").count().next().intValue());
@@ -391,19 +394,19 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
assertEquals(d.id(), graph.traversal().V().has("person", "name", "kuppitz").id().next());
assertEquals("kuppitz", ((Neo4jVertex) graph.traversal().V().has("person", "name", "kuppitz").next()).getBaseVertex().getProperty("name"));
});
- d.property(VertexProperty.Cardinality.list,"name", "daniel", "acl", "private");
+ d.property(VertexProperty.Cardinality.list, "name", "daniel", "acl", "private");
tryCommit(graph, graph -> {
assertEquals(d.id(), graph.traversal().V().has("person", "name", P.within("daniel", "kuppitz")).id().next());
assertEquals(d.id(), graph.traversal().V().has("person", "name", "kuppitz").id().next());
assertEquals(d.id(), graph.traversal().V().has("person", "name", "daniel").id().next());
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_TOKEN, ((Neo4jVertex) graph.traversal().V().has("person", "name", "kuppitz").next()).getBaseVertex().getProperty("name"));
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_TOKEN, ((Neo4jVertex) graph.traversal().V().has("person", "name", "kuppitz").next()).getBaseVertex().getProperty("name"));
});
- d.property(VertexProperty.Cardinality.list,"name", "marko", "acl", "private");
+ d.property(VertexProperty.Cardinality.list, "name", "marko", "acl", "private");
tryCommit(graph, g -> {
assertEquals(2, g.traversal().V().has("person", "name", "marko").count().next().intValue());
assertEquals(1, g.traversal().V().has("person", "name", "marko").properties("name").has(T.value, "marko").has("acl", "private").count().next().intValue());
g.traversal().V().has("person", "name", "marko").forEachRemaining(v -> {
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_TOKEN, ((Neo4jVertex) v).getBaseVertex().getProperty("name"));
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_TOKEN, ((Neo4jVertex) v).getBaseVertex().getProperty("name"));
});
});
@@ -414,9 +417,9 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
public void shouldDoLabelsNamespaceBehavior() {
graph.tx().readWrite();
- this.graph.getBaseGraph().execute("CREATE INDEX ON :Person(name)",null);
- this.graph.getBaseGraph().execute("CREATE INDEX ON :Product(name)",null);
- this.graph.getBaseGraph().execute("CREATE INDEX ON :Corporate(name)",null);
+ this.graph.getBaseGraph().execute("CREATE INDEX ON :Person(name)", null);
+ this.graph.getBaseGraph().execute("CREATE INDEX ON :Product(name)", null);
+ this.graph.getBaseGraph().execute("CREATE INDEX ON :Corporate(name)", null);
this.graph.tx().commit();
this.graph.addVertex(T.label, "Person", "name", "marko");
@@ -456,10 +459,10 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
tryCommit(graph, g -> validateCounts(g, 0, 0, 0, 0));
Vertex vertex = graph.addVertex(T.label, "person");
tryCommit(graph, g -> validateCounts(g, 1, 0, 1, 0));
- vertex.property(VertexProperty.Cardinality.list,"name", "marko");
+ vertex.property(VertexProperty.Cardinality.list, "name", "marko");
assertEquals("marko", vertex.value("name"));
tryCommit(graph, g -> validateCounts(g, 1, 0, 1, 0));
- vertex.property(VertexProperty.Cardinality.list,"name", "okram");
+ vertex.property(VertexProperty.Cardinality.list, "name", "okram");
tryCommit(graph, g -> {
validateCounts(g, 1, 0, 1, 0);
assertEquals("okram", vertex.value("name"));
@@ -484,7 +487,7 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
tryCommit(graph, g -> validateCounts(g, 0, 0, 0, 0));
Vertex vertex = graph.addVertex(T.label, "person");
tryCommit(graph, g -> validateCounts(g, 1, 0, 1, 0));
- vertex.property(VertexProperty.Cardinality.list,"name", "marko");
+ vertex.property(VertexProperty.Cardinality.list, "name", "marko");
assertEquals("marko", vertex.value("name"));
tryCommit(graph, g -> validateCounts(g, 1, 0, 1, 0));
vertex.property(VertexProperty.Cardinality.single, "name", "okram");
@@ -525,16 +528,16 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
// assertEquals(1, b.properties("location").count().next().intValue());
// assertEquals(0, g.E().count().next().intValue());
- assertEquals(4l, graph.execute("MATCH n RETURN COUNT(n)",null).next().get("COUNT(n)"));
- assertEquals(2l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)",null).next().get("COUNT(r)"));
- assertEquals(2l, graph.execute("MATCH (a)-[r]->() WHERE id(a) = " + a.id() + " RETURN COUNT(r)",null).next().get("COUNT(r)"));
+ assertEquals(4l, graph.execute("MATCH n RETURN COUNT(n)", null).next().get("COUNT(n)"));
+ assertEquals(2l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)", null).next().get("COUNT(r)"));
+ assertEquals(2l, graph.execute("MATCH (a)-[r]->() WHERE id(a) = " + a.id() + " RETURN COUNT(r)", null).next().get("COUNT(r)"));
final AtomicInteger counter = new AtomicInteger(0);
a.getBaseVertex().relationships(Neo4jDirection.OUTGOING).forEach(relationship -> {
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), relationship.type());
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), relationship.type());
counter.incrementAndGet();
});
assertEquals(2, counter.getAndSet(0));
- graph.execute("MATCH (a)-[]->(m) WHERE id(a) = " + a.id() + " RETURN labels(m)",null).forEachRemaining(results -> {
+ graph.execute("MATCH (a)-[]->(m) WHERE id(a) = " + a.id() + " RETURN labels(m)", null).forEachRemaining(results -> {
assertEquals(VertexProperty.DEFAULT_LABEL, ((List<String>) results.get("labels(m)")).get(0));
counter.incrementAndGet();
});
@@ -543,9 +546,9 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
assertEquals(2, IteratorUtils.count(node.getKeys()));
assertEquals("name", node.getProperty(T.key.getAccessor()));
assertTrue("marko".equals(node.getProperty(T.value.getAccessor())) || "okram".equals(node.getProperty(T.value.getAccessor())));
- assertEquals(0, node.degree(Neo4jDirection.OUTGOING,null));
- assertEquals(1, node.degree(Neo4jDirection.INCOMING,null));
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), node.relationships(Neo4jDirection.INCOMING).iterator().next().type());
+ assertEquals(0, node.degree(Neo4jDirection.OUTGOING, null));
+ assertEquals(1, node.degree(Neo4jDirection.INCOMING, null));
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), node.relationships(Neo4jDirection.INCOMING).iterator().next().type());
counter.incrementAndGet();
});
assertEquals(2, counter.getAndSet(0));
@@ -558,13 +561,13 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
a.property("name", "the marko");
tryCommit(graph, g -> {
assertEquals(2, g.traversal().V().count().next().intValue());
- //assertEquals(1, a.properties().count().next().intValue());
+ //assertEquals(1, a.prope rties().count().next().intValue());
// assertEquals(1, b.properties("name").count().next().intValue());
// assertEquals(1, b.properties("location").count().next().intValue());
// assertEquals(0, g.E().count().next().intValue());
- assertEquals(2l, graph.execute("MATCH n RETURN COUNT(n)",null).next().get("COUNT(n)"));
- assertEquals(0l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)",null).next().get("COUNT(r)"));
+ assertEquals(2l, graph.execute("MATCH n RETURN COUNT(n)", null).next().get("COUNT(n)"));
+ assertEquals(0l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)", null).next().get("COUNT(r)"));
assertEquals(1, IteratorUtils.count(a.getBaseVertex().getKeys()));
assertEquals("the marko", a.getBaseVertex().getProperty("name"));
@@ -579,8 +582,8 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
// assertEquals(0, a.properties().count().next().intValue());
// assertEquals(2, b.properties().count().next().intValue());
// assertEquals(0, g.E().count().next().intValue());
- assertEquals(2l, graph.execute("MATCH n RETURN COUNT(n)",null).next().get("COUNT(n)"));
- assertEquals(0l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)",null).next().get("COUNT(r)"));
+ assertEquals(2l, graph.execute("MATCH n RETURN COUNT(n)", null).next().get("COUNT(n)"));
+ assertEquals(0l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)", null).next().get("COUNT(r)"));
assertEquals(0, IteratorUtils.count(a.getBaseVertex().getKeys()));
assertEquals(2, IteratorUtils.count(b.getBaseVertex().getKeys()));
});
@@ -594,16 +597,16 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
// assertEquals(1, b.properties("location").count().next().intValue());
// assertEquals(0, g.E().count().next().intValue());
- assertEquals(3l, graph.execute("MATCH n RETURN COUNT(n)",null).next().get("COUNT(n)"));
- assertEquals(1l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)",null).next().get("COUNT(r)"));
- assertEquals(1l, graph.execute("MATCH (a)-[r]->() WHERE id(a) = " + a.id() + " RETURN COUNT(r)",null).next().get("COUNT(r)"));
+ assertEquals(3l, graph.execute("MATCH n RETURN COUNT(n)", null).next().get("COUNT(n)"));
+ assertEquals(1l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)", null).next().get("COUNT(r)"));
+ assertEquals(1l, graph.execute("MATCH (a)-[r]->() WHERE id(a) = " + a.id() + " RETURN COUNT(r)", null).next().get("COUNT(r)"));
final AtomicInteger counter = new AtomicInteger(0);
a.getBaseVertex().relationships(Neo4jDirection.OUTGOING).forEach(relationship -> {
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), relationship.type());
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), relationship.type());
counter.incrementAndGet();
});
assertEquals(1, counter.getAndSet(0));
- graph.execute("MATCH (a)-[]->(m) WHERE id(a) = " + a.id() + " RETURN labels(m)",null).forEachRemaining(results -> {
+ graph.execute("MATCH (a)-[]->(m) WHERE id(a) = " + a.id() + " RETURN labels(m)", null).forEachRemaining(results -> {
assertEquals(VertexProperty.DEFAULT_LABEL, ((List<String>) results.get("labels(m)")).get(0));
counter.incrementAndGet();
});
@@ -613,23 +616,23 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
assertEquals("name", node.getProperty(T.key.getAccessor()));
assertEquals("the marko", node.getProperty(T.value.getAccessor()));
assertEquals("private", node.getProperty("acl"));
- assertEquals(0, node.degree(Neo4jDirection.OUTGOING,null));
- assertEquals(1, node.degree(Neo4jDirection.INCOMING,null));
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), node.relationships(Neo4jDirection.INCOMING).iterator().next().type());
+ assertEquals(0, node.degree(Neo4jDirection.OUTGOING, null));
+ assertEquals(1, node.degree(Neo4jDirection.INCOMING, null));
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), node.relationships(Neo4jDirection.INCOMING).iterator().next().type());
counter.incrementAndGet();
});
assertEquals(1, counter.getAndSet(0));
assertEquals(1, IteratorUtils.count(a.getBaseVertex().getKeys()));
assertTrue(a.getBaseVertex().hasProperty("name"));
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_TOKEN, a.getBaseVertex().getProperty("name"));
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_TOKEN, a.getBaseVertex().getProperty("name"));
assertEquals(2, IteratorUtils.count(b.getBaseVertex().getKeys()));
assertEquals("stephen", b.getBaseVertex().getProperty("name"));
assertEquals("virginia", b.getBaseVertex().getProperty("location"));
});
- a.property(VertexProperty.Cardinality.list,"name", "marko", "acl", "private");
- a.property(VertexProperty.Cardinality.list,"name", "okram", "acl", "public");
+ a.property(VertexProperty.Cardinality.list, "name", "marko", "acl", "private");
+ a.property(VertexProperty.Cardinality.list, "name", "okram", "acl", "public");
graph.tx().commit(); // TODO tx.commit() THIS IS REQUIRED: ?! Why does Neo4j not delete vertices correctly?
a.property(VertexProperty.Cardinality.single, "name", "the marko", "acl", "private");
tryCommit(graph, g -> {
@@ -639,16 +642,16 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
// assertEquals(1, b.properties("location").count().next().intValue());
// assertEquals(0, g.E().count().next().intValue());
- assertEquals(3l, graph.execute("MATCH n RETURN COUNT(n)",null).next().get("COUNT(n)"));
- assertEquals(1l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)",null).next().get("COUNT(r)"));
- assertEquals(1l, graph.execute("MATCH (a)-[r]->() WHERE id(a) = " + a.id() + " RETURN COUNT(r)",null).next().get("COUNT(r)"));
+ assertEquals(3l, graph.execute("MATCH n RETURN COUNT(n)", null).next().get("COUNT(n)"));
+ assertEquals(1l, graph.execute("MATCH (n)-[r]->(m) RETURN COUNT(r)", null).next().get("COUNT(r)"));
+ assertEquals(1l, graph.execute("MATCH (a)-[r]->() WHERE id(a) = " + a.id() + " RETURN COUNT(r)", null).next().get("COUNT(r)"));
final AtomicInteger counter = new AtomicInteger(0);
a.getBaseVertex().relationships(Neo4jDirection.OUTGOING).forEach(relationship -> {
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), relationship.type());
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), relationship.type());
counter.incrementAndGet();
});
assertEquals(1, counter.getAndSet(0));
- graph.execute("MATCH (a)-[]->(m) WHERE id(a) = " + a.id() + " RETURN labels(m)",null).forEachRemaining(results -> {
+ graph.execute("MATCH (a)-[]->(m) WHERE id(a) = " + a.id() + " RETURN labels(m)", null).forEachRemaining(results -> {
assertEquals(VertexProperty.DEFAULT_LABEL, ((List<String>) results.get("labels(m)")).get(0));
counter.incrementAndGet();
});
@@ -658,16 +661,16 @@ public class Neo4jGraphTest extends BaseNeo4jGraphTest {
assertEquals("name", node.getProperty(T.key.getAccessor()));
assertEquals("the marko", node.getProperty(T.value.getAccessor()));
assertEquals("private", node.getProperty("acl"));
- assertEquals(0, node.degree(Neo4jDirection.OUTGOING,null));
- assertEquals(1, node.degree(Neo4jDirection.INCOMING,null));
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), node.relationships(Neo4jDirection.INCOMING).iterator().next().type());
+ assertEquals(0, node.degree(Neo4jDirection.OUTGOING, null));
+ assertEquals(1, node.degree(Neo4jDirection.INCOMING, null));
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_PREFIX.concat("name"), node.relationships(Neo4jDirection.INCOMING).iterator().next().type());
counter.incrementAndGet();
});
assertEquals(1, counter.getAndSet(0));
assertEquals(1, IteratorUtils.count(a.getBaseVertex().getKeys()));
assertTrue(a.getBaseVertex().hasProperty("name"));
- assertEquals(Neo4jVertexProperty.VERTEX_PROPERTY_TOKEN, a.getBaseVertex().getProperty("name"));
+ assertEquals(FullNeo4jVertexProperty.VERTEX_PROPERTY_TOKEN, a.getBaseVertex().getProperty("name"));
assertEquals(2, IteratorUtils.count(b.getBaseVertex().getKeys()));
assertEquals("stephen", b.getBaseVertex().getProperty("name"));
assertEquals("virginia", b.getBaseVertex().getProperty("location"));
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/NoMetaMultiPropertyNeo4jGraphProvider.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/NoMetaMultiPropertyNeo4jGraphProvider.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/NoMetaMultiPropertyNeo4jGraphProvider.java
deleted file mode 100644
index 4163463..0000000
--- a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/NoMetaMultiPropertyNeo4jGraphProvider.java
+++ /dev/null
@@ -1,43 +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.neo4j;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.TestHelper;
-import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-public class NoMetaMultiPropertyNeo4jGraphProvider extends AbstractNeo4jGraphProvider {
- @Override
- public Map<String, Object> getBaseConfiguration(final String graphName, final Class<?> test, final String testMethodName, final LoadGraphWith.GraphData graphData) {
- return new HashMap<String, Object>() {{
- put("gremlin.graph", Neo4jGraph.class.getName());
- put(Neo4jGraph.CONFIG_DIRECTORY, getWorkingDirectory() + File.separator + TestHelper.cleanPathSegment(graphName) + File.separator + TestHelper.cleanPathSegment(testMethodName));
- put(Neo4jGraph.CONFIG_META_PROPERTIES, false);
- put(Neo4jGraph.CONFIG_MULTI_PROPERTIES, false);
- put(Neo4jGraph.CONFIG_CHECK_ELEMENTS_IN_TRANSACTION, true);
- }};
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/SimpleNeo4jGraphProvider.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/SimpleNeo4jGraphProvider.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/SimpleNeo4jGraphProvider.java
new file mode 100644
index 0000000..51f75a7
--- /dev/null
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/SimpleNeo4jGraphProvider.java
@@ -0,0 +1,48 @@
+/*
+ *
+ * * 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.neo4j;
+
+import org.apache.tinkerpop.gremlin.LoadGraphWith;
+import org.apache.tinkerpop.gremlin.TestHelper;
+import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
+import org.apache.tinkerpop.gremlin.structure.Graph;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public class SimpleNeo4jGraphProvider extends AbstractNeo4jGraphProvider {
+ @Override
+ public Map<String, Object> getBaseConfiguration(final String graphName, final Class<?> test, final String testMethodName, final LoadGraphWith.GraphData graphData) {
+ return new HashMap<String, Object>() {{
+ put(Graph.GRAPH, Neo4jGraph.class.getName());
+ String directory = getWorkingDirectory() + File.separator + TestHelper.cleanPathSegment(graphName) + File.separator + cleanParameters(TestHelper.cleanPathSegment(testMethodName));
+ put(Neo4jGraph.CONFIG_DIRECTORY, directory);
+ put(Neo4jGraph.CONFIG_META_PROPERTIES, false);
+ put(Neo4jGraph.CONFIG_MULTI_PROPERTIES, false);
+ put(Neo4jGraph.CONFIG_CHECK_ELEMENTS_IN_TRANSACTION, true);
+ }};
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/FullNeo4jGraphProcessStandardTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/FullNeo4jGraphProcessStandardTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/FullNeo4jGraphProcessStandardTest.java
new file mode 100644
index 0000000..e9d4921
--- /dev/null
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/FullNeo4jGraphProcessStandardTest.java
@@ -0,0 +1,37 @@
+/*
+ * 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.neo4j.process;
+
+import org.apache.tinkerpop.gremlin.GraphProviderClass;
+import org.apache.tinkerpop.gremlin.neo4j.FullNeo4jGraphProvider;
+import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
+import org.apache.tinkerpop.gremlin.neo4j.structure.full.FullNeo4jGraph;
+import org.apache.tinkerpop.gremlin.process.ProcessStandardSuite;
+import org.junit.runner.RunWith;
+
+
+/**
+ * Executes the Standard Gremlin Structure Test Suite using Neo4j.
+ *
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+@RunWith(ProcessStandardSuite.class)
+@GraphProviderClass(provider = FullNeo4jGraphProvider.class, graph = FullNeo4jGraph.class)
+public class FullNeo4jGraphProcessStandardTest {
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/Neo4jGraphProcessStandardTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/Neo4jGraphProcessStandardTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/Neo4jGraphProcessStandardTest.java
deleted file mode 100644
index 4c8a011..0000000
--- a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/Neo4jGraphProcessStandardTest.java
+++ /dev/null
@@ -1,36 +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.neo4j.process;
-
-import org.apache.tinkerpop.gremlin.GraphProviderClass;
-import org.apache.tinkerpop.gremlin.neo4j.DefaultNeo4jGraphProvider;
-import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
-import org.apache.tinkerpop.gremlin.process.ProcessStandardSuite;
-import org.junit.runner.RunWith;
-
-
-/**
- * Executes the Standard Gremlin Structure Test Suite using Neo4j.
- *
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-@RunWith(ProcessStandardSuite.class)
-@GraphProviderClass(provider = DefaultNeo4jGraphProvider.class, graph = Neo4jGraph.class)
-public class Neo4jGraphProcessStandardTest {
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/SimpleNeo4jGraphProcessStandardTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/SimpleNeo4jGraphProcessStandardTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/SimpleNeo4jGraphProcessStandardTest.java
new file mode 100644
index 0000000..724a457
--- /dev/null
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/SimpleNeo4jGraphProcessStandardTest.java
@@ -0,0 +1,36 @@
+/*
+ *
+ * * 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.neo4j.process;
+
+import org.apache.tinkerpop.gremlin.GraphProviderClass;
+import org.apache.tinkerpop.gremlin.neo4j.SimpleNeo4jGraphProvider;
+import org.apache.tinkerpop.gremlin.neo4j.structure.simple.SimpleNeo4jGraph;
+import org.apache.tinkerpop.gremlin.process.ProcessStandardSuite;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+@RunWith(ProcessStandardSuite.class)
+@GraphProviderClass(provider = SimpleNeo4jGraphProvider.class, graph = SimpleNeo4jGraph.class)
+public class SimpleNeo4jGraphProcessStandardTest {
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/FullNeo4jGraphGroovyProcessStandardTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/FullNeo4jGraphGroovyProcessStandardTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/FullNeo4jGraphGroovyProcessStandardTest.java
new file mode 100644
index 0000000..df17960
--- /dev/null
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/FullNeo4jGraphGroovyProcessStandardTest.java
@@ -0,0 +1,33 @@
+/*
+ * 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.neo4j.process.groovy;
+
+import org.apache.tinkerpop.gremlin.GraphProviderClass;
+import org.apache.tinkerpop.gremlin.neo4j.FullNeo4jGraphProvider;
+import org.apache.tinkerpop.gremlin.neo4j.structure.full.FullNeo4jGraph;
+import org.apache.tinkerpop.gremlin.process.GroovyProcessStandardSuite;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+@RunWith(GroovyProcessStandardSuite.class)
+@GraphProviderClass(provider = FullNeo4jGraphProvider.class, graph = FullNeo4jGraph.class)
+public class FullNeo4jGraphGroovyProcessStandardTest {
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/Neo4jGraphGroovyProcessStandardTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/Neo4jGraphGroovyProcessStandardTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/Neo4jGraphGroovyProcessStandardTest.java
deleted file mode 100644
index db63d38..0000000
--- a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/Neo4jGraphGroovyProcessStandardTest.java
+++ /dev/null
@@ -1,33 +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.neo4j.process.groovy;
-
-import org.apache.tinkerpop.gremlin.GraphProviderClass;
-import org.apache.tinkerpop.gremlin.neo4j.DefaultNeo4jGraphProvider;
-import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jGraph;
-import org.apache.tinkerpop.gremlin.process.GroovyProcessStandardSuite;
-import org.junit.runner.RunWith;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-@RunWith(GroovyProcessStandardSuite.class)
-@GraphProviderClass(provider = DefaultNeo4jGraphProvider.class, graph = Neo4jGraph.class)
-public class Neo4jGraphGroovyProcessStandardTest {
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/SimpleNeo4jGraphGroovyProcessStandardTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/SimpleNeo4jGraphGroovyProcessStandardTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/SimpleNeo4jGraphGroovyProcessStandardTest.java
new file mode 100644
index 0000000..7e81bc8
--- /dev/null
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/process/groovy/SimpleNeo4jGraphGroovyProcessStandardTest.java
@@ -0,0 +1,36 @@
+/*
+ *
+ * * 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.neo4j.process.groovy;
+
+import org.apache.tinkerpop.gremlin.GraphProviderClass;
+import org.apache.tinkerpop.gremlin.neo4j.SimpleNeo4jGraphProvider;
+import org.apache.tinkerpop.gremlin.neo4j.structure.simple.SimpleNeo4jGraph;
+import org.apache.tinkerpop.gremlin.process.GroovyProcessStandardSuite;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+@RunWith(GroovyProcessStandardSuite.class)
+@GraphProviderClass(provider = SimpleNeo4jGraphProvider.class, graph = SimpleNeo4jGraph.class)
+public class SimpleNeo4jGraphGroovyProcessStandardTest {
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/FullNeo4jGraphStructureStandardTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/FullNeo4jGraphStructureStandardTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/FullNeo4jGraphStructureStandardTest.java
new file mode 100644
index 0000000..4bde085
--- /dev/null
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/FullNeo4jGraphStructureStandardTest.java
@@ -0,0 +1,36 @@
+/*
+ * 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.neo4j.structure;
+
+import org.apache.tinkerpop.gremlin.GraphProviderClass;
+import org.apache.tinkerpop.gremlin.neo4j.FullNeo4jGraphProvider;
+import org.apache.tinkerpop.gremlin.neo4j.structure.full.FullNeo4jGraph;
+import org.apache.tinkerpop.gremlin.structure.StructureStandardSuite;
+import org.junit.runner.RunWith;
+
+
+/**
+ * Executes the Standard Gremlin Structure Test Suite using Neo4j.
+ *
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+@RunWith(StructureStandardSuite.class)
+@GraphProviderClass(provider = FullNeo4jGraphProvider.class, graph = FullNeo4jGraph.class)
+public class FullNeo4jGraphStructureStandardTest {
+}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/Neo4jGraphStructureStandardTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/Neo4jGraphStructureStandardTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/Neo4jGraphStructureStandardTest.java
deleted file mode 100644
index fca281e..0000000
--- a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/Neo4jGraphStructureStandardTest.java
+++ /dev/null
@@ -1,35 +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.neo4j.structure;
-
-import org.apache.tinkerpop.gremlin.GraphProviderClass;
-import org.apache.tinkerpop.gremlin.neo4j.DefaultNeo4jGraphProvider;
-import org.apache.tinkerpop.gremlin.structure.StructureStandardSuite;
-import org.junit.runner.RunWith;
-
-
-/**
- * Executes the Standard Gremlin Structure Test Suite using Neo4j.
- *
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-@RunWith(StructureStandardSuite.class)
-@GraphProviderClass(provider = DefaultNeo4jGraphProvider.class, graph = Neo4jGraph.class)
-public class Neo4jGraphStructureStandardTest {
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/NoMetaMultiNeo4jGraphStructureStandardIntegrateTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/NoMetaMultiNeo4jGraphStructureStandardIntegrateTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/NoMetaMultiNeo4jGraphStructureStandardIntegrateTest.java
deleted file mode 100644
index 6925d95..0000000
--- a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/NoMetaMultiNeo4jGraphStructureStandardIntegrateTest.java
+++ /dev/null
@@ -1,35 +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.neo4j.structure;
-
-import org.apache.tinkerpop.gremlin.GraphProviderClass;
-import org.apache.tinkerpop.gremlin.neo4j.NoMetaMultiPropertyNeo4jGraphProvider;
-import org.apache.tinkerpop.gremlin.structure.StructureStandardSuite;
-import org.junit.runner.RunWith;
-
-
-/**
- * Executes the Standard Gremlin Structure Test Suite using Neo4j.
- *
- * @author Stephen Mallette (http://stephen.genoprime.com)
- */
-@RunWith(StructureStandardSuite.class)
-@GraphProviderClass(provider = NoMetaMultiPropertyNeo4jGraphProvider.class, graph = Neo4jGraph.class)
-public class NoMetaMultiNeo4jGraphStructureStandardIntegrateTest {
-}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/18793698/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/SimpleNeo4jGraphStructureStandardTest.java
----------------------------------------------------------------------
diff --git a/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/SimpleNeo4jGraphStructureStandardTest.java b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/SimpleNeo4jGraphStructureStandardTest.java
new file mode 100644
index 0000000..aa43e06
--- /dev/null
+++ b/neo4j-gremlin/src/test/java/org/apache/tinkerpop/gremlin/neo4j/structure/SimpleNeo4jGraphStructureStandardTest.java
@@ -0,0 +1,36 @@
+/*
+ *
+ * * 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.neo4j.structure;
+
+import org.apache.tinkerpop.gremlin.GraphProviderClass;
+import org.apache.tinkerpop.gremlin.neo4j.SimpleNeo4jGraphProvider;
+import org.apache.tinkerpop.gremlin.neo4j.structure.simple.SimpleNeo4jGraph;
+import org.apache.tinkerpop.gremlin.structure.StructureStandardSuite;
+import org.junit.runner.RunWith;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+@RunWith(StructureStandardSuite.class)
+@GraphProviderClass(provider = SimpleNeo4jGraphProvider.class, graph = SimpleNeo4jGraph.class)
+public class SimpleNeo4jGraphStructureStandardTest {
+}