Exemple #1
0
        public void Test_MgcReplaceRange()
        {
            devDhMagic.MgcObservableCollection <int> collection = new devDhMagic.MgcObservableCollection <int>();
            var toAdd    = new[] { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3 };
            var toRemove = new[] { 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 0, 0 };

            collection.MgcAddRange(toRemove);
            collection.CollectionChanged += (s, e) =>
            {
                Assert.AreEqual(e.Action,
                                NotifyCollectionChangedAction.Reset,
                                "ReplaceRange didn't use Remove like requested.");

                Assert.IsNull(e.OldItems, "OldItems should be null.");
                Assert.IsNull(e.NewItems, "NewItems should be null.");

                Assert.AreEqual(collection.Count, toAdd.Length, "Lengths are not the same");

                for (var i = 0; i < toAdd.Length; i++)
                {
                    if (collection[i] != (int)toAdd[i])
                    {
                        Assert.Fail("Expected and actual items don't match.");
                    }
                }
            };
            collection.MgcReplaceRange(toAdd);
        }
Exemple #2
0
        public void Test_ReplaceRange_should_NOT_mutate_source()
        {
            var sourceData = new List <int>(new[] { 1, 2, 3 });

            devDhMagic.MgcObservableCollection <int> collection = new devDhMagic.MgcObservableCollection <int>(new[] { 1, 2, 3, 4, 5, 6 });

            collection.MgcReplaceRange(sourceData);

            Assert.IsTrue(sourceData.Count == 3, "source data was mutated");
        }
Exemple #3
0
        public void Test_ReplaceRange_on_empty_collection_should_NOT_raise_collection_changes_when_empty()
        {
            devDhMagic.MgcObservableCollection <int> collection = new devDhMagic.MgcObservableCollection <int>();
            var toAdd = new int[0];

            collection.CollectionChanged += (s, e) =>
            {
                Assert.Fail("Collection changes should NOT be raised.");
            };

            collection.MgcReplaceRange(toAdd);
        }
Exemple #4
0
        public void Test_ReplaceRange_on_non_empty_collection_should_always_raise_collection_changes()
        {
            devDhMagic.MgcObservableCollection <int> collection = new devDhMagic.MgcObservableCollection <int>(new[] { 1 });
            var toAdd       = new int[0];
            var eventRaised = false;

            collection.CollectionChanged += (s, e) =>
            {
                eventRaised = true;
            };

            collection.MgcReplaceRange(toAdd);
            Assert.IsTrue(eventRaised, "Collection Reset should be raised.");
        }