Exemple #1
0
        /// <summary>
        ///A test for DisableNotifications
        ///</summary>
        public void DisabledNotificationTestHelper <T>() where T : new()
        {
            ObservableCollectionEx <T> target = CreateTargetHelper <T>();

            T item0 = new T();
            T item1 = new T();
            T item2 = new T();
            T item3 = new T();
            T item4 = new T();

            this._firedCollectionEvents.Clear();
            this._firedPropertyEvents.Clear();

            using (ObservableCollectionEx <T> iTarget = target.DisableNotifications())
            {
                iTarget.Add(item0);
                iTarget.Add(item1);
                iTarget.Add(item2);
                iTarget.Add(item3);
                iTarget.Add(item4);

                Assert.IsTrue(5 == target.Count, "Count is incorrect");
                Assert.IsTrue(0 == this._firedPropertyEvents.Count, "Incorrect number of PropertyChanged notifications");
                Assert.IsTrue(0 == this._firedCollectionEvents.Count, "Incorrect number of CollectionChanged notifications");
            }

            Assert.IsTrue(5 == target.Count, "Count is incorrect");
            Assert.IsTrue(0 == this._firedPropertyEvents.Count, "Incorrect number of PropertyChanged notifications");
            Assert.IsTrue(0 == this._firedCollectionEvents.Count, "Incorrect number of CollectionChanged notifications");
        }
        void MoveTestHelper()
        {
            ObservableCollectionEx <GenericParameterHelper> target = CreateTargetHelper <GenericParameterHelper>();

            GenericParameterHelper item0 = new GenericParameterHelper(0);
            GenericParameterHelper item1 = new GenericParameterHelper(1);
            GenericParameterHelper item2 = new GenericParameterHelper(2);
            GenericParameterHelper item3 = new GenericParameterHelper(3);
            GenericParameterHelper item4 = new GenericParameterHelper(4);

            target.Add(item0);
            target.Add(item1);
            target.Add(item2);
            target.Add(item3);
            target.Add(item4);

            this._firedCollectionEvents.Clear();
            this._firedPropertyEvents.Clear();

            Assert.IsTrue(1 == target.IndexOf(item1));
            target.Move(1, 3);
            Assert.IsTrue(3 == target.IndexOf(item1));

            this._firedCollectionEvents.Clear();
            this._firedPropertyEvents.Clear();
            using (var iDisabled = target.DisableNotifications())
            {
                iDisabled.Move(3, 1);
                iDisabled.Move(1, 3);
                iDisabled.Move(3, 1);
                iDisabled.Move(1, 3);
                iDisabled.Move(3, 1);
            }
            Assert.IsTrue(0 == this._firedPropertyEvents.Count, "Incorrect number of PropertyChanged notifications");
            Assert.IsTrue(0 == this._firedCollectionEvents.Count, "Incorrect number of CollectionChanged notifications");

            this._firedCollectionEvents.Clear();
            this._firedPropertyEvents.Clear();
            using (var iDelayed = target.DelayNotifications())
            {
                iDelayed.Move(1, 3);
                try
                {
                    iDelayed.Move(3, 1);
                    Assert.Fail("Only one move allowed");
                }
                catch (Exception e)
                {
                    Assert.IsInstanceOfType(e, typeof(InvalidOperationException));
                }
            }
            Assert.IsTrue(1 == this._firedPropertyEvents.Count, "Incorrect number of PropertyChanged notifications");
            Assert.IsTrue(1 == this._firedCollectionEvents.Count, "Incorrect number of CollectionChanged notifications");
        }