示例#1
0
        RangedObservableCollection <T> ct <T>(IEnumerable <T> ts)
        {
            var a = new RangedObservableCollection <T>();

            a.AddRange(ts);
            return(a);
        }
    public void AddRangeTest()
    {
        var source = new RangedObservableCollection <int>();
        var target = source.ToReadOnlyReactiveCollection(x => $"{x}");

        source.Add(1);
        target.Is("1");
        source.AddRange(new[] { 2, 3, 4 });
        target.Is("1", "2", "3", "4");
    }
示例#3
0
    public void AddRangeSmallItemsCaseTest()
    {
        var c        = new RangedObservableCollection <Person>();
        var filtered = c.ToFilteredReadOnlyObservableCollection(x => x.IsRemoved);
        var people   = Enumerable.Range(1, 6).Select(x => new Person
        {
            Name      = $"tanaka {x}",
            IsRemoved = x % 2 == 0,
        });

        c.AddRange(people);
        filtered.Count.Is(3);
    }
示例#4
0
        public void AddRangeRaisesCorrectCollectionChangedEvent()
        {
            var collection = new RangedObservableCollection <int>();

            collection.CollectionChanged += (s, e) =>
            {
                Assert.Equal(NotifyCollectionChangedAction.Add, e.Action);
                Assert.Null(e.OldItems);
                Assert.Equal(ItemsToAdd, e.NewItems);
            };

            collection.AddRange(ItemsToAdd);

            Assert.Equal(ItemsToAdd, collection.ToArray());
        }
示例#5
0
        public void AddRangeRaisesCollectionChangedOnce()
        {
            var collection = new RangedObservableCollection <int>();

            var didTrigger = false;

            collection.CollectionChanged += (s, e) =>
            {
                Assert.False(didTrigger);
                didTrigger = true;
            };

            collection.AddRange(ItemsToAdd);

            Assert.True(didTrigger);
        }
示例#6
0
        public void RemoveRangeRaisesCorrectCollectionChangedEventForNonExistentRemoves()
        {
            var collection = new RangedObservableCollection <int>();

            collection.AddRange(ItemsToAdd);

            collection.CollectionChanged += (s, e) =>
            {
                Assert.Equal(NotifyCollectionChangedAction.Remove, e.Action);
                Assert.Equal(new[] { 1, 2, 3, 4, 5 }, e.OldItems);
                Assert.Null(e.NewItems);
            };

            collection.RemoveRange(new[] { 1, 2, 3, 4, 5, 60, 70, 80, 90, 100 });

            Assert.Equal(new[] { 6, 7, 8, 9, 0 }, collection.ToArray());
        }
示例#7
0
        public void RemoveRangeDoesNotRaiseCollectionChangedForMismatchingItems()
        {
            var collection = new RangedObservableCollection <int>();

            collection.AddRange(ItemsToAdd);

            var didTrigger = false;

            collection.CollectionChanged += (s, e) =>
            {
                Assert.False(didTrigger);
                didTrigger = true;
            };

            collection.RemoveRange(AlternateItemsToAdd);

            Assert.False(didTrigger);
        }