public void PurgeUnusedImages_Remove_Only_Unused_Keys_And_Notify() { var target = new XProject(); int count = 0; target.PropertyChanged += (sender, e) => { count++; }; var key1 = XProject.ImageEntryNamePrefix + "image1.jpg"; var key2 = XProject.ImageEntryNamePrefix + "image2.jpg"; var key3 = XProject.ImageEntryNamePrefix + "image3.jpg"; target.AddImage(key1, new byte[] { }); target.AddImage(key2, new byte[] { }); target.AddImage(key3, new byte[] { }); var used = ImmutableHashSet.Create(key2); target.PurgeUnusedImages(used); Assert.Equal(key2, target.Keys.First().Key); Assert.Equal(1, target.Keys.Count()); Assert.Equal(4, count); }
public void PurgeUnusedImages_Remove_All_Keys_And_Notify() { var target = new XProject(); int count = 0; target.PropertyChanged += (sender, e) => { count++; }; var key1 = XProject.ImageEntryNamePrefix + "image1.jpg"; var key2 = XProject.ImageEntryNamePrefix + "image2.jpg"; var key3 = XProject.ImageEntryNamePrefix + "image3.jpg"; target.AddImage(key1, new byte[] { }); target.AddImage(key2, new byte[] { }); target.AddImage(key3, new byte[] { }); var used = Enumerable.Empty <string>().ToImmutableHashSet(); target.PurgeUnusedImages(used); Assert.Equal(0, target.Keys.Count()); Assert.Equal(4, count); }