Skip to content

Commit

Permalink
Respect json settings in ToObject (#693)
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonCropp committed Nov 1, 2022
1 parent 61d87b1 commit 93d04a7
Show file tree
Hide file tree
Showing 13 changed files with 46 additions and 14 deletions.
12 changes: 6 additions & 6 deletions docs/serializer-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ public Task ScopedSerializerFluent()
.AddExtraSettings(_ => _.TypeNameHandling = TypeNameHandling.All);
}
```
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3207-L3234' title='Snippet source file'>snippet source</a> | <a href='#snippet-scopedserializer' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3223-L3250' title='Snippet source file'>snippet source</a> | <a href='#snippet-scopedserializer' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Result:
Expand Down Expand Up @@ -967,7 +967,7 @@ public Task WithObsoleteProp()
return Verify(target);
}
```
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3172-L3193' title='Snippet source file'>snippet source</a> | <a href='#snippet-withobsoleteprop' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3188-L3209' title='Snippet source file'>snippet source</a> | <a href='#snippet-withobsoleteprop' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Result:
Expand Down Expand Up @@ -1015,7 +1015,7 @@ public Task WithObsoletePropIncludedFluent()
.IncludeObsoletes();
}
```
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3143-L3170' title='Snippet source file'>snippet source</a> | <a href='#snippet-withobsoletepropincluded' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3159-L3186' title='Snippet source file'>snippet source</a> | <a href='#snippet-withobsoletepropincluded' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Or globally:
Expand All @@ -1025,7 +1025,7 @@ Or globally:
```cs
VerifierSettings.IncludeObsoletes();
```
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3136-L3140' title='Snippet source file'>snippet source</a> | <a href='#snippet-withobsoletepropincludedglobally' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3152-L3156' title='Snippet source file'>snippet source</a> | <a href='#snippet-withobsoletepropincludedglobally' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Result:
Expand Down Expand Up @@ -1421,7 +1421,7 @@ public Task CustomExceptionPropFluent()
.IgnoreMembersThatThrow<CustomException>();
}
```
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3029-L3048' title='Snippet source file'>snippet source</a> | <a href='#snippet-ignoremembersthatthrow' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3045-L3064' title='Snippet source file'>snippet source</a> | <a href='#snippet-ignoremembersthatthrow' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Or globally:
Expand All @@ -1431,7 +1431,7 @@ Or globally:
```cs
VerifierSettings.IgnoreMembersThatThrow<CustomException>();
```
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3022-L3026' title='Snippet source file'>snippet source</a> | <a href='#snippet-ignoremembersthatthrowglobal' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L3038-L3042' title='Snippet source file'>snippet source</a> | <a href='#snippet-ignoremembersthatthrowglobal' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Result:
Expand Down
2 changes: 1 addition & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ public Task VerifyJsonJToken()
return Verify(target);
}
```
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L2915-L2950' title='Snippet source file'>snippet source</a> | <a href='#snippet-verifyjson' title='Start of snippet'>anchor</a></sup>
<sup><a href='/src/Verify.Tests/Serialization/SerializationTests.cs#L2931-L2966' title='Snippet source file'>snippet source</a> | <a href='#snippet-verifyjson' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->

Results in:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"$ref": "#/no/ref"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"$type": "MyNamespace.User, MyAssembly"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
$ref: #/no/ref
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
$type: MyNamespace.User, MyAssembly
}
26 changes: 21 additions & 5 deletions src/Verify.Tests/Serialization/SerializationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2873,11 +2873,27 @@ public Task ScrubJTokenByName()
}

[Fact]
public Task VerifyJsonGuid()
{
var json = "{'key': 'c572ff75-e1a2-49bd-99b9-4550697946c3'}";
return VerifyJson(json);
}
public Task VerifyJsonGuid() =>
VerifyJson("{'key': 'c572ff75-e1a2-49bd-99b9-4550697946c3'}");

[Fact]
public Task VerifyJsonEmpty() =>
VerifyJson("{}");

[Fact]
public Task VerifyJsonRefRespectSerializerSettings() =>
VerifyJson("{'$ref': '#/no/ref'}")
.AddExtraSettings(s => s.MetadataPropertyHandling = MetadataPropertyHandling.Ignore);

[Fact]
public Task VerifyJsonTypeRespectSerializerSettings() =>
VerifyJson("{ '$type': 'MyNamespace.User, MyAssembly'}")
.AddExtraSettings(s => s.MetadataPropertyHandling = MetadataPropertyHandling.Ignore);

[Fact]
public Task VerifyJsonOnlyIgnoredMember() =>
VerifyJson("{'key': 'value'}")
.IgnoreMember("key");

[Fact]
public Task VerifyJsonDateTime()
Expand Down
2 changes: 1 addition & 1 deletion src/Verify/Serialization/Converters/JArrayConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{
public override void Write(VerifyJsonWriter writer, JArray value)
{
var list = value.ToObject<List<object>>()!;
var list = value.ToObject<List<object>>(writer.Serializer)!;
writer.Serialize(list);
}
}
2 changes: 1 addition & 1 deletion src/Verify/Serialization/Converters/JObjectConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
public override void Write(VerifyJsonWriter writer, JObject value)
{
var dictionary = value
.ToObject<OrderedDictionary>()!;
.ToObject<OrderedDictionary>(writer.Serializer)!;
writer.Serialize(dictionary);
}
}

0 comments on commit 93d04a7

Please sign in to comment.