diff --git a/Src/Newtonsoft.Json.Tests/Serialization/ReferenceLoopHandlingTests.cs b/Src/Newtonsoft.Json.Tests/Serialization/ReferenceLoopHandlingTests.cs index 324ae4002..0dc88c559 100644 --- a/Src/Newtonsoft.Json.Tests/Serialization/ReferenceLoopHandlingTests.cs +++ b/Src/Newtonsoft.Json.Tests/Serialization/ReferenceLoopHandlingTests.cs @@ -55,6 +55,23 @@ public void ReferenceLoopHandlingTest() Assert.AreEqual(ReferenceLoopHandling.Ignore, attribute.ReferenceLoopHandling); } + [Test] + public void HandleObjectReferenceLoopBadEquality() + { + ReferenceLoopHandlingObjectBadEquality o = new ReferenceLoopHandlingObjectBadEquality(); + o.Value = new ReferenceLoopHandlingObjectBadEquality(); + + string json = JsonConvert.SerializeObject(o, Formatting.Indented, new JsonSerializerSettings + { + ReferenceLoopHandling = ReferenceLoopHandling.Error + }); + Assert.AreEqual(@"{ + ""Value"": { + ""Value"": null + } +}", json); + } + [Test] public void IgnoreObjectReferenceLoop() { @@ -306,6 +323,22 @@ public class ReferenceLoopHandlingDictionary : Dictionary ReferenceEquals(o,value)) != -1) { string message = "Self referencing loop detected"; if (property != null)