You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by fl...@apache.org on 2018/08/13 17:38:19 UTC

[13/15] tinkerpop git commit: Merge branch 'tp32' into tp33

Merge branch 'tp32' into tp33


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

Branch: refs/heads/master
Commit: 25ae755118cc5d968652d4fd36bccb4d78ce9a7d
Parents: 5676e86 ea18963
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Mon Aug 13 19:23:39 2018 +0200
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Mon Aug 13 19:23:39 2018 +0200

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |   1 +
 gremlin-dotnet/glv/Gremlin.Net.csproj.template  |   3 +-
 .../src/Gremlin.Net/Gremlin.Net.csproj          |   3 +-
 .../IO/GraphSON/BigIntegerDeserializer.cs       |  38 +++++++
 .../IO/GraphSON/BigIntegerSerializer.cs         |  37 +++++++
 .../IO/GraphSON/ByteBufferDeserializer.cs       |  36 +++++++
 .../IO/GraphSON/ByteBufferSerializer.cs         |  36 +++++++
 .../Structure/IO/GraphSON/ByteConverter.cs      |  33 ++++++
 .../Structure/IO/GraphSON/CharConverter.cs      |  34 ++++++
 .../Structure/IO/GraphSON/DateDeserializer.cs   |  38 +++++++
 .../Structure/IO/GraphSON/DateSerializer.cs     |   9 +-
 .../IO/GraphSON/DurationDeserializer.cs         |  37 +++++++
 .../Structure/IO/GraphSON/DurationSerializer.cs |  38 +++++++
 .../Structure/IO/GraphSON/GraphSONReader.cs     |  14 ++-
 .../Structure/IO/GraphSON/GraphSONWriter.cs     |  13 ++-
 .../Structure/IO/GraphSON/Int16Converter.cs     |  34 ++++++
 .../Gremlin.Net.UnitTest.csproj                 |   1 +
 .../IO/GraphSON/GraphSONReaderTests.cs          | 108 +++++++++++++++++++
 .../IO/GraphSON/GraphSONWriterTests.cs          |  65 +++++++++++
 19 files changed, 563 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25ae7551/CHANGELOG.asciidoc
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25ae7551/gremlin-dotnet/src/Gremlin.Net/Gremlin.Net.csproj
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25ae7551/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONReader.cs
----------------------------------------------------------------------
diff --cc gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONReader.cs
index 94fcd8d,d11b14c..5ced99a
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONReader.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONReader.cs
@@@ -52,8 -49,15 +52,16 @@@ namespace Gremlin.Net.Structure.IO.Grap
                  {"g:Property", new PropertyDeserializer()},
                  {"g:VertexProperty", new VertexPropertyDeserializer()},
                  {"g:Path", new PathDeserializer()},
 +                {"g:T", new TDeserializer()},
-                 {"gx:BigDecimal", new DecimalConverter()}
+ 
+                 //Extended
+                 {"gx:BigDecimal", new DecimalConverter()},
+                 {"gx:Duration", new DurationDeserializer()},
+                 {"gx:BigInteger", new BigIntegerDeserializer()},
+                 {"gx:Byte", new ByteConverter()},
+                 {"gx:ByteBuffer", new ByteBufferDeserializer()},
+                 {"gx:Char", new CharConverter()},
+                 {"gx:Int16", new Int16Converter() }
              };
  
          /// <summary>

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25ae7551/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONWriter.cs
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25ae7551/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs
----------------------------------------------------------------------
diff --cc gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs
index c93630f,74bf385..00cf853
--- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs
@@@ -34,32 -36,22 +35,43 @@@ namespace Gremlin.Net.UnitTest.Structur
  {
      public class GraphSONReaderTests
      {
 -        private GraphSONReader CreateStandardGraphSONReader()
 -        {
 -            return new GraphSONReader();
 +        /// <summary>
 +        /// Parameters for each test supporting multiple versions of GraphSON
 +        /// </summary>
 +        public static IEnumerable<object[]> Versions => new []
 +        {
 +            new object[] { 2 },
 +            new object[] { 3 }
 +        };
 +        
 +        /// <summary>
 +        /// Parameters for each collections test supporting multiple versions of GraphSON
 +        /// </summary>
 +        public static IEnumerable<object[]> VersionsSupportingCollections => new []
 +        {
 +            new object[] { 3 }
 +        };
 +        
 +        private GraphSONReader CreateStandardGraphSONReader(int version)
 +        {
 +            if (version == 3)
 +            {
 +                return new GraphSON3Reader();
 +            }
 +            return new GraphSON2Reader();
          }
  
+         //During CI, we encountered a case where Newtonsoft.Json version 9.0.0
+         //was loaded although there is no obvious direct nor indirect dependency
+         //on that version of the library. An explicit reference to version
+         //11.0.0 from Gremlin.Net.UnitTest fixes that, however, it is
+         //still unclear what causes the downgrade. Until resolution, we keep this test.
+         [Fact]
+         public void NewtonsoftJsonVersionShouldSupportReallyBigIntegers()
+         {
+             Assert.Equal(new Version(11, 0, 0, 0), typeof(JToken).Assembly.GetName().Version);
+         }
+ 
          [Fact]
          public void ShouldDeserializeWithCustomDeserializerForNewType()
          {
@@@ -416,6 -334,102 +428,102 @@@
              Assert.NotNull(d);
              Assert.Equal("g:Traverser", (string)d["@type"]);
          }
+ 
 -        [Fact]
 -        public void ShouldDeserializeDurationToTimeSpan()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldDeserializeDurationToTimeSpan(int version)
+         {
+             var serializedValue = "{\"@type\":\"gx:Duration\",\"@value\":\"PT120H\"}";
 -            var reader = CreateStandardGraphSONReader();
++            var reader = CreateStandardGraphSONReader(version);
+ 
+             var jObject = JObject.Parse(serializedValue);
+             TimeSpan deserializedValue = reader.ToObject(jObject);
+ 
+             Assert.Equal(TimeSpan.FromDays(5), deserializedValue);
+         }
+ 
 -        [Fact]
 -        public void ShouldDeserializeBigInteger()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldDeserializeBigInteger(int version)
+         {
+             var serializedValue = "{\"@type\":\"gx:BigInteger\",\"@value\":123456789}";
 -            var reader = CreateStandardGraphSONReader();
++            var reader = CreateStandardGraphSONReader(version);
+ 
+             var jObject = JObject.Parse(serializedValue);
+             BigInteger deserializedValue = reader.ToObject(jObject);
+ 
+             Assert.Equal(BigInteger.Parse("123456789"), deserializedValue);
+         }
+ 
 -        [Fact]
 -        public void ShouldDeserializeBigIntegerValueAsString()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldDeserializeBigIntegerValueAsString(int version)
+         {
+             var serializedValue = "{\"@type\":\"gx:BigInteger\",\"@value\":\"123456789\"}";
 -            var reader = CreateStandardGraphSONReader();
++            var reader = CreateStandardGraphSONReader(version);
+ 
+             var jObject = JObject.Parse(serializedValue);
+             BigInteger deserializedValue = reader.ToObject(jObject);
+ 
+             Assert.Equal(BigInteger.Parse("123456789"), deserializedValue);
+         }
+ 
 -        [Fact]
 -        public void ShouldDeserializeReallyBigIntegerValue()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldDeserializeReallyBigIntegerValue(int version)
+         {
+             var serializedValue = "{\"@type\":\"gx:BigInteger\",\"@value\":123456789987654321123456789987654321}";
 -            var reader = CreateStandardGraphSONReader();
++            var reader = CreateStandardGraphSONReader(version);
+ 
+             var jObject = JObject.Parse(serializedValue);
+             BigInteger deserializedValue = reader.ToObject(jObject);
+ 
+             Assert.Equal(BigInteger.Parse("123456789987654321123456789987654321"), deserializedValue);
+         }
+ 
 -        [Fact]
 -        public void ShouldDeserializeByte()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldDeserializeByte(int version)
+         {
+             var serializedValue = "{\"@type\":\"gx:Byte\",\"@value\":1}";
 -            var reader = CreateStandardGraphSONReader();
++            var reader = CreateStandardGraphSONReader(version);
+ 
+             var jObject = JObject.Parse(serializedValue);
+             var deserializedValue = reader.ToObject(jObject);
+ 
+             Assert.Equal(1, deserializedValue);
+         }
+ 
 -        [Fact]
 -        public void ShouldDeserializeByteBuffer()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldDeserializeByteBuffer(int version)
+         {
+             var serializedValue = "{\"@type\":\"gx:ByteBuffer\",\"@value\":\"c29tZSBieXRlcyBmb3IgeW91\"}";
 -            var reader = CreateStandardGraphSONReader();
++            var reader = CreateStandardGraphSONReader(version);
+ 
+             var jObject = JObject.Parse(serializedValue);
+             var deserializedValue = reader.ToObject(jObject);
+ 
+             Assert.Equal(Convert.FromBase64String("c29tZSBieXRlcyBmb3IgeW91"), deserializedValue);
+         }
+ 
 -        [Fact]
 -        public void ShouldDeserializeChar()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldDeserializeChar(int version)
+         {
+             var serializedValue = "{\"@type\":\"gx:Char\",\"@value\":\"x\"}";
 -            var reader = CreateStandardGraphSONReader();
++            var reader = CreateStandardGraphSONReader(version);
+ 
+             var jObject = JObject.Parse(serializedValue);
+             var deserializedValue = reader.ToObject(jObject);
+ 
+             Assert.Equal('x', deserializedValue);
+         }
+ 
 -        [Fact]
 -        public void ShouldDeserializeInt16()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldDeserializeInt16(int version)
+         {
+             var serializedValue = "{\"@type\":\"gx:Int16\",\"@value\":100}";
 -            var reader = CreateStandardGraphSONReader();
++            var reader = CreateStandardGraphSONReader(version);
+ 
+             var jObject = JObject.Parse(serializedValue);
+             var deserializedValue = reader.ToObject(jObject);
+ 
+             Assert.Equal(100, deserializedValue);
+         }
      }
  
      internal class TestGraphSONDeserializer : IGraphSONDeserializer

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/25ae7551/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
----------------------------------------------------------------------
diff --cc gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
index 9f62abe,a544fb3..2d30fa1
--- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
@@@ -406,6 -347,70 +407,70 @@@ namespace Gremlin.Net.UnitTest.Structur
                  "{\"@type\":\"g:Lambda\",\"@value\":{\"script\":\"{ it.get() }\",\"language\":\"gremlin-groovy\",\"arguments\":-1}}";
              Assert.Equal(expected, graphSon);
          }
+ 
 -        [Fact]
 -        public void ShouldSerializeTimeSpan()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldSerializeTimeSpan(int version)
+         {
 -            var writer = CreateStandardGraphSONWriter();
++            var writer = CreateGraphSONWriter(version);
+             var timeSpan = new TimeSpan(5, 4, 3, 2, 1);
+ 
+             var graphSon = writer.WriteObject(timeSpan);
+ 
+             const string expected = "{\"@type\":\"gx:Duration\",\"@value\":\"P5DT4H3M2.001S\"}";
+             Assert.Equal(expected, graphSon);
+         }
+ 
 -        [Fact]
 -        public void ShouldSerializeBigInteger()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldSerializeBigInteger(int version)
+         {
 -            var writer = CreateStandardGraphSONWriter();
++            var writer = CreateGraphSONWriter(version);
+             var bigInteger = BigInteger.Parse("123456789987654321123456789987654321");
+ 
+             var graphSon = writer.WriteObject(bigInteger);
+ 
+             const string expected = "{\"@type\":\"gx:BigInteger\",\"@value\":\"123456789987654321123456789987654321\"}";
+             Assert.Equal(expected, graphSon);
+         }
+ 
 -        [Fact]
 -        public void ShouldSerializeByte()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldSerializeByte(int version)
+         {
 -            var writer = CreateStandardGraphSONWriter();
++            var writer = CreateGraphSONWriter(version);
+ 
+             var graphSon = writer.WriteObject((byte)1);
+ 
+             Assert.Equal("{\"@type\":\"gx:Byte\",\"@value\":1}", graphSon);
+         }
+ 
 -        [Fact]
 -        public void ShouldSerializeByteBuffer()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldSerializeByteBuffer(int version)
+         {
 -            var writer = CreateStandardGraphSONWriter();
++            var writer = CreateGraphSONWriter(version);
+ 
+             var graphSon = writer.WriteObject(Convert.FromBase64String("c29tZSBieXRlcyBmb3IgeW91"));
+ 
+             Assert.Equal("{\"@type\":\"gx:ByteBuffer\",\"@value\":\"c29tZSBieXRlcyBmb3IgeW91\"}", graphSon);
+         }
+ 
 -        [Fact]
 -        public void ShouldSerializeChar()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldSerializeChar(int version)
+         {
 -            var writer = CreateStandardGraphSONWriter();
++            var writer = CreateGraphSONWriter(version);
+ 
+             var graphSon = writer.WriteObject('x');
+ 
+             Assert.Equal("{\"@type\":\"gx:Char\",\"@value\":\"x\"}", graphSon);
+         }
+ 
 -        [Fact]
 -        public void ShouldSerializeInt16()
++        [Theory, MemberData(nameof(Versions))]
++        public void ShouldSerializeInt16(int version)
+         {
 -            var writer = CreateStandardGraphSONWriter();
++            var writer = CreateGraphSONWriter(version);
+ 
+             var graphSon = writer.WriteObject((short)100);
+ 
+             Assert.Equal("{\"@type\":\"gx:Int16\",\"@value\":100}", graphSon);
+         }
      }
  
      internal class TestGraphSONSerializer : IGraphSONSerializer