You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2017/12/15 21:32:34 UTC
[27/39] tinkerpop git commit: Features discovery fix and
DecimalConverter tests
Features discovery fix and DecimalConverter tests
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2e5d893f
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2e5d893f
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2e5d893f
Branch: refs/heads/TINKERPOP-1447
Commit: 2e5d893f7fb73b9f8877e35bfacd12cb4eca4483
Parents: 74d7ad6
Author: Jorge Bay Gondra <jo...@gmail.com>
Authored: Mon Dec 4 12:10:55 2017 +0100
Committer: Jorge Bay Gondra <jo...@gmail.com>
Committed: Mon Dec 4 12:10:55 2017 +0100
----------------------------------------------------------------------
.../Structure/IO/GraphSON/DecimalConverter.cs | 1 +
.../Structure/IO/GraphSON/GraphSONReader.cs | 6 ++++-
.../Structure/IO/GraphSON/NumberConverter.cs | 8 ++++++-
.../Gherkin/GherkinTestRunner.cs | 4 ++--
.../IO/GraphSON/GraphSONReaderTests.cs | 24 ++++++++++++++++++++
.../IO/GraphSON/GraphSONWriterTests.cs | 10 ++++++++
6 files changed, 49 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2e5d893f/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/DecimalConverter.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/DecimalConverter.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/DecimalConverter.cs
index 82cc646..6860137 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/DecimalConverter.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/DecimalConverter.cs
@@ -30,5 +30,6 @@ namespace Gremlin.Net.Structure.IO.GraphSON
protected override string GraphSONTypeName => "BigDecimal";
protected override Type HandledType => typeof(decimal);
protected override string Prefix => "gx";
+ protected override bool StringifyValue => true;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2e5d893f/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONReader.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONReader.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONReader.cs
index 60bafed..10835c8 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONReader.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/GraphSONReader.cs
@@ -113,7 +113,11 @@ namespace Gremlin.Net.Structure.IO.GraphSON
private dynamic ReadTypedValue(JToken typedValue)
{
var graphSONType = (string) typedValue[GraphSONTokens.TypeKey];
- return _deserializerByGraphSONType[graphSONType].Objectify(typedValue[GraphSONTokens.ValueKey], this);
+ if (!_deserializerByGraphSONType.TryGetValue(graphSONType, out var deserializer))
+ {
+ throw new InvalidOperationException($"Deserializer for \"{graphSONType}\" not found");
+ }
+ return deserializer.Objectify(typedValue[GraphSONTokens.ValueKey], this);
}
private dynamic ReadDictionary(JToken jtokenDict)
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2e5d893f/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/NumberConverter.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/NumberConverter.cs b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/NumberConverter.cs
index 294db12..53dad94 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/NumberConverter.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Structure/IO/GraphSON/NumberConverter.cs
@@ -32,6 +32,7 @@ namespace Gremlin.Net.Structure.IO.GraphSON
protected abstract string GraphSONTypeName { get; }
protected abstract Type HandledType { get; }
protected virtual string Prefix => "g";
+ protected virtual bool StringifyValue => false;
public dynamic Objectify(JToken graphsonObject, GraphSONReader reader)
{
@@ -40,7 +41,12 @@ namespace Gremlin.Net.Structure.IO.GraphSON
public Dictionary<string, dynamic> Dictify(dynamic objectData, GraphSONWriter writer)
{
- return GraphSONUtil.ToTypedValue(GraphSONTypeName, objectData, Prefix);
+ object value = objectData;
+ if (StringifyValue)
+ {
+ value = value?.ToString();
+ }
+ return GraphSONUtil.ToTypedValue(GraphSONTypeName, value, Prefix);
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2e5d893f/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
index 3610199..9cb3cf0 100644
--- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs
@@ -365,11 +365,11 @@ namespace Gremlin.Net.IntegrationTest.Gherkin
dir.Parent != null;
dir = dir.Parent)
{
- if (dir.Name == "gremlin-dotnet" && dir.Parent?.Name == "tinkerpop")
+ if (dir.Name == "gremlin-dotnet" && dir.GetFiles("pom.xml").Length == 1)
{
rootDir = dir.Parent;
break;
- }
+ }
}
if (rootDir == null)
{
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2e5d893f/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs
index 747a94e..d82dc86 100644
--- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONReaderTests.cs
@@ -164,6 +164,30 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON
}
[Fact]
+ public void ShouldDeserializeDecimal()
+ {
+ var serializedValue = "{\"@type\":\"gx:BigDecimal\",\"@value\":-8.201}";
+ var reader = CreateStandardGraphSONReader();
+
+ var jObject = JObject.Parse(serializedValue);
+ decimal deserializedValue = reader.ToObject(jObject);
+
+ Assert.Equal(-8.201M, deserializedValue);
+ }
+
+ [Fact]
+ public void ShouldDeserializeDecimalValueAsString()
+ {
+ var serializedValue = "{\"@type\":\"gx:BigDecimal\",\"@value\":\"7.50\"}";
+ var reader = CreateStandardGraphSONReader();
+
+ var jObject = JObject.Parse(serializedValue);
+ decimal deserializedValue = reader.ToObject(jObject);
+
+ Assert.Equal(7.5M, deserializedValue);
+ }
+
+ [Fact]
public void ShouldDeserializeList()
{
var serializedValue = "[{\"@type\":\"g:Int32\",\"@value\":5},{\"@type\":\"g:Int32\",\"@value\":6}]";
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2e5d893f/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
index 4cd831f..cf17b3c 100644
--- a/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
+++ b/gremlin-dotnet/test/Gremlin.Net.UnitTest/Structure/IO/GraphSON/GraphSONWriterTests.cs
@@ -80,6 +80,16 @@ namespace Gremlin.Net.UnitTest.Structure.IO.GraphSON
}
[Fact]
+ public void ShouldSerializeDecimal()
+ {
+ var writer = CreateStandardGraphSONWriter();
+
+ var graphSon = writer.WriteObject(6.5M);
+
+ Assert.Equal("{\"@type\":\"gx:BigDecimal\",\"@value\":\"6.5\"}", graphSon);
+ }
+
+ [Fact]
public void ShouldSerializeBoolean()
{
var writer = CreateStandardGraphSONWriter();