From 84b5c15eabd86a3c13ec1c08057ac186e17a512b Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Sun, 18 Aug 2019 17:49:58 +1200 Subject: [PATCH] Clean up merge changes --- Src/Newtonsoft.Json.Tests/Linq/MergeTests.cs | 20 ++++++++++++++++++-- Src/Newtonsoft.Json/Linq/JContainer.cs | 2 ++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Src/Newtonsoft.Json.Tests/Linq/MergeTests.cs b/Src/Newtonsoft.Json.Tests/Linq/MergeTests.cs index 0a4c7331..7108c92e 100644 --- a/Src/Newtonsoft.Json.Tests/Linq/MergeTests.cs +++ b/Src/Newtonsoft.Json.Tests/Linq/MergeTests.cs @@ -47,11 +47,27 @@ namespace Newtonsoft.Json.Tests.Linq public class MergeTests : TestFixtureBase { [Test] - public void MergeSelf() + public void MergeArraySelf() { var a = new JArray { "1", "2" }; a.Merge(a, new JsonMergeSettings { MergeArrayHandling = MergeArrayHandling.Replace }); - Assert.AreEqual(a, new JArray { "1", "2" }); + Assert.AreEqual(new JArray { "1", "2" }, a); + } + + [Test] + public void MergeObjectSelf() + { + var a = new JObject + { + ["1"] = 1, + ["2"] = 2 + }; + a.Merge(a, new JsonMergeSettings { MergeArrayHandling = MergeArrayHandling.Replace }); + Assert.AreEqual(new JObject + { + ["1"] = 1, + ["2"] = 2 + }, a); } [Test] diff --git a/Src/Newtonsoft.Json/Linq/JContainer.cs b/Src/Newtonsoft.Json/Linq/JContainer.cs index 3e1a6449..81833940 100644 --- a/Src/Newtonsoft.Json/Linq/JContainer.cs +++ b/Src/Newtonsoft.Json/Linq/JContainer.cs @@ -1165,7 +1165,9 @@ namespace Newtonsoft.Json.Linq break; case MergeArrayHandling.Replace: if (target == content) + { break; + } target.ClearItems(); foreach (JToken item in content) {