public void RetainTargetCollection() { var tc = new ObservableCollection <int>(); var conn = new TransformerCollectionObserver <int, int>(Identity); Assert.IsNull(conn.TargetCollection); conn.TargetCollection = tc; Assert.AreSame(tc, conn.TargetCollection); }
public void NotCrashWhenSettingSourceCollection() { var sc = new ObservableCollection <int> { 1 }; var tc = new ObservableCollection <int>(); var conn = new TransformerCollectionObserver <int, int>(number => number + 1) { SourceCollection = sc, TargetCollection = tc }; Assert.AreSame(sc, conn.SourceCollection); }
public void AddItemToTheTargetWhenAddedToTheSource() { var sc = new ObservableCollection <int>(); var tc = new ObservableCollection <int>(); // ReSharper disable once UnusedVariable => variable needed to correctly create the connector that will set up the MVVM components. var conn = new TransformerCollectionObserver <int, int>(n => n) { SourceCollection = sc, TargetCollection = tc }; sc.Add(1); AssertCollectionsAreEqual(sc, tc); }
public void NotRecalculateTargetCollectionIfTheSameTargetCollectionIsSet() { var sc = new ObservableCollection <int> { 1 }; var tc = new ObservableCollection <int>(); var conn = new TransformerCollectionObserver <int, int>(number => number + 1) { SourceCollection = sc, TargetCollection = tc }; tc.CollectionChanged += (obj, e) => { Assert.Fail("Target collection items changed when setting to the same collection!"); }; conn.TargetCollection = tc; }
public void MoveTargetCollectionElementWhenSourceCollectionElementIsMoved() { var sc = new ObservableCollection <int> { 2, 1 }; var tc = new ObservableCollection <int>(); // ReSharper disable once UnusedVariable => variable needed to correctly create the connector that will set up the MVVM components. var conn = new TransformerCollectionObserver <int, int>(Identity) { SourceCollection = sc, TargetCollection = tc }; AssertCollectionsAreEqual(sc, tc); sc.Move(0, 1); AssertCollectionsAreEqual(sc, tc); }
public void ReplaceItemInTargetWhenReplacedInSourceCollection() { var sc = new ObservableCollection <int> { 1, 2, 3 }; var tc = new ObservableCollection <int>(); // ReSharper disable once UnusedVariable => variable needed to correctly create the connector that will set up the MVVM components. var conn = new TransformerCollectionObserver <int, int>(Identity) { SourceCollection = sc, TargetCollection = tc }; AssertCollectionsAreEqual(sc, tc); sc[0] = 4; AssertCollectionsAreEqual(sc, tc); }
public void ProperlyCopyTheObjectsWhenSourceCollectionIsChanged() { var sc1 = new ObservableCollection <int> { 1, 2, 3 }; var sc2 = new ObservableCollection <int> { 2, 3, 4 }; var tc = new ObservableCollection <int>(); var conn = new TransformerCollectionObserver <int, int>(Identity) { SourceCollection = sc1, TargetCollection = tc }; AssertCollectionsAreEqual(sc1, tc); conn.SourceCollection = sc2; AssertCollectionsAreEqual(sc2, tc); }