public void CollectionPopulated_SetsChangeTypeAndNewItemsAndChangedPathToCollection() { var collection = VMCollectionStub .WithItems(ViewModelStub.Build()) .Build(); var newItems = collection.ToArray(); var oldItems = new[] { ViewModelStub.Build(), ViewModelStub.Build() }; var args = ChangeArgs.CollectionPopulated(collection, oldItems); Assert.AreEqual(ChangeType.CollectionPopulated, args.ChangeType); CollectionAssert.AreEqual(newItems, args.NewItems.ToArray()); CollectionAssert.AreEqual(oldItems, args.OldItems.ToArray()); DomainAssert.AreEqual(Path.Empty.Append(collection), args.ChangedPath); }
public void ReplaceItems_CallsNotifyChangeForOldAndNewItems() { var oldItems = new[] { CreateItem("Old item 1"), CreateItem("Old item 2") }; var newItems = new[] { CreateItem("New item") }; Collection = CreateCollection(newItems); HandleCollectionPopulated(oldItems); AssertChangeArgs( ChangeArgs.CollectionPopulated(Collection, oldItems) ); }
public void Refresh_OfPopulatedCollectionProperty_CallsNotifyChangeForCollectionPopulation() { var oldItems = new[] { new ChildVM() }; VM.PopulatedPropertyResult = oldItems; VM.Load(x => x.PopulatedProperty); VM.OnChangeInvocations.Clear(); var newItems = new[] { new ChildVM() }; VM.PopulatedPropertyResult = newItems; VM.Refresh(x => x.PopulatedProperty); var expectedChangeArgs = new[] { ChangeArgs .CollectionPopulated(VM.PopulatedProperty, oldItems) .PrependViewModel(VM) }; DomainAssert.AreEqual(expectedChangeArgs, VM.OnChangeInvocations); }
public void Refresh_OfWrapperCollectionProperty_CallsNotifyChangeForCollectionPopulation() { var oldItem = new ChildVM(new ChildSource()); VM.WrapperProperty.Add(oldItem); var oldItems = VM.WrapperProperty.ToArray(); VM.OnChangeInvocations.Clear(); VM.WrapperPropertySource = new List <ChildSource> { new ChildSource() }; VM.Refresh(x => x.WrapperProperty); var newItems = VM.WrapperProperty.ToArray(); var expectedChangeArgs = new[] { ChangeArgs .CollectionPopulated(VM.WrapperProperty, new[] { oldItem }) .PrependViewModel(VM) }; DomainAssert.AreEqual(expectedChangeArgs, VM.OnChangeInvocations); }