public void ObjWitChildsTracking() { //Arrange MyComplextRepositoryItem item = new MyComplextRepositoryItem(); item.Name = "abc"; item.childs = new ObservableList <MyComplextRepositoryItemChild>(); MyComplextRepositoryItemChild child1 = new MyComplextRepositoryItemChild() { Name = "Child 1" }; item.childs.Add(child1); item.StartDirtyTracking(); item.OnDirtyStatusChanged += aaa; //Act child1.Name = "def"; //Assert Assert.AreEqual(eDirtyStatus.Modified, item.DirtyStatus, "item dirty status changedt to modified"); Assert.AreEqual(eDirtyStatus.Modified, child1.DirtyStatus, "child item dirty status changed to modified"); Assert.IsTrue(DirtyStatusChangedTriggered, "DirtyStatusChangedTriggered=true"); }
public void EditNewAddedChildToList() { //Arrange MyComplextRepositoryItem item = new MyComplextRepositoryItem(); item.Name = "abc"; item.childs = new ObservableList <MyComplextRepositoryItemChild>(); item.StartDirtyTracking(); //Act MyComplextRepositoryItemChild newChild = new MyComplextRepositoryItemChild() { Name = "Child 1" }; item.childs.Add(newChild); //here parent will be marked as dirty item.SetDirtyStatusToNoChange(); //like been done on Save item to clear dirty newChild.Name = "NewName"; //expecting parent to show as dirty again because one of it's childs modified //Assert Assert.AreEqual(eDirtyStatus.Modified, item.DirtyStatus, "item dirty status changed to modified since one child was added and then child was modified"); }
public void UpdateChildPropertyWhichisNotSerialzied() { //Arrange MyComplextRepositoryItem item = new MyComplextRepositoryItem(); item.Name = "Runtime"; item.childs = new ObservableList <MyComplextRepositoryItemChild>(); MyComplextRepositoryItemChild child1 = new MyComplextRepositoryItemChild() { Name = "Child 1" }; item.childs.Add(child1); item.StartDirtyTracking(); //Act child1.Status = "Pass"; //Assert Assert.AreEqual(eDirtyStatus.NoChange, item.DirtyStatus, "item dirty status is not modified"); Assert.AreEqual(eDirtyStatus.NoChange, child1.DirtyStatus, "child item dirty status is not modified"); }