public void HandlesCollectionChangesByResetCorrectly()
{
var collection = new FastObservableCollection<TestModel>();
var wrapper = new ChangeNotificationWrapper(collection);
var itemsReset = false;
var itemsAdded = false;
var itemsRemoved = false;
var model = new TestModel();
collection.Add(model);
wrapper.CollectionChanged += (sender, e) =>
{
if (e.OldItems != null)
{
itemsRemoved = true;
}
if (e.Action == NotifyCollectionChangedAction.Reset)
{
itemsReset = true;
}
if (e.NewItems != null)
{
itemsAdded = true;
}
};
using (collection.SuspendChangeNotifications())
{
((ICollection<TestModel>)collection).ReplaceRange(new [] { new TestModel() });
}
Assert.IsFalse(itemsAdded);
Assert.IsFalse(itemsRemoved);
Assert.IsTrue(itemsReset);
}