public void RaisesListChangedEventOnAdd() { var target = new ReactiveBindingList<string>(); var capturedEvents = new List<ListChangedEventArgs>(); target.ListChanged += (o, e) => { capturedEvents.Add(e); }; target.Add("item"); Assert.Equal(1,capturedEvents.Count); Assert.True(capturedEvents[0].ListChangedType == ListChangedType.ItemAdded); Assert.True(capturedEvents[0].NewIndex == 0); }
public void RaisesListChangedEventOnAdd() { var target = new ReactiveBindingList <string>(); var capturedEvents = new List <ListChangedEventArgs>(); target.ListChanged += (o, e) => { capturedEvents.Add(e); }; target.Add("item"); Assert.Equal(1, capturedEvents.Count); Assert.True(capturedEvents[0].ListChangedType == ListChangedType.ItemAdded); Assert.True(capturedEvents[0].NewIndex == 0); }
public void DerivedCollectionsShouldRaiseListChangedEvents() { var input = new[] { "Foo", "Bar", "Baz", "Bamf" }; var fixture = new ReactiveBindingList <TestFixture>( input.Select(x => new TestFixture() { IsOnlyOneWord = x })); IBindingList output = fixture.CreateDerivedBindingList(new Func <TestFixture, string>(x => x.IsOnlyOneWord)); var capturedEvents = new List <ListChangedEventArgs>(); output.ListChanged += (o, e) => capturedEvents.Add(e); input.AssertAreEqual((IEnumerable <string>)output); fixture.Add(new TestFixture() { IsOnlyOneWord = "Hello" }); Assert.Equal(capturedEvents.Last().ListChangedType, ListChangedType.ItemAdded); Assert.Equal(5, output.Count); Assert.Equal("Hello", output[4]); fixture.RemoveAt(4); Assert.Equal(capturedEvents.Last().ListChangedType, ListChangedType.ItemDeleted); Assert.Equal(4, output.Count); //replacing results in //1 itemdeleted //2 itemadded fixture[1] = new TestFixture() { IsOnlyOneWord = "Goodbye" }; Assert.Equal(4, output.Count); Assert.Equal("Goodbye", output[1]); Assert.Equal(capturedEvents[capturedEvents.Count - 2].ListChangedType, ListChangedType.ItemDeleted); Assert.Equal(capturedEvents[capturedEvents.Count - 1].ListChangedType, ListChangedType.ItemAdded); fixture.Clear(); Assert.Equal(0, output.Count); Assert.Equal(capturedEvents.Last().ListChangedType, ListChangedType.Reset); }