You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/07/10 09:56:57 UTC
[tinkerpop] 01/03: Expanded server tests to better cover all binary
serializers CTR
This is an automated email from the ASF dual-hosted git repository.
spmallette pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit e23baf7c4538ff879daeed274a719d5f2998ef08
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Wed Jul 10 05:55:12 2019 -0400
Expanded server tests to better cover all binary serializers CTR
---
.../server/GremlinResultSetIntegrateTest.java | 101 +++++++++++----------
1 file changed, 51 insertions(+), 50 deletions(-)
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
index 2f3090a..b002d36 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
@@ -24,9 +24,10 @@ import org.apache.tinkerpop.gremlin.driver.MessageSerializer;
import org.apache.tinkerpop.gremlin.driver.Result;
import org.apache.tinkerpop.gremlin.driver.ResultSet;
import org.apache.tinkerpop.gremlin.driver.Tokens;
+import org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1;
+import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0;
import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV3d0;
import org.apache.tinkerpop.gremlin.driver.ser.Serializers;
-import org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin;
import org.apache.tinkerpop.gremlin.process.traversal.Path;
import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@ -36,51 +37,75 @@ 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.io.IoTest;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdge;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedPath;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedProperty;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertex;
-import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertexProperty;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceEdge;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferencePath;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceProperty;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertex;
+import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertexProperty;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3d0;
-import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
import org.hamcrest.CoreMatchers;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
-import static org.hamcrest.CoreMatchers.anyOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.IsInstanceOf.instanceOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
/**
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
+@RunWith(Parameterized.class)
public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrationTest {
private Cluster cluster;
private Client client;
+ @Parameterized.Parameters(name = "{0}")
+ public static Iterable<Object[]> data() {
+ final MessageSerializer graphBinaryMessageSerializerV1 = new GraphBinaryMessageSerializerV1();
+
+ // must configure Gryo with "custom" since it's configured on the server
+ final MessageSerializer gryoMessageSerializerV3d0 = new GryoMessageSerializerV3d0();
+ final Map<String,Object> gryoV3d0Config = new HashMap<>();
+ gryoV3d0Config.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
+ gryoV3d0Config.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
+ gryoMessageSerializerV3d0.configure(gryoV3d0Config, null);
+
+ final MessageSerializer gryoMessageSerializerV1d0 = new GryoMessageSerializerV1d0();
+ final Map<String,Object> gryoV1d0Config = new HashMap<>();
+ gryoV1d0Config.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
+ gryoV1d0Config.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
+ gryoMessageSerializerV1d0.configure(gryoV1d0Config, null);
+
+ return Arrays.asList(new Object[][]{
+ {Serializers.GRAPHBINARY_V1D0, graphBinaryMessageSerializerV1},
+ {Serializers.GRYO_V3D0, gryoMessageSerializerV3d0},
+ {Serializers.GRYO_V1D0, gryoMessageSerializerV1d0}
+ });
+ }
+
+ @Parameterized.Parameter(value = 0)
+ public Serializers name;
+
+ @Parameterized.Parameter(value = 1)
+ public MessageSerializer messageSerializer;
+
@Before
public void beforeTest() {
- final MessageSerializer serializer = new GryoMessageSerializerV3d0();
- final Map<String,Object> c = new HashMap<>();
- c.put("ioRegistries", Collections.singletonList(TinkerIoRegistryV3d0.class.getName()));
- c.put("custom", Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
-
- serializer.configure(c, null);
- cluster = TestClientFactory.build().serializer(serializer).create();
+ cluster = TestClientFactory.build().serializer(messageSerializer).create();
client = cluster.connect();
}
@@ -135,19 +160,9 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
@Test
public void shouldHandleVertexResult() throws Exception {
- final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).V(1).next()");
+ final ResultSet results = client.submit("gmodern.V(1).next()");
final Vertex v = results.all().get().get(0).getVertex();
- assertThat(v, instanceOf(DetachedVertex.class));
-
- assertEquals("marko", v.properties("name").next().value());
- v.properties().forEachRemaining(p -> {
- if (p.key().equals("name"))
- assertEquals("marko", p.value());
- else if (p.key().equals("age"))
- assertEquals(29, p.value());
- else
- fail("Should not have any other keys besides 'name' and 'age'");
- });
+ assertThat(v, instanceOf(ReferenceVertex.class));
}
@Test
@@ -160,35 +175,34 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
assertEquals(1, v.id());
assertEquals("person", v.label());
- assertEquals(0, IteratorUtils.count(v.properties()));
}
@Test
public void shouldHandleVertexPropertyResult() throws Exception {
- final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).V().properties('name').next()");
+ final ResultSet results = client.submit("gmodern.V().properties('name').next()");
final VertexProperty<String> v = results.all().get().get(0).getVertexProperty();
- assertThat(v, instanceOf(DetachedVertexProperty.class));
+ assertThat(v, instanceOf(ReferenceVertexProperty.class));
}
@Test
public void shouldHandleEdgeResult() throws Exception {
- final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).E().next()");
+ final ResultSet results = client.submit("gmodern.E().next()");
final Edge e = results.all().get().get(0).getEdge();
- assertThat(e, instanceOf(DetachedEdge.class));
+ assertThat(e, instanceOf(ReferenceEdge.class));
}
@Test
public void shouldHandlePropertyResult() throws Exception {
- final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).E().properties('weight').next()");
+ final ResultSet results = client.submit("gmodern.E().properties('weight').next()");
final Property<Double> p = results.all().get().get(0).getProperty();
- assertThat(p, instanceOf(DetachedProperty.class));
+ assertThat(p, instanceOf(ReferenceProperty.class));
}
@Test
public void shouldHandlePathResult() throws Exception {
- final ResultSet results = client.submit("gmodern.withoutStrategies(ReferenceElementStrategy).V().out().path()");
+ final ResultSet results = client.submit("gmodern.V().out().path()");
final Path p = results.all().get().get(0).getPath();
- assertThat(p, instanceOf(DetachedPath.class));
+ assertThat(p, instanceOf(ReferencePath.class));
}
@Test
@@ -211,17 +225,4 @@ public class GremlinResultSetIntegrateTest extends AbstractGremlinServerIntegrat
assertEquals(3L, m.get(1L));
assertEquals(3L, m.get(3L));
}
-
- @Test
- public void shouldHandleMapObjectResult() throws Exception {
- final ResultSet results = client.submit("gmodern.V().groupCount().by(bothE().count()).next()");
- final List<Result> resultList = results.all().get();
- assertEquals(2, resultList.size());
- final Map.Entry firstEntry = resultList.get(0).get(HashMap.Entry.class);
- final Map.Entry secondEntry = resultList.get(1).get(HashMap.Entry.class);
- assertThat(firstEntry.getKey(), anyOf(is(3L), is(1L)));
- assertThat(firstEntry.getValue(), is(3L));
- assertThat(secondEntry.getKey(), anyOf(is(3L), is(1L)));
- assertThat(secondEntry.getValue(), is(3L));
- }
}