Don't write duplicate nulls to trace for object or Uri

Fixes #1120
This commit is contained in:
Jon Hanna
2016-12-30 15:06:52 +00:00
parent 322252a989
commit 2abc38a0ad
2 changed files with 61 additions and 2 deletions
@@ -89,6 +89,51 @@ Newtonsoft.Json Error: 0 : Error!
]", traceJsonWriter.GetSerializedJsonMessage());
}
[Test]
public void WriteNullObject()
{
StringWriter sw = new StringWriter();
TraceJsonWriter traceJsonWriter = new TraceJsonWriter(new JsonTextWriter(sw));
traceJsonWriter.WriteStartArray();
traceJsonWriter.WriteValue((object)null);
traceJsonWriter.WriteEndArray();
StringAssert.AreEqual(@"Serialized JSON:
[
null
]", traceJsonWriter.GetSerializedJsonMessage());
}
[Test]
public void WriteNullString()
{
StringWriter sw = new StringWriter();
TraceJsonWriter traceJsonWriter = new TraceJsonWriter(new JsonTextWriter(sw));
traceJsonWriter.WriteStartArray();
traceJsonWriter.WriteValue((string)null);
traceJsonWriter.WriteEndArray();
StringAssert.AreEqual(@"Serialized JSON:
[
null
]", traceJsonWriter.GetSerializedJsonMessage());
}
[Test]
public void WriteNullUri()
{
StringWriter sw = new StringWriter();
TraceJsonWriter traceJsonWriter = new TraceJsonWriter(new JsonTextWriter(sw));
traceJsonWriter.WriteStartArray();
traceJsonWriter.WriteValue((Uri)null);
traceJsonWriter.WriteEndArray();
StringAssert.AreEqual(@"Serialized JSON:
[
null
]", traceJsonWriter.GetSerializedJsonMessage());
}
[Test]
public void WriteJRaw()
{
@@ -151,7 +151,14 @@ namespace Newtonsoft.Json.Serialization
{
_textWriter.WriteValue(value);
_innerWriter.WriteValue(value);
base.WriteValue(value);
if (value == null)
{
base.WriteUndefined();
}
else
{
base.WriteValue(value);
}
}
}
@@ -201,7 +208,14 @@ namespace Newtonsoft.Json.Serialization
{
_textWriter.WriteValue(value);
_innerWriter.WriteValue(value);
base.WriteValue(value);
if (value == null)
{
base.WriteUndefined();
}
else
{
base.WriteValue(value);
}
}
public override void WriteValue(ushort value)