コード例 #1
0
        public void Freeze()
        {
            //Arrange.
            ObservableCollectionEx <object> collection = new ObservableCollectionEx <object>();
            CollectionChangedHandler        handler    = SetupNotifyCollectionChangedHandler(collection);

            //Act.
            collection.FreezeCollectionNotifications();
            collection.Add(new object());

            //Assert.
            Assert.That(handler.EventCount == 0, $"CollectionChanged event was raised {handler.EventCount} time(s) when it was allegedly frozen.");
        }
コード例 #2
0
        public void CollectionChangedDetectionWhileFrozen()
        {
            //Arrange.
            ObservableCollectionEx <object> collection = new ObservableCollectionEx <object>();
            CollectionChangedHandler        handler    = SetupNotifyCollectionChangedHandler(collection);

            //Act.
            collection.FreezeCollectionNotifications();
            collection.Add(new object());

            //Assert.
            Assert.That(collection.CollectionChangedWhileFrozen, $"The collection changed while frozen but the change was not reported in the {nameof(ObservableCollectionEx<object>.CollectionChangedWhileFrozen)} property.");
        }
コード例 #3
0
        public void AutoFireCollectionChangedOnUnfreeze()
        {
            //Arrange.
            ObservableCollectionEx <object> collection = new ObservableCollectionEx <object>();
            CollectionChangedHandler        handler    = SetupNotifyCollectionChangedHandler(collection);

            //Act.
            collection.FreezeCollectionNotifications();
            collection.Add(new object());
            collection.UnfreezeCollectionNotifications();

            //Assert.
            Assert.That(handler.EventCount == 1, $"CollectionChanged event was raised {handler.EventCount} time(s) when the count was expected to be 1.");
        }
コード例 #4
0
ファイル: HeapTests.cs プロジェクト: fallk/HSNXT.Extensions
        public void Direct()
        {
            CollectionChangedHandler <int> cch;
            ItemsAddedHandler <int>        iah;
            ItemsRemovedHandler <int>      irh;

            Assert.AreEqual(EventTypeEnum.None, queue.ActiveEvents);
            queue.CollectionChanged += (cch = new CollectionChangedHandler <int>(queue_CollectionChanged));
            Assert.AreEqual(EventTypeEnum.Changed, queue.ActiveEvents);
            queue.ItemsAdded += (iah = new ItemsAddedHandler <int>(queue_ItemAdded));
            Assert.AreEqual(EventTypeEnum.Changed | EventTypeEnum.Added, queue.ActiveEvents);
            queue.ItemsRemoved += (irh = new ItemsRemovedHandler <int>(queue_ItemRemoved));
            Assert.AreEqual(EventTypeEnum.Changed | EventTypeEnum.Added | EventTypeEnum.Removed, queue.ActiveEvents);
            queue.Add(34);
            queue.Add(56);
            queue.AddAll(new int[] { });
            queue.Add(34);
            queue.Add(12);
            queue.DeleteMax();
            queue.DeleteMin();
            queue.AddAll(new int[] { 4, 5, 6, 2 });
            Assert.AreEqual(17, events.Count);
            int[]  vals = { 34, 0, 56, 0, 34, 0, 12, 0, 56, 0, 12, 0, 4, 5, 6, 2, 0 };
            Acts[] acts =
            {
                Acts.Add,    Acts.Changed, Acts.Add,    Acts.Changed, Acts.Add, Acts.Changed, Acts.Add, Acts.Changed,
                Acts.Remove, Acts.Changed, Acts.Remove, Acts.Changed, Acts.Add, Acts.Add,     Acts.Add, Acts.Add,
                Acts.Changed
            };
            for (var i = 0; i < vals.Length; i++)
            {
                //Console.WriteLine("{0}", events[cell]);
                Assert.AreEqual(acts[i], events[i].Key, "Action " + i);
                Assert.AreEqual(vals[i], events[i].Value, "Value " + i);
            }

            queue.CollectionChanged -= cch;
            Assert.AreEqual(EventTypeEnum.Added | EventTypeEnum.Removed, queue.ActiveEvents);
            queue.ItemsAdded -= iah;
            Assert.AreEqual(EventTypeEnum.Removed, queue.ActiveEvents);
            queue.ItemsRemoved -= irh;
            Assert.AreEqual(EventTypeEnum.None, queue.ActiveEvents);
        }
コード例 #5
0
ファイル: HeapTests.cs プロジェクト: bloober/c5
 public void Direct()
 {
     CollectionChangedHandler<int> cch;
       ItemsAddedHandler<int> iah;
       ItemsRemovedHandler<int> irh;
       Assert.AreEqual(EventTypeEnum.None, queue.ActiveEvents);
       queue.CollectionChanged += (cch = new CollectionChangedHandler<int>(queue_CollectionChanged));
       Assert.AreEqual(EventTypeEnum.Changed, queue.ActiveEvents);
       queue.ItemsAdded += (iah = new ItemsAddedHandler<int>(queue_ItemAdded));
       Assert.AreEqual(EventTypeEnum.Changed | EventTypeEnum.Added, queue.ActiveEvents);
       queue.ItemsRemoved += (irh = new ItemsRemovedHandler<int>(queue_ItemRemoved));
       Assert.AreEqual(EventTypeEnum.Changed | EventTypeEnum.Added | EventTypeEnum.Removed, queue.ActiveEvents);
       queue.Add(34);
       queue.Add(56);
       queue.AddAll<int>(new int[] { });
       queue.Add(34);
       queue.Add(12);
       queue.DeleteMax();
       queue.DeleteMin();
       queue.AddAll<int>(new int[] { 4, 5, 6, 2 });
       Assert.AreEqual(17, events.Count);
       int[] vals = { 34, 0, 56, 0, 34, 0, 12, 0, 56, 0, 12, 0, 4, 5, 6, 2, 0 };
       Acts[] acts = { Acts.Add, Acts.Changed, Acts.Add, Acts.Changed, Acts.Add, Acts.Changed, Acts.Add, Acts.Changed,
         Acts.Remove, Acts.Changed, Acts.Remove, Acts.Changed, Acts.Add, Acts.Add, Acts.Add, Acts.Add, Acts.Changed };
       for (int i = 0; i < vals.Length; i++)
       {
     //Console.WriteLine("{0}", Events[cell]);
     Assert.AreEqual(acts[i], events[i].Key, "Action " + i);
     Assert.AreEqual(vals[i], events[i].Value, "Value " + i);
       }
       queue.CollectionChanged -= cch;
       Assert.AreEqual(EventTypeEnum.Added | EventTypeEnum.Removed, queue.ActiveEvents);
       queue.ItemsAdded -= iah;
       Assert.AreEqual(EventTypeEnum.Removed, queue.ActiveEvents);
       queue.ItemsRemoved -= irh;
       Assert.AreEqual(EventTypeEnum.None, queue.ActiveEvents);
 }
コード例 #6
0
 /// <summary>
 /// Initializes the new instance and adds the specified <paramref name="handler"/>
 /// to the <see cref="CollectionChanged"/> event.
 /// </summary>
 /// <param name="handler">Handler to add</param>
 public CollectionListenerAdapter(CollectionChangedHandler handler)
 {
     CollectionChanged += handler ?? throw new ArgumentNullException(nameof(handler));
 }