Skip to content

Commit 80901fc

Browse files
Updated parameter to optional (expected).
1 parent 730a7f1 commit 80901fc

File tree

5 files changed

+47
-20
lines changed

5 files changed

+47
-20
lines changed

Open.Serialization.Json.Newtonsoft/JsonSerializerFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ internal JsonSerializerInternal GetSerializerInternal(IJsonSerializationOptions?
7373
public IJsonSerializer GetSerializer(IJsonSerializationOptions? options = null, bool caseSensitive = false)
7474
=> GetSerializerInternal(options, caseSensitive);
7575

76-
public IJsonObjectSerializer GetObjectSerializer(IJsonSerializationOptions? options, bool caseSensitive = false)
76+
public IJsonObjectSerializer GetObjectSerializer(IJsonSerializationOptions? options = null, bool caseSensitive = false)
7777
=> GetSerializerInternal(options, caseSensitive);
7878
}
7979
}

Open.Serialization.Json.Newtonsoft/Open.Serialization.Json.Newtonsoft.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<RepositoryUrl>https://github.com/electricessence/Open.Serialization</RepositoryUrl>
1818
<RepositoryType>git</RepositoryType>
1919
<PackageTags>serialization json newtonsoft</PackageTags>
20-
<Version>2.2.2</Version>
20+
<Version>2.2.3</Version>
2121
<Nullable>enable</Nullable>
2222
</PropertyGroup>
2323

Open.Serialization.Json.Utf8Json/JsonSerializerFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ internal JsonSerializerInternal GetSerializerInternal(IJsonSerializationOptions?
4747
public IJsonSerializer GetSerializer(IJsonSerializationOptions? options = null, bool caseSensitive = false)
4848
=> GetSerializerInternal(options, caseSensitive);
4949

50-
public IJsonObjectSerializer GetObjectSerializer(IJsonSerializationOptions? options, bool caseSensitive = false)
50+
public IJsonObjectSerializer GetObjectSerializer(IJsonSerializationOptions? options = null, bool caseSensitive = false)
5151
=> GetSerializerInternal(options, caseSensitive);
5252
}
5353
}

Open.Serialization.Json.Utf8Json/Open.Serialization.Json.Utf8Json.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Part of the "Open" set of libraries.
1717
<RepositoryUrl>https://github.com/electricessence/Open.Serialization</RepositoryUrl>
1818
<RepositoryType>git</RepositoryType>
1919
<PackageTags>serialization json utf8json</PackageTags>
20-
<Version>2.2.2</Version>
20+
<Version>2.2.3</Version>
2121
<Nullable>enable</Nullable>
2222
</PropertyGroup>
2323

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,75 @@
11
using Open.Serialization.Json;
2-
using Open.Serialization.Json.Utf8Json;
2+
using System.Diagnostics;
3+
using System.IO;
4+
using System.Threading.Tasks;
35
using Xunit;
46

57
namespace Open.Serialization.Tests
68
{
79
public static class ParityTests
810
{
911
[Fact]
10-
public static void EnsureBasicParity()
12+
public static async Task EnsureBasicParity()
1113
{
1214
{
1315
var newtonsoftFactory = new Json.Newtonsoft.JsonSerializerFactory(Json.Newtonsoft.CamelCaseJson.Minimal(true));
1416
var systemFactory = new Json.System.JsonSerializerFactory(Json.System.CamelCaseJson.Minimal(true));
1517

16-
CompareFactories(newtonsoftFactory, systemFactory);
18+
await CompareFactories(newtonsoftFactory, systemFactory);
1719
}
1820

1921
{
20-
var newtonsoftFactory = new Json.Newtonsoft.JsonSerializerFactory(Json.Newtonsoft.CamelCaseJson.Minimal(true));
21-
var systemFactory = new JsonSerializerFactory(Utf8Json.Resolvers.StandardResolver.ExcludeNullCamelCase, true);
22+
var newtonsoftFactory = new Json.Newtonsoft.JsonSerializerFactory();
23+
var systemFactory = new Json.System.JsonSerializerFactory();
2224

23-
CompareFactories(newtonsoftFactory, systemFactory);
25+
await CompareFactories(newtonsoftFactory, systemFactory);
2426
}
2527

2628
{
27-
var newtonsoftFactory = new Json.Newtonsoft.JsonSerializerFactory();
28-
var systemFactory = new Json.System.JsonSerializerFactory();
29+
var newtonsoftFactory = new Json.Newtonsoft.JsonSerializerFactory(Json.Newtonsoft.CamelCaseJson.Minimal(true));
30+
var utf8JsonFactory = new Json.Utf8Json.JsonSerializerFactory(Utf8Json.Resolvers.StandardResolver.ExcludeNullCamelCase, true);
31+
32+
await CompareFactories(newtonsoftFactory, utf8JsonFactory);
2933

30-
CompareFactories(newtonsoftFactory, systemFactory);
34+
var ns = newtonsoftFactory.GetObjectSerializer();
35+
var utf8 = utf8JsonFactory.GetObjectSerializer();
36+
37+
var instance = SampleModel.Instance;
38+
var type = SampleModel.Instance.GetType();
39+
var expected = ns.Serialize(instance, type);
40+
var actual = utf8.Serialize(instance, type);
41+
if (Debugger.IsAttached) Debug.Assert(expected == actual);
42+
Assert.Equal(expected, actual);
3143
}
3244
}
3345

34-
static void CompareFactories(IJsonSerializerFactory expectedFactory, IJsonSerializerFactory actualFactory)
46+
static async ValueTask CompareFactories(IJsonSerializerFactory expectedFactory, IJsonSerializerFactory actualFactory)
3547
{
3648
var expectedSerializer = expectedFactory.GetSerializer();
3749
var actualSerializer = actualFactory.GetSerializer();
3850

39-
Assert.Equal(expectedSerializer.Serialize(SampleModel.Instance), actualSerializer.Serialize(SampleModel.Instance));
40-
Assert.Equal(expectedSerializer.Serialize(SampleModel.DecimalList), actualSerializer.Serialize(SampleModel.DecimalList));
41-
Assert.Equal(expectedSerializer.Serialize(SampleModel.DecimalLookup), actualSerializer.Serialize(SampleModel.DecimalLookup));
42-
Assert.Equal(expectedSerializer.Serialize(SampleModel.DoubleLookup), actualSerializer.Serialize(SampleModel.DoubleLookup));
43-
51+
await CompareSerializer(SampleModel.Instance);
52+
await CompareSerializer(SampleModel.DecimalList);
53+
await CompareSerializer(SampleModel.DecimalLookup);
54+
await CompareSerializer(SampleModel.DoubleLookup);
4455
expectedFactory.GetSerializer().Deserialize<SampleModel>(actualSerializer.Serialize(SampleModel.Instance));
45-
actualFactory.GetSerializer().Deserialize<SampleModel>(expectedSerializer.Serialize(SampleModel.Instance));
56+
57+
async ValueTask CompareSerializer<T>(T instance)
58+
{
59+
var expected = expectedSerializer.Serialize(instance);
60+
var actual = actualSerializer.Serialize(instance);
61+
if (Debugger.IsAttached) Debug.Assert(expected == actual);
62+
Assert.Equal(expected, actual);
63+
64+
using var stream = new MemoryStream();
65+
await actualSerializer.SerializeAsync(stream, instance);
66+
67+
stream.Position = 0;
68+
var result = await actualSerializer.DeserializeAsync<T>(stream);
69+
var actualAsync = actualSerializer.Serialize(result);
70+
if (Debugger.IsAttached) Debug.Assert(expected == actualAsync);
71+
Assert.Equal(expected, actual);
72+
}
4673
}
4774
}
4875
}

0 commit comments

Comments
 (0)