Skip to content

Commit 9809a17

Browse files
authored
Add tests to increase code coverage (#32)
1 parent 2690785 commit 9809a17

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

src/Destructurama.JsonNet.Tests/JsonNetTypesDestructuringTests.cs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ internal class HasName
2828

2929
public class JsonNetTypesDestructuringTests
3030
{
31-
[Fact]
32-
public void AttributesAreConsultedWhenDestructuring()
31+
[Theory]
32+
[InlineData(TypeNameHandling.Auto)]
33+
[InlineData(TypeNameHandling.Objects)]
34+
public void AttributesAreConsultedWhenDestructuring(TypeNameHandling typeNameHandling)
3335
{
3436
LogEvent evt = null!;
3537

@@ -51,7 +53,7 @@ public void AttributesAreConsultedWhenDestructuring()
5153

5254
string ser = JsonConvert.SerializeObject(test, new JsonSerializerSettings
5355
{
54-
TypeNameHandling = TypeNameHandling.Auto
56+
TypeNameHandling = typeNameHandling
5557
});
5658
var dyn = JsonConvert.DeserializeObject<dynamic>(ser);
5759

@@ -67,5 +69,20 @@ public void AttributesAreConsultedWhenDestructuring()
6769
props["E"].LiteralValue().ShouldBeNull();
6870
props["ESPN"].ShouldBeOfType<DictionaryValue>();
6971
props["WSPN"].ShouldBeOfType<DictionaryValue>();
72+
73+
foreach (var value in props.Values.OfType<StructureValue>())
74+
{
75+
if (typeNameHandling == TypeNameHandling.Auto)
76+
value.TypeTag.ShouldBeNull();
77+
else if (typeNameHandling == TypeNameHandling.Objects)
78+
value.TypeTag.ShouldNotBeNull();
79+
}
80+
}
81+
82+
[Fact]
83+
public void TryDestructure_Should_Return_False_When_Called_With_Null()
84+
{
85+
var policy = new JsonNetDestructuringPolicy();
86+
policy.TryDestructure(null!, null!, out _).ShouldBeFalse();
7087
}
7188
}

src/Destructurama.JsonNet/Destructurama.JsonNet.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
1212
<PackageReference Include="Serilog" Version="3.1.1" />
1313
<PackageReference Include="PolySharp" Version="1.14.1" PrivateAssets="All" />
14+
<InternalsVisibleTo Include="Destructurama.JsonNet.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001000fe215af9b769897395aac526ca6744222fcf543787b16f58980844d6c49f65bbf0a62502d69646c58f14a8a29ba60d43c85a2a5ef1ed103c9a0e18d6491e4b0bafd2c25e290028d19203d4366ae5651aafd48abaf485588fd6a25fbe23c2c9a644a24337a041966b09cbb73dc3a080bf79564d15a26e97c1bff4f345ee256a9" />
1415
<InternalsVisibleTo Include="Benchmarks, PublicKey=00240000048000009400000006020000002400005253413100040000010001000fe215af9b769897395aac526ca6744222fcf543787b16f58980844d6c49f65bbf0a62502d69646c58f14a8a29ba60d43c85a2a5ef1ed103c9a0e18d6491e4b0bafd2c25e290028d19203d4366ae5651aafd48abaf485588fd6a25fbe23c2c9a644a24337a041966b09cbb73dc3a080bf79564d15a26e97c1bff4f345ee256a9" />
1516
</ItemGroup>
1617

0 commit comments

Comments
 (0)