Skip to content

Commit f00adf4

Browse files
committed
Merge remote-tracking branch 'upstream/main'
2 parents b94ed50 + 82303c9 commit f00adf4

File tree

2 files changed

+45
-3
lines changed

2 files changed

+45
-3
lines changed

src/Arcus.Testing.Assert/AssertJson.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,11 @@ private static JsonDifference CompareJsonNode(JsonNode expected, JsonNode actual
216216
JsonArray actualArray => CompareJsonArray(expected, actualArray, options),
217217
JsonObject actualObject => CompareJsonObject(expected, actualObject, options),
218218
JsonValue actualValue => CompareJsonValue(expected, actualValue),
219-
null => expected is null ? null : new JsonDifference(ActualIsNull, expected.GetPath()),
219+
null => expected is null ? null : new JsonDifference(ActualIsNull, expected.GetPath())
220+
{
221+
ExpectedNodeDiff = expected.ToString(),
222+
ActualNodeDiff = "null"
223+
},
220224
_ => null
221225
};
222226
}
@@ -470,8 +474,8 @@ internal class JsonDifference
470474
internal JsonDifference(JsonDifferenceKind kind, JsonNode expected, JsonNode actual)
471475
: this(kind, expected?.GetPath() ?? actual?.GetPath() ?? "<not-available>", expected: Describe(expected), actual: Describe(actual))
472476
{
473-
ExpectedNodeDiff = expected?.ToString();
474-
ActualNodeDiff = actual?.ToString();
477+
ExpectedNodeDiff = expected?.ToString() ?? "null";
478+
ActualNodeDiff = actual?.ToString() ?? "null";
475479
}
476480

477481
internal JsonDifference(JsonDifferenceKind kind, string path, object actual, object expected)

src/Arcus.Testing.Tests.Unit/Assert_/AssertJsonTests.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,44 @@ [ [
539539
""name"": ""post-metal""
540540
}"
541541
};
542+
yield return new object[]
543+
{
544+
"{ \"this\": \"that\", \"options\": null }",
545+
"{ \"this\": \"that\", \"options\": { \"and\": \"this\" } }",
546+
@"Expected: Actual:
547+
null {
548+
""and"": ""this""
549+
}"
550+
};
551+
yield return new object[]
552+
{
553+
"{ \"this\": \"that\", \"options\": { \"and\": \"this\" } }",
554+
"{ \"this\": \"that\", \"options\": null }",
555+
@"Expected: Actual:
556+
{ null
557+
""and"": ""this""
558+
}"
559+
};
560+
yield return new object[]
561+
{
562+
"null",
563+
"[ \"this\", \"that\" ]",
564+
@"Expected: Actual:
565+
null [
566+
""this"",
567+
""that""
568+
]"
569+
};
570+
yield return new object[]
571+
{
572+
"[ \"this\", \"that\" ]",
573+
"null",
574+
@"Expected: Actual:
575+
[ null
576+
""this"",
577+
""that""
578+
] "
579+
};
542580
}
543581
}
544582

0 commit comments

Comments
 (0)