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"); }
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); }
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); }
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); }
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); }
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); }
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); }