예제 #1
0
        public void ReplaceExistingSublist_OldSublistEmpty_FiresAddCollectionChanged()
        {
            Person replacement = new Person("Ninja", 23);

            ClinqTestFactory.InitializeParents(replacement);
            _source[1].Parents = new ObservableCollection <Person>();

            int callCount = 0;

            _target.CollectionChanged += (sender, args) =>
            {
                callCount++;

                Assert.AreEqual(NotifyCollectionChangedAction.Add, args.Action);
                Assert.AreEqual(2, args.NewStartingIndex);
                CollectionAssert.AreEquivalent(replacement.Parents, args.NewItems);

                Assert.AreEqual(4, _target.Count);
                Assert.AreEqual("BobParent0", _target[0].Name);
                Assert.AreEqual("BobParent1", _target[1].Name);
                Assert.AreEqual("NinjaParent0", _target[2].Name);
                Assert.AreEqual("NinjaParent1", _target[3].Name);
            };

            _source[1] = replacement;

            Assert.AreEqual(1, callCount);
        }
예제 #2
0
        public void AddNewSublistToSource_Always_FireCollectionChangedEvent()
        {
            Person newPerson = new Person("Ninja", 23);

            ClinqTestFactory.InitializeParents(newPerson);

            int callCount = 0;

            _target.CollectionChanged += (sender, args) =>
            {
                callCount++;
                Assert.AreEqual(NotifyCollectionChangedAction.Add, args.Action);
                Assert.AreEqual(2, args.NewStartingIndex);
                CollectionAssert.AreEquivalent(newPerson.Parents, args.NewItems);
            };

            _source.Insert(1, newPerson);
            Assert.AreEqual(1, callCount);

            Assert.AreEqual(6, _target.Count);
            Assert.AreEqual("BobParent0", _target[0].Name);
            Assert.AreEqual("BobParent1", _target[1].Name);
            Assert.AreEqual("NinjaParent0", _target[2].Name);
            Assert.AreEqual("NinjaParent1", _target[3].Name);
            Assert.AreEqual("JimParent0", _target[4].Name);
            Assert.AreEqual("JimParent1", _target[5].Name);
        }
예제 #3
0
        public void ReplaceItemInSource_Always_FireCollectionChangedEvent()
        {
            Person replacement = new Person("Ninja", 23);

            ClinqTestFactory.InitializeParents(replacement);

            int callCount = 0;

            _target.CollectionChanged += (sender, args) =>
            {
                callCount++;
                TestUtilities.AssertReplace(args, 2, replacement.Parents.ToArray(), _parents[1].ToArray());
            };

            _source[1] = replacement;

            Assert.AreEqual(1, callCount);
        }
예제 #4
0
        public void ReplaceItemInSource_Always_FireCollectionChangedEvent()
        {
            Person replacement = new Person("Ninja", 23);

            ClinqTestFactory.InitializeParents(replacement);

            int callCount = 0;

            _target.CollectionChanged += (sender, args) =>
            {
                Assert.AreEqual(NotifyCollectionChangedAction.Replace, args.Action);

                Assert.AreEqual(2 + callCount, args.NewStartingIndex);
                Assert.AreEqual(replacement.Parents[callCount], args.NewItems[0]);
                Assert.AreEqual(_parents[1][callCount], args.OldItems[0]);

                callCount++;
            };

            _source[1] = replacement;

            Assert.AreEqual(2, callCount);
        }