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 2016/08/23 10:58:17 UTC

[2/2] tinkerpop git commit: Added a base graphson test class to centralize ser/der logic

Added a base graphson test class to centralize ser/der logic


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/0676a776
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/0676a776
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/0676a776

Branch: refs/heads/TINKERPOP-1278
Commit: 0676a77683f86c3095202e8da9486c7045205ed2
Parents: 41d79b8
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Tue Aug 23 06:57:53 2016 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Tue Aug 23 06:57:53 2016 -0400

----------------------------------------------------------------------
 .../io/graphson/AbstractGraphSONTest.java       | 51 ++++++++++++++++++++
 .../GraphSONMapperEmbeddedTypeTest.java         | 41 ++++++----------
 ...aphSONMapperV2d0PartialEmbeddedTypeTest.java | 29 ++---------
 3 files changed, 70 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0676a776/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractGraphSONTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractGraphSONTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractGraphSONTest.java
new file mode 100644
index 0000000..dbff941
--- /dev/null
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/AbstractGraphSONTest.java
@@ -0,0 +1,51 @@
+/*
+ * 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.structure.io.graphson;
+
+import org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+
+/**
+ * @author Stephen Mallette (http://stephen.genoprime.com)
+ */
+public abstract class AbstractGraphSONTest {
+
+    public static <T> T serializeDeserialize(final ObjectMapper mapper, final Object o, final Class<T> clazz) throws Exception {
+        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
+            mapper.writeValue(stream, o);
+            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
+                return mapper.readValue(inputStream, clazz);
+            }
+        }
+    }
+
+    public static <T> T serializeDeserializeAuto(final ObjectMapper mapper, final Object o) throws Exception {
+        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
+            mapper.writeValue(stream, o);
+
+            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
+                // Object.class is the wildcard that triggers the auto discovery.
+                return (T)mapper.readValue(inputStream, Object.class);
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0676a776/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
index 6060a6d..716a803 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperEmbeddedTypeTest.java
@@ -23,9 +23,6 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
 import java.time.Duration;
 import java.time.Instant;
 import java.time.LocalDate;
@@ -47,7 +44,7 @@ import static org.junit.Assert.assertEquals;
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
 @RunWith(Parameterized.class)
-public class GraphSONMapperEmbeddedTypeTest {
+public class GraphSONMapperEmbeddedTypeTest extends AbstractGraphSONTest {
 
     @Parameterized.Parameters(name = "{0}")
     public static Iterable<Object[]> data() {
@@ -63,87 +60,77 @@ public class GraphSONMapperEmbeddedTypeTest {
     @Test
     public void shouldHandleDuration()throws Exception  {
         final Duration o = Duration.ZERO;
-        assertEquals(o, serializeDeserialize(o, Duration.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Duration.class));
     }
     @Test
     public void shouldHandleInstant()throws Exception  {
         final Instant o = Instant.ofEpochMilli(System.currentTimeMillis());
-        assertEquals(o, serializeDeserialize(o, Instant.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Instant.class));
     }
 
     @Test
     public void shouldHandleLocalDate()throws Exception  {
         final LocalDate o = LocalDate.now();
-        assertEquals(o, serializeDeserialize(o, LocalDate.class));
+        assertEquals(o, serializeDeserialize(mapper, o, LocalDate.class));
     }
 
     @Test
     public void shouldHandleLocalDateTime()throws Exception  {
         final LocalDateTime o = LocalDateTime.now();
-        assertEquals(o, serializeDeserialize(o, LocalDateTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, LocalDateTime.class));
     }
 
     @Test
     public void shouldHandleLocalTime()throws Exception  {
         final LocalTime o = LocalTime.now();
-        assertEquals(o, serializeDeserialize(o, LocalTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, LocalTime.class));
     }
 
     @Test
     public void shouldHandleMonthDay()throws Exception  {
         final MonthDay o = MonthDay.now();
-        assertEquals(o, serializeDeserialize(o, MonthDay.class));
+        assertEquals(o, serializeDeserialize(mapper, o, MonthDay.class));
     }
 
     @Test
     public void shouldHandleOffsetDateTime()throws Exception  {
         final OffsetDateTime o = OffsetDateTime.now();
-        assertEquals(o, serializeDeserialize(o, OffsetDateTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, OffsetDateTime.class));
     }
 
     @Test
     public void shouldHandleOffsetTime()throws Exception  {
         final OffsetTime o = OffsetTime.now();
-        assertEquals(o, serializeDeserialize(o, OffsetTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, OffsetTime.class));
     }
 
     @Test
     public void shouldHandlePeriod()throws Exception  {
         final Period o = Period.ofDays(3);
-        assertEquals(o, serializeDeserialize(o, Period.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Period.class));
     }
 
     @Test
     public void shouldHandleYear()throws Exception  {
         final Year o = Year.now();
-        assertEquals(o, serializeDeserialize(o, Year.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Year.class));
     }
 
     @Test
     public void shouldHandleYearMonth()throws Exception  {
         final YearMonth o = YearMonth.now();
-        assertEquals(o, serializeDeserialize(o, YearMonth.class));
+        assertEquals(o, serializeDeserialize(mapper, o, YearMonth.class));
     }
 
     @Test
     public void shouldHandleZonedDateTime()throws Exception  {
         final ZonedDateTime o = ZonedDateTime.now();
-        assertEquals(o, serializeDeserialize(o, ZonedDateTime.class));
+        assertEquals(o, serializeDeserialize(mapper, o, ZonedDateTime.class));
     }
 
     @Test
     public void shouldHandleZonedOffset()throws Exception  {
         final ZoneOffset o  = ZonedDateTime.now().getOffset();
-        assertEquals(o, serializeDeserialize(o, ZoneOffset.class));
-    }
-
-    public <T> T serializeDeserialize(final Object o, final Class<T> clazz) throws Exception {
-        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
-            mapper.writeValue(stream, o);
-
-            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
-                return mapper.readValue(inputStream, clazz);
-            }
-        }
+        assertEquals(o, serializeDeserialize(mapper, o, ZoneOffset.class));
     }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0676a776/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
index 0654283..ed10a93 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONMapperV2d0PartialEmbeddedTypeTest.java
@@ -46,7 +46,7 @@ import static org.junit.Assert.fail;
 /**
  * Tests automatic typed serialization/deserialization for GraphSON 2.0.
  */
-public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
+public class GraphSONMapperV2d0PartialEmbeddedTypeTest extends AbstractGraphSONTest {
 
     private final ObjectMapper mapper = GraphSONMapper.build()
             .version(GraphSONVersion.V2_0)
@@ -77,7 +77,7 @@ public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
 
         myList.add("kjkj");
         myList.add(UUID.randomUUID());
-        assertEquals(myList, serializeDeserializeAuto(myList));
+        assertEquals(myList, serializeDeserializeAuto(mapper, myList));
 
         // no "@value" property
         String s = "{\""+GraphSONTokens.VALUETYPE+"\":\""+GraphSONTokens.GREMLIN_TYPE_NAMESPACE +":uuid\", \"test\":2}";
@@ -139,8 +139,8 @@ public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
     public void shouldHandleRawPOJOs() throws Exception {
         final FunObject funObject = new FunObject();
         funObject.setVal("test");
-        assertEquals(funObject.toString(), serializeDeserialize(funObject, FunObject.class).toString());
-        assertEquals(funObject.getClass(), serializeDeserialize(funObject, FunObject.class).getClass());
+        assertEquals(funObject.toString(), serializeDeserialize(mapper, funObject, FunObject.class).toString());
+        assertEquals(funObject.getClass(), serializeDeserialize(mapper, funObject, FunObject.class).getClass());
     }
 
     @Test
@@ -250,7 +250,7 @@ public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
     @Test
     public void shouldHandleDefaultRemoteTraverser() throws Exception {
         final DefaultRemoteTraverser<String> o = new DefaultRemoteTraverser<>("test", 100);
-        assertEquals(o, serializeDeserialize(o, Traverser.class));
+        assertEquals(o, serializeDeserialize(mapper, o, Traverser.class));
     }
 
     // Class needs to be defined as statics as it's a nested class.
@@ -273,24 +273,5 @@ public class GraphSONMapperV2d0PartialEmbeddedTypeTest {
         }
     }
 
-    public <T> T serializeDeserialize(final Object o, final Class<T> clazz) throws Exception {
-        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
-            mapper.writeValue(stream, o);
-            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
-                return mapper.readValue(inputStream, clazz);
-            }
-        }
-    }
-
-    public <T> T serializeDeserializeAuto(final Object o) throws Exception {
-        try (final ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
-            mapper.writeValue(stream, o);
-
-            try (final InputStream inputStream = new ByteArrayInputStream(stream.toByteArray())) {
-                // Object.class is the wildcard that triggers the auto discovery.
-                return (T)mapper.readValue(inputStream, Object.class);
-            }
-        }
-    }
 
 }