public void AddRange(bool supportsRangeNotifications) { //Arrange ClassUnderTest.SupportsRangeNotifications = supportsRangeNotifications; var itemsToAddRange = Enumerable.Range(1, 3).Select(i => new TestViewModel(new TestModel { Id = i })).ToArray(); //Act ClassUnderTest.AddRange(itemsToAddRange); //Assert ClassUnderTest.Should().Equal(itemsToAddRange); ClassUnderTest.Count.Should().Be(3); }
public void AddRange_NewItemsCollectionChangeNotification(bool supportsRangeNotifications) { //Arrange ClassUnderTest.SupportsRangeNotifications = supportsRangeNotifications; var itemsToAddRange = Enumerable.Range(1, 3).Select(i => new TestViewModel(new TestModel { Id = i })).ToArray(); IList addedItems = new List <TestViewModel>(); int addedItemsCount = 0; void Handler(object sender, NotifyCollectionChangedEventArgs args) { if (args.Action == NotifyCollectionChangedAction.Add) { foreach (var newItem in args.NewItems) { addedItems.Add(newItem); } } addedItemsCount = args.NewItems.Count; } ClassUnderTest.CollectionChanged += Handler; //Act ClassUnderTest.AddRange(itemsToAddRange); ClassUnderTest.CollectionChanged -= Handler; //Assert addedItems.Count.Should().Be(itemsToAddRange.Length); addedItemsCount.Should().Be(supportsRangeNotifications ? itemsToAddRange.Length : 1); }