public void INCCComplexRemoveLast() { var oc = new ObservableCollection <View>(); var wrapper = new ObservableWrapper <View, Button>(oc); oc.Add(new Stepper()); wrapper.Add(new Button()); wrapper.Add(new Button()); var child = new Button(); wrapper.Add(child); Button removedResult = null; int removeIndex = -1; wrapper.CollectionChanged += (sender, args) => { removedResult = args.OldItems[0] as Button; removeIndex = args.OldStartingIndex; }; wrapper.Remove(child); Assert.AreEqual(child, removedResult); Assert.AreEqual(2, removeIndex); }
public void CopyTo() { var observableCollection = new ObservableCollection <View>(); var wrapper = new ObservableWrapper <View, View>(observableCollection); var child1 = new Button(); var child2 = new Button(); var child3 = new Button(); var child4 = new Button(); var child5 = new Button(); observableCollection.Add(new Stepper()); wrapper.Add(child1); observableCollection.Add(new Button()); wrapper.Add(child2); wrapper.Add(child3); wrapper.Add(child4); wrapper.Add(child5); observableCollection.Add(new Button()); var target = new View[30]; wrapper.CopyTo(target, 2); Assert.AreEqual(target[2], child1); Assert.AreEqual(target[3], child2); Assert.AreEqual(target[4], child3); Assert.AreEqual(target[5], child4); Assert.AreEqual(target[6], child5); }
public void Clear() { var oc = new ObservableCollection <View>(); var wrapper = new ObservableWrapper <View, Button>(oc); oc.Add(new Stepper()); wrapper.Add(new Button()); wrapper.Add(new Button()); wrapper.Clear(); Assert.AreEqual(1, oc.Count); Assert.AreEqual(0, wrapper.Count); }
public void INCCReplace() { var oc = new ObservableCollection <View>(); var wrapper = new ObservableWrapper <View, Button>(oc); var child1 = new Button(); var child2 = new Button(); wrapper.Add(child1); int index = -1; Button oldItem = null; Button newItem = null; wrapper.CollectionChanged += (sender, args) => { index = args.NewStartingIndex; oldItem = args.OldItems[0] as Button; newItem = args.NewItems[0] as Button; }; wrapper[0] = child2; Assert.AreEqual(0, index); Assert.AreEqual(child1, oldItem); Assert.AreEqual(child2, newItem); }
public void CopyToArrayBaseType() { var oc = new ObservableCollection <View>(); var wrapper = new ObservableWrapper <View, Button>(oc); oc.Add(new Stepper()); var child1 = new Button(); var child2 = new Button(); wrapper.Add(child1); wrapper.Add(child2); var target = new View[4]; wrapper.CopyTo((Array)target, 2); Assert.AreEqual(target[2], child1); Assert.AreEqual(target[3], child2); }
public void ReadOnly() { var observableCollection = new ObservableCollection <View>(); var wrapper = new ObservableWrapper <View, Button>(observableCollection); Assert.False(wrapper.IsReadOnly); wrapper.Add(new Button()); wrapper.IsReadOnly = true; Assert.True(wrapper.IsReadOnly); Assert.Throws <NotSupportedException>(() => wrapper.Remove(wrapper[0])); Assert.Throws <NotSupportedException>(() => wrapper.Add(new Button())); Assert.Throws <NotSupportedException>(() => wrapper.RemoveAt(0)); Assert.Throws <NotSupportedException>(() => wrapper.Insert(0, new Button())); Assert.Throws <NotSupportedException>(wrapper.Clear); }
public void TracksExternallyAdded () { var observableCollection = new ObservableCollection<View> (); var wrapper = new ObservableWrapper<View, Button> (observableCollection); var child = new Button (); wrapper.Add (child); Assert.AreEqual (child, wrapper[0]); Assert.AreEqual (child, observableCollection[0]); }
public void TracksExternallyAddedSameType() { var observableCollection = new ObservableCollection <View>(); var wrapper = new ObservableWrapper <View, View>(observableCollection); var child = new Button(); wrapper.Add(child); Assert.AreEqual(child, wrapper[0]); Assert.AreEqual(child, observableCollection[0]); }
public void IndexerSameType() { var observableCollection = new ObservableCollection <View>(); var wrapper = new ObservableWrapper <View, View>(observableCollection); wrapper.Add(new Button()); var newButton = new Button(); wrapper[0] = newButton; Assert.AreEqual(newButton, wrapper[0]); }
public void DifferentTypes() { var oc = new ObservableCollection <Element>(); var wrapper = new ObservableWrapper <Element, Button>(oc); // Wrong type! oc.Add(new Label()); var child1 = new Button(); var child2 = new Button(); wrapper.Add(child1); wrapper.Add(child2); // Do things that might cast foreach (var item in wrapper) { } var target = new Button[4]; wrapper.CopyTo(target, 2); Assert.AreEqual(target[2], child1); Assert.AreEqual(target[3], child2); }
public void AddWithInternalItemsAlreadyAdded () { var observableCollection = new ObservableCollection<View> (); var wrapper = new ObservableWrapper<View, Button> (observableCollection); var view = new View (); observableCollection.Add (view); var btn = new Button (); wrapper.Add (btn); Assert.AreEqual (btn, wrapper[0]); Assert.AreEqual (1, wrapper.Count); Assert.Contains (btn, observableCollection); Assert.Contains (view, observableCollection); Assert.AreEqual (2, observableCollection.Count); }
public void INCCSimpleAdd() { var oc = new ObservableCollection <View> (); var wrapper = new ObservableWrapper <View, View> (oc); var child = new Button(); Button addedResult = null; int addIndex = -1; wrapper.CollectionChanged += (sender, args) => { addedResult = args.NewItems[0] as Button; addIndex = args.NewStartingIndex; }; wrapper.Add(child); Assert.AreEqual(0, addIndex); Assert.AreEqual(child, addedResult); }
public void AddWithInternalItemsAlreadyAddedSameType() { var observableCollection = new ObservableCollection <View>(); var wrapper = new ObservableWrapper <View, View>(observableCollection); var view = new View(); observableCollection.Add(view); var btn = new Button(); wrapper.Add(btn); Assert.AreEqual(btn, wrapper[0]); Assert.AreEqual(1, wrapper.Count); Assert.Contains(btn, observableCollection); Assert.Contains(view, observableCollection); Assert.AreEqual(2, observableCollection.Count); }
public void INCCReplace () { var oc = new ObservableCollection<View> (); var wrapper = new ObservableWrapper<View, Button> (oc); var child1 = new Button (); var child2 = new Button (); wrapper.Add (child1); int index = -1; Button oldItem = null; Button newItem = null; wrapper.CollectionChanged += (sender, args) => { index = args.NewStartingIndex; oldItem = args.OldItems[0] as Button; newItem = args.NewItems[0] as Button; }; wrapper[0] = child2; Assert.AreEqual (0, index); Assert.AreEqual (child1, oldItem); Assert.AreEqual (child2, newItem); }
public void ReadOnly () { var observableCollection = new ObservableCollection<View> (); var wrapper = new ObservableWrapper<View, Button> (observableCollection); Assert.False (wrapper.IsReadOnly); wrapper.Add (new Button ()); wrapper.IsReadOnly = true; Assert.True (wrapper.IsReadOnly); Assert.Throws<NotSupportedException> (() => wrapper.Remove (wrapper[0])); Assert.Throws<NotSupportedException> (() => wrapper.Add (new Button ())); Assert.Throws<NotSupportedException> (() => wrapper.RemoveAt (0)); Assert.Throws<NotSupportedException> (() => wrapper.Insert (0, new Button ())); Assert.Throws<NotSupportedException> (wrapper.Clear); }
public void IndexerSameType () { var observableCollection = new ObservableCollection<View> (); var wrapper = new ObservableWrapper<View, View> (observableCollection); wrapper.Add (new Button ()); var newButton = new Button (); wrapper[0] = newButton; Assert.AreEqual (newButton, wrapper[0]); }
public void CopyTo () { var observableCollection = new ObservableCollection<View> (); var wrapper = new ObservableWrapper<View, View> (observableCollection); var child1 = new Button (); var child2 = new Button (); var child3 = new Button (); var child4 = new Button (); var child5 = new Button (); observableCollection.Add (new Stepper ()); wrapper.Add (child1); observableCollection.Add (new Button ()); wrapper.Add (child2); wrapper.Add (child3); wrapper.Add (child4); wrapper.Add (child5); observableCollection.Add (new Button ()); var target = new View[30]; wrapper.CopyTo (target, 2); Assert.AreEqual (target[2], child1); Assert.AreEqual (target[3], child2); Assert.AreEqual (target[4], child3); Assert.AreEqual (target[5], child4); Assert.AreEqual (target[6], child5); }
public void INCCComplexAdd () { var oc = new ObservableCollection<View> (); var wrapper = new ObservableWrapper<View, Button> (oc); oc.Add (new Stepper ()); var child = new Button (); Button addedResult = null; int addIndex = -1; wrapper.CollectionChanged += (sender, args) => { addedResult = args.NewItems[0] as Button; addIndex = args.NewStartingIndex; }; wrapper.Add (child); Assert.AreEqual (0, addIndex); Assert.AreEqual (child, addedResult); }
public void INCCComplexRemoveLast () { var oc = new ObservableCollection<View> (); var wrapper = new ObservableWrapper<View, Button> (oc); oc.Add (new Stepper ()); wrapper.Add (new Button ()); wrapper.Add (new Button ()); var child = new Button (); wrapper.Add (child); Button removedResult = null; int removeIndex = -1; wrapper.CollectionChanged += (sender, args) => { removedResult = args.OldItems[0] as Button; removeIndex = args.OldStartingIndex; }; wrapper.Remove (child); Assert.AreEqual (child, removedResult); Assert.AreEqual (2, removeIndex); }