コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }