Exemple #1
0
        public void Issue1372DataItemSetIsConsistenBeforeAnyBubblingOccurs()
        {
            var dataItemSet = new DataItemSet(typeof(IRegularGridCoverage));

            var items    = dataItemSet.AsEventedList <IRegularGridCoverage>();
            var coverage = new RegularGridCoverage {
                Name = "oldCoverage"
            };

            items.Add(coverage);

            Assert.AreEqual(1, dataItemSet.DataItems.Count);
            var newCoverage = new RegularGridCoverage {
                Name = "newCoverage"
            };

            int callCount = 0;

            ((INotifyPropertyChanged)dataItemSet).PropertyChanged += delegate
            {
                callCount++;
                //synchronization problem
                Assert.AreEqual(newCoverage, items[0]);
            };

            dataItemSet.DataItems[0].Value = newCoverage;

            Assert.AreEqual(2, callCount, "Value and Name get changed once Value property is set");
        }
Exemple #2
0
        public void AddingItemsToAdapterSetsIsRemoveableCorrectly()
        {
            var dataItemSet = new DataItemSet(typeof(Url)); // new DataItemSet(new List<Url>(), "My FBC list", DataItemRole.Input, false);

            dataItemSet.ReadOnly = true;

            //get an adapter for the set and add to
            var urlList = dataItemSet.AsEventedList <Url>();

            urlList.Add(new Url());

            Assert.IsFalse(dataItemSet.DataItems[0].IsRemoveable);
        }
Exemple #3
0
        public void AddSetsOwnerAndRoleOfChildItem()
        {
            var dataItemSet = new DataItemSet(typeof(object))
            {
                Role = DataItemRole.Output
            };
            var objectList = dataItemSet.AsEventedList <object>();

            //action! add an object throught list adapter
            objectList.Add(new object());

            Assert.AreEqual(1, dataItemSet.DataItems.Count);
            Assert.AreEqual(DataItemRole.Output, dataItemSet.DataItems[0].Role);
            Assert.AreEqual(dataItemSet, dataItemSet.DataItems[0].Owner);
        }
Exemple #4
0
        public void DataItemSetStaysSynchronizedWithEventedListAdapter()
        {
            //TODO: remove test. This functionality now lies within the adapter.
            //testing it here is redundant.
            //wrap the list of functions in a DataItemSet
            var dataItemSet = new DataItemSet(typeof(Url));
            var list        = dataItemSet.AsEventedList <Url>();

            list.Add(new Url());
            list.Add(new Url());
            list.Add(new Url());

            Assert.AreEqual(3, dataItemSet.DataItems.Count,
                            "Values added to list must create data items on-the-fly in data item set");

            list.Remove(list[1]);
            Assert.AreEqual(2, dataItemSet.DataItems.Count);
        }
Exemple #5
0
        public void TestAddingAndRemovingValuesToDataItemSetUpdatesAdaptedList()
        {
            //TODO: remove this is adapter
            //Create a dataitemset and list.
            var dataItemSet = new DataItemSet(typeof(Url));
            var url         = new Url();
            var dataItem    = new DataItem(url);
            var list        = dataItemSet.AsEventedList <Url>();

            //action! add an item to the set
            dataItemSet.DataItems.Add(dataItem);

            //make sure the list got updated
            Assert.AreEqual(1, list.Count);
            Assert.AreEqual(url, list[0]);

            dataItemSet.DataItems.RemoveAt(0);
            Assert.AreEqual(0, list.Count);
        }
Exemple #6
0
        public void AddingAnElementShouldCauseCollectionChangedWith()
        {
            //TODO: remove this is adapter logic
            var dataItemSet = new DataItemSet(typeof(Url));
            var list        = dataItemSet.AsEventedList <Url>();

            //check the collectionchanged
            int callCount = 0;

            ((INotifyCollectionChange)dataItemSet).CollectionChanged +=
                delegate {
                callCount++;
            };

            //Action! should cause one collectionchanged events. One for the list and one for the dataitemset
            list.Add(new Url());

            //assert
            Assert.AreEqual(1, callCount);
        }
Exemple #7
0
        public void CollectionChangedEventBubbling()
        {
            int count = 0;


            var dataItemSet = new DataItemSet(typeof(Url));

            ((INotifyCollectionChange)dataItemSet).CollectionChanged += delegate { count++; };
            var list = dataItemSet.AsEventedList <Url>();

            list.Add(new Url());
            list.Add(new Url());
            list.Add(new Url());
            Assert.AreEqual(3, dataItemSet.DataItems.Count);
            Assert.AreEqual(3, count);


            list.Remove(list[1]);
            Assert.AreEqual(2, dataItemSet.DataItems.Count);
            Assert.AreEqual(4, count);
        }