示例#1
0
        public void Result_is_updated_after_Replace()
        {
            var subject = new ObservableCollection <int>(new [] { 10, 11, 12, 11, 12, 10, 12, 17 });
            var result  = subject.ToQueryable().Distinct().ToObservable();

            Assert.IsInstanceOfType(result, typeof(IQueryableObservableCollection <int>));

            var events = new List <NotifyCollectionChangedEventArgs>();

            result.CollectionChanged += (s, e) => events.Add(e);

            subject[0] = 13;
            EnumerableAssert.AreEqual(result, 13, 11, 12, 10, 17);
            Assert.AreEqual(2, events.Count);

            subject[0] = 13;
            EnumerableAssert.AreEqual(result, 13, 11, 12, 10, 17);
            Assert.AreEqual(2, events.Count);

            subject[1] = 12;
            EnumerableAssert.AreEqual(result, 13, 12, 11, 10, 17);
            Assert.AreEqual(3, events.Count);
        }