public void ItemRemoved_CallsNotifyChange() { var removedItem = CreateItem("Removed item"); Collection = CreateCollection(); HandleItemRemoved(removedItem); AssertChangeArgs(ChangeArgs.ItemsRemoved(Collection, new[] { removedItem })); }
public void ItemsRemoved_SetsChangedPathToEmpty() { var collection = VMCollectionStub.Build(); var oldItems = new[] { ViewModelStub.Build() }; var args = ChangeArgs.ItemsRemoved(collection, oldItems); Assert.AreEqual(ChangeType.RemovedFromCollection, args.ChangeType); CollectionAssert.AreEqual(oldItems, args.OldItems.ToArray()); Assert.IsFalse(args.NewItems.Any()); DomainAssert.AreEqual(Path.Empty.Append(collection), args.ChangedPath); }
public void ItemSet_CallsNotifyChangeForOldAndNewItem() { var oldItem = CreateItem("Old item"); var newItem = CreateItem("New item"); Collection = CreateCollection(newItem); HandleItemSet(previousItem: oldItem, item: newItem); AssertChangeArgs( ChangeArgs.ItemsRemoved(Collection, oldItems: new[] { oldItem }), ChangeArgs.ItemsAdded(Collection, newItems: new[] { newItem }) ); }
public void HandleChange_WithItemsAddedOrRemovedFromOwnCollection_UpdatesCachedResults() { var owner = new TestVM(); owner.MakePropertiesAndViewModelInvalid(); var expected = owner.GetCurrentlySetupResults(); // F I R S T A D D var firstNewItem = new ViewModelStub { ValidationResult = CreateValidationResult("First new item error") }; var collectionChangeArgs = ChangeArgs .ItemsAdded(VMCollectionStub.Build(), new[] { firstNewItem }) .PrependViewModel(owner); owner.CallHandleChangeWith(collectionChangeArgs); expected.Descenants = firstNewItem.ValidationResult; AssertBehaviorResults(owner, expected); // S E C O N D A D D var secondNewItem = new ViewModelStub { ValidationResult = CreateValidationResult("Second new Item error") }; collectionChangeArgs = ChangeArgs .ItemsAdded(VMCollectionStub.Build(), new[] { secondNewItem }) .PrependViewModel(owner); owner.CallHandleChangeWith(collectionChangeArgs); expected.Descenants = ValidationResult.Join( firstNewItem.ValidationResult, secondNewItem.ValidationResult ); AssertBehaviorResults(owner, expected); // R E M O V AL collectionChangeArgs = ChangeArgs .ItemsRemoved(VMCollectionStub.Build(), new[] { firstNewItem }) .PrependViewModel(owner); owner.CallHandleChangeWith(collectionChangeArgs); expected.Descenants = secondNewItem.ValidationResult; AssertBehaviorResults(owner, expected); }
public void ItemsCleared_CallsNotifyChange() { var oldItems = new[] { CreateItem("Old item 1"), CreateItem("Old item 2") }; Collection = CreateCollection(); HandleCollectionCleared(previousItems: oldItems); AssertChangeArgs( ChangeArgs.ItemsRemoved(Collection, oldItems: oldItems) ); }