Merge pull request #1121 from JonHanna/fix_1120

Don't write duplicate nulls to trace for object or Uri
This commit is contained in:
James Newton-King
2016-12-31 12:07:43 +13:00
committed by GitHub
2 changed files with 84 additions and 3 deletions
@@ -89,6 +89,66 @@ 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 WriteNullByteArray()
{
StringWriter sw = new StringWriter();
TraceJsonWriter traceJsonWriter = new TraceJsonWriter(new JsonTextWriter(sw));
traceJsonWriter.WriteStartArray();
traceJsonWriter.WriteValue((byte[])null);
traceJsonWriter.WriteEndArray();
StringAssert.AreEqual(@"Serialized JSON:
[
null
]", traceJsonWriter.GetSerializedJsonMessage());
}
[Test]
public void WriteJRaw()
{
@@ -69,7 +69,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(DateTime value)
@@ -151,7 +158,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 +215,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)