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));
-    }
 }