[Test, Ignore("TODO")] //TODO: Later activate this. Error in test of release version public void SetParent_InvalidParent() { var bl = new DerivedList { Metadata = { DataProvider = { Data = new List <TestItemDM>() } } }; var bi = new TestItemBM(); Assert.Throws <InvalidOperationException>(delegate { bi.Parent = bl; }); }
public void Remove_NoUnderlyingObject() { var bm = new ListBM <TestItemBM>(); TestItemBM item = new TestItemBM(); bm.Add(item); bm.Remove(item); Assert.AreEqual(0, bm.Count, "Count"); }
public void SetParent_DerivedList() { var bl = new DerivedList { Metadata = { DataProvider = { Data = new List <TestItemDM>() } } }; var bi = new TestItemBM(); bl.Add(new TestItemBM()); }
public void CheckReentrancyThrowsInvalidOperationException() { var dl = new List <TestItemDM> { new TestItemDM(0), new TestItemDM(1), new TestItemDM(2) }; var bl = new ListBM <TestItemBM> { Metadata = { DataProvider = { Data = dl } } }; bl.CollectionChanged += OnViewModelCollectionChangedCallInvalid; bl.Add(TestItemBM.New()); bl.CollectionChanged -= OnViewModelCollectionChangedCallInvalid; }
public void AddSameItemToMultipleLists() { var bl = new DerivedList { Metadata = { DataProvider = { Data = new List <TestItemDM>() } } }; var bi = new TestItemBM(); bl.Add(bi); var bl2 = new DerivedList { Metadata = { DataProvider = { Data = new List <TestItemDM>() } } }; Assert.Throws <InvalidOperationException>(delegate { bl2.Add(bi); }); }
public void BeginUpdateEndUpdate() { var dl = new List <TestItemDM> { new TestItemDM(0), new TestItemDM(1), new TestItemDM(2) }; var bl = new ListBM <TestItemBM> { Metadata = { DataProvider = { Data = dl } } }; bl.CollectionChanged += OnViewModelCollectionChangedCallInvalid; bl.BeginUpdate(); Assert.Throws <InvalidOperationException>(() => bl.BeginUpdate()); bl.Add(TestItemBM.New()); bl.EndUpdate(); Assert.Throws <InvalidOperationException>(() => bl.EndUpdate()); bl.CollectionChanged -= OnViewModelCollectionChangedCallInvalid; }
public void BusinessList_Contains_Empty_DataList() { var dl = new List <TestItemDM>(); var bl = new ListBM <TestItemBM> { Metadata = { //TODO: LogicProvider=new CustomListLogicProvider(OnCollectionChanged,OnCollectionChanged), DataProvider = { Data = dl } } }; var di = (TestItemDM)null; var bi = (TestItemBM)null; Assert.AreEqual(false, bl.IsReadOnly); Assert.AreEqual(false, ((IList)bl).IsFixedSize); bl.CollectionChanged += OnCollectionChanged; ((IList)bl).Add(bi = new TestItemBM()); bi.Metadata.DataProvider.Data = di = new TestItemDM(0); Assert.AreEqual(1, ((IList)bl).Count); Assert.AreEqual(1, dl.Count); Assert.AreEqual(0, bl.IndexOf(bi)); Assert.AreEqual(0, ((IList)bl).IndexOf(bi)); Assert.AreEqual(true, ((IList)bl).Contains(bi)); Assert.AreEqual(bi, bl[0]); Assert.AreEqual(bi, ((IList)bl)[0]); Assert.AreEqual(bl, bl[0].Parent); bl.Add(new TestItemBM { Metadata = { DataProvider = { Data = new TestItemDM(1) } } }); Assert.AreEqual(2, dl.Count); bl.Add(new TestItemBM { Metadata = { DataProvider = { Data = new TestItemDM(2) } } }); Assert.AreEqual(3, dl.Count); ((IList)bl).RemoveAt(1); Assert.AreEqual(2, dl.Count); ((IList)bl).Remove(bi); Assert.IsNull(bi.Parent); Assert.AreEqual(1, dl.Count); ((IList)bl).Clear(); Assert.AreEqual(0, dl.Count); ((IList)bl).Insert(0, new TestItemBM { Metadata = { DataProvider = { Data = new TestItemDM(0) } } }); bl.Insert(0, new TestItemBM { Metadata = { DataProvider = { Data = new TestItemDM(1) } } }); Assert.AreEqual(bl, bl[0].Parent); bl.Insert(2, new TestItemBM { Metadata = { DataProvider = { Data = new TestItemDM(2) } } }); Assert.AreEqual(3, dl.Count); foreach (var item in bl) { Assert.IsTrue(bl.Contains(item)); } foreach (var item in (IEnumerable)bl) { Assert.IsTrue(bl.Contains(item)); } bl.CopyTo(new TestItemBM[3], 0); bl[0] = new TestItemBM { Metadata = { DataProvider = { Data = new TestItemDM(0) } } }; ((IList)bl)[0] = TestItemBM.New(); // bl.Move(0,2); bl.CollectionChanged += OnCollectionChanged; bl.Dispose(); }