public async Task ShouldRaisePropertyChangedEvent() { // Arrange TestObservableObject obj = TestObservableObjectFaker.Create().Generate(); var collection = new ObservableItemCollection <TestObservableObject> { obj }; var tcs = new TaskCompletionSource <ObservableItemCollectionPropertyChangedEventArgs>(); collection.ItemPropertyChanged += (sender, args) => { tcs.SetResult(args); }; // Act obj.Name = "Hello, World!"; // Assert ObservableItemCollectionPropertyChangedEventArgs result = await tcs.Task; result.ShouldNotBeNull(); result.Sender.ShouldBe(obj); result.EventArgs.ShouldNotBeNull(); result.EventArgs.PropertyName.ShouldBe(nameof(TestObservableObject.Name)); }
public async Task ShouldRaiseCollectionChangedEventForRemoveRange() { // Arrange List <TestObservableObject> objectsToRemove = TestObservableObjectFaker.Create().Generate(10); var collection = new ObservableItemCollection <TestObservableObject>(); var tcs = new TaskCompletionSource <NotifyCollectionChangedEventArgs>(); collection.CollectionChanged += (sender, args) => { tcs.SetResult(args); }; // Act collection.RemoveRange(objectsToRemove); // Assert NotifyCollectionChangedEventArgs collectionChanged = await tcs.Task; collectionChanged.ShouldNotBeNull(); collectionChanged.OldItems.Count.ShouldBe(objectsToRemove.Count); foreach (object item in collectionChanged.OldItems) { objectsToRemove.ShouldContain(item); } }
public void ShouldContainItemsIfInitializedAsList() { // Arrange List <TestObservableObject> objects = TestObservableObjectFaker.Create().Generate(10); // Act var collection = new ObservableItemCollection <TestObservableObject>(objects); // Assert collection.Count.ShouldBe(objects.Count()); collection.ShouldBeEquivalentTo(objects); }
public void ShouldAddSingleItem() { // Arrange TestObservableObject objectToAdd = TestObservableObjectFaker.Create().Generate(); // Act var collection = new ObservableItemCollection <TestObservableObject> { objectToAdd }; // Assert collection.ShouldContain(objectToAdd); }
public void ShouldRemoveSingleItem() { // Arrange TestObservableObject objectToRemove = TestObservableObjectFaker.Create().Generate(); var collection = new ObservableItemCollection <TestObservableObject> { objectToRemove }; // Act collection.Remove(objectToRemove); // Assert collection.ShouldNotContain(objectToRemove); }
public void ShouldAddRangeOfItems() { // Arrange List <TestObservableObject> objectsToAdd = TestObservableObjectFaker.Create().Generate(10); var collection = new ObservableItemCollection <TestObservableObject>(); // Act collection.AddRange(objectsToAdd); // Assert foreach (TestObservableObject item in objectsToAdd) { collection.ShouldContain(item); } }
public void ShouldRemoveRangeOfItems() { // Arrange List <TestObservableObject> items = TestObservableObjectFaker.Create().Generate(10); var itemsToRemove = items.Take(5).ToList(); var collection = new ObservableItemCollection <TestObservableObject>(items); // Act collection.RemoveRange(itemsToRemove); // Assert foreach (TestObservableObject item in itemsToRemove) { collection.ShouldNotContain(item); } }
public async Task ShouldRaiseCollectionChangedEventForAdd() { // Arrange TestObservableObject objectToAdd = TestObservableObjectFaker.Create().Generate(); var collection = new ObservableItemCollection <TestObservableObject>(); var tcs = new TaskCompletionSource <NotifyCollectionChangedEventArgs>(); collection.CollectionChanged += (sender, args) => { tcs.SetResult(args); }; // Act collection.Add(objectToAdd); // Assert NotifyCollectionChangedEventArgs collectionChanged = await tcs.Task; collectionChanged.ShouldNotBeNull(); collectionChanged.NewItems.Contains(objectToAdd).ShouldBeTrue(); }