diff --git a/MvvmHelpers.UnitTests/ObservableRangeTests.cs b/MvvmHelpers.UnitTests/ObservableRangeTests.cs index a222440..841a5a3 100644 --- a/MvvmHelpers.UnitTests/ObservableRangeTests.cs +++ b/MvvmHelpers.UnitTests/ObservableRangeTests.cs @@ -108,12 +108,11 @@ public void ReplaceRange_on_empty_collection_should_NOT_raise_collection_changes public void ReplaceRange_should_NOT_mutate_source() { var sourceData = new List(new[] { 1, 2, 3 }); - var collection = new ObservableRangeCollection(new[] { 4, 5, 6 }); + var collection = new ObservableRangeCollection(new[] { 1, 2, 3, 4, 5, 6 }); - collection.RemoveRange(sourceData); + collection.ReplaceRange(sourceData); Assert.IsTrue(sourceData.Count == 3, "source data was mutated"); - Assert.IsTrue(collection.Count == 3, "collection was mutated"); } [TestMethod] @@ -157,7 +156,7 @@ public void RemoveRangeEmpty() } [TestMethod] - public void RemoveRange_should_NOT_mutate_source() + public void RemoveRange_should_NOT_mutate_source_when_source_data_is_not_present() { var sourceData = new List(new[] { 1, 2, 3 }); var collection = new ObservableRangeCollection(new[] { 4, 5, 6 }); @@ -165,7 +164,29 @@ public void RemoveRange_should_NOT_mutate_source() collection.RemoveRange(sourceData, NotifyCollectionChangedAction.Remove); Assert.IsTrue(sourceData.Count == 3, "source data was mutated"); - Assert.IsTrue(collection.Count == 3, "collection was mutated"); + } + + [TestMethod] + public void RemoveRange_should_NOT_mutate_source_when_source_data_is_present() + { + var sourceData = new List(new[] { 1, 2, 3 }); + var collection = new ObservableRangeCollection(new[] { 1, 2, 3, 4, 5, 6 }); + + collection.RemoveRange(sourceData, NotifyCollectionChangedAction.Remove); + + Assert.IsTrue(sourceData.Count == 3, "source data was mutated"); + } + + [TestMethod] + public void RemoveRange_should_NOT_mutate_collection_when_source_data_is_not_present() + { + var sourceData = new List(new[] { 1, 2, 3 }); + var collection = new ObservableRangeCollection(new[] { 4, 5, 6, 7, 8, 9 }); + + collection.RemoveRange(sourceData, NotifyCollectionChangedAction.Remove); + + // the collection should not be modified if the source items are not found + Assert.IsTrue(collection.Count == 6, "collection was mutated"); } } }