public void ReferenceCollectionChangedTest() { NotifyCollectionChangedEventArgs args = null; // Initialize Reference root = new Reference(String.Empty, "D:\\Data\\Project"); Reference folder1 = new Reference("folder1", ReferenceTargetKind.Directory); Reference file1 = new Reference("file1.txt", ReferenceTargetKind.File); Reference file2 = new Reference("file2.txt", ReferenceTargetKind.File); Reference file3 = new Reference("file3.txt", ReferenceTargetKind.File); root.CollectionChanged += new NotifyCollectionChangedEventHandler((sender, e) => args = e); // Add item args = null; root.Add(folder1); Assert.IsNotNull(args); Assert.AreEqual(NotifyCollectionChangedAction.Add, args.Action); Assert.AreEqual(1, args.NewItems.Count); Assert.AreEqual(folder1, args.NewItems[0]); Assert.IsNull(args.OldItems); args = null; folder1.Add(file1); Assert.IsNull(args); args = null; root.Add(file2); root.Add(file3); Assert.IsNotNull(args); // Remove args = null; root.Remove(file3); Assert.IsNotNull(root); Assert.AreEqual(NotifyCollectionChangedAction.Remove, args.Action); Assert.IsNull(args.NewItems); Assert.AreEqual(1, args.OldItems.Count); Assert.AreEqual(file3, args.OldItems[0]); // Unparent args = null; file2.Unparent(); Assert.IsNotNull(args); Assert.AreEqual(NotifyCollectionChangedAction.Remove, args.Action); Assert.IsNull(args.NewItems); Assert.AreEqual(1, args.OldItems.Count); Assert.AreEqual(file2, args.OldItems[0]); // Clear args = null; root.Clear(); Assert.IsNotNull(args); Assert.AreEqual(NotifyCollectionChangedAction.Reset, args.Action); Assert.IsNull(args.NewItems); Assert.IsNull(args.OldItems); }
protected internal override void SetNewBuffer(ByteBuffer newBuffer) { _buffer.Clear(); _buffer = new SoftReference <ByteBuffer>(newBuffer); }