Call nullable WriteValue overloads in TraceJsonWriter (#1139)

Fixes #1138
This commit is contained in:
Jon Hanna
2017-01-07 20:25:46 +13:00
committed by James Newton-King
parent 260dfedac5
commit 218c25c859
2 changed files with 269 additions and 0 deletions
@@ -7311,6 +7311,36 @@ Path '', line 1, position 1.");
Assert.AreEqual(new Guid("d8220a4b-75b1-4b7a-8112-b7bdae956a45"), c.Id);
}
[Test]
public void SerializeNullableGuidCustomWriterOverridesNullableGuid()
{
NullableGuid ng = new NullableGuid {Id = Guid.Empty};
NullableGuidCountingJsonTextWriter writer = new NullableGuidCountingJsonTextWriter(new StreamWriter(Stream.Null));
JsonSerializer serializer = JsonSerializer.Create();
serializer.Serialize(writer, ng);
Assert.AreEqual(1, writer.NullableGuidCount);
MemoryTraceWriter traceWriter = new MemoryTraceWriter();
serializer.TraceWriter = traceWriter;
serializer.Serialize(writer, ng);
Assert.AreEqual(2, writer.NullableGuidCount);
}
private class NullableGuidCountingJsonTextWriter : JsonTextWriter
{
public NullableGuidCountingJsonTextWriter(TextWriter textWriter)
: base(textWriter)
{
}
public int NullableGuidCount { get; private set; }
public override void WriteValue(Guid? value)
{
base.WriteValue(value);
++NullableGuidCount;
}
}
[Test]
public void DeserializeGuid()
{