public void ExceptionTest() { var collection = new ObservableCollection<int>(); AssertThrow<ArgumentNullException>( () => ((ObservableCollection<int>)null).AddChangeHandlers((int i, int j) => { }, (i, j) => { }, () => { }), () => collection.AddChangeHandlers(null, (int i, int j) => { }, () => { }), () => collection.AddChangeHandlers((int i, int j) => { }, null, () => { }), () => collection.AddChangeHandlers((int i, int j) => { }, (i, j) => { }, null), () => ((ObservableCollection<int>)null).Project((int i) => i), () => collection.Project((Func<int, int>)null)); }
private void AssertChange(Action<ObservableCollection<int>> change) { var o = new ObservableCollection<int>(Enumerable.Range(0, this.Random.Next(4, 10))); var c = new List<int>(); var handler = o.AddChangeHandlers( (int index, int item) => c.Insert(index, item), (index, item) => c.RemoveAt(index), c.Clear); AssertChange(o, change, c, handler); using (var projection = o.Project((int i) => i)) { AssertChange(o, change, projection); } }