Ejemplo n.º 1
0
            public void ReactsAndNotifiesOnSourceChanges()
            {
                var ints = new ObservableCollection <int> {
                    1, 2, 3
                };

                using (var tracker = MinTracker.TrackMin(ints))
                {
                    Assert.AreEqual(1, tracker.Value);
                    int count = 0;
                    using (tracker.ObservePropertyChangedSlim(x => x.Value, signalInitial: false)
                           .Subscribe(_ => count++))
                    {
                        ints.Remove(2);
                        Assert.AreEqual(0, count);
                        Assert.AreEqual(1, tracker.Value);

                        ints.Remove(1);
                        Assert.AreEqual(1, count);
                        Assert.AreEqual(3, tracker.Value);

                        ints.Remove(3);
                        Assert.AreEqual(2, count);
                        Assert.AreEqual(null, tracker.Value);

                        ints.Add(2);
                        Assert.AreEqual(3, count);
                        Assert.AreEqual(2, tracker.Value);
                    }
                }
            }
Ejemplo n.º 2
0
        public void ReactsAndNotifiesOnSourceChanges()
        {
            var ints    = new ObservableCollection <int>(new[] { 1, 2, 3 });
            var tracker = MinTracker.TrackMin(ints, -1);

            Assert.AreEqual(1, tracker.Value);
            int count = 0;

            tracker.ObservePropertyChanged(x => x.Value, false)
            .Subscribe(_ => count++);
            ints.Remove(2);
            Assert.AreEqual(0, count);
            Assert.AreEqual(1, tracker.Value);

            ints.Remove(1);
            Assert.AreEqual(1, count);
            Assert.AreEqual(3, tracker.Value);

            ints.Remove(3);
            Assert.AreEqual(2, count);
            Assert.AreEqual(-1, tracker.Value);

            ints.Add(2);
            Assert.AreEqual(3, count);
            Assert.AreEqual(2, tracker.Value);
        }
Ejemplo n.º 3
0
 public void SetupData()
 {
     _fakes = new ObservableCollection <Fake>(Enumerable.Range(-5, 10).Select(x => new Fake {
         Value = x
     }));
     _tracker?.Dispose();
     _tracker = _fakes.TrackMin(x => x.Value, -1, false);
     _changeTracker?.Dispose();
     _changeTracker = _fakes.TrackMin(x => x.Value, -1, true);
 }
Ejemplo n.º 4
0
 public void SetupData()
 {
     _ints = new ObservableCollection <int>(Enumerable.Range(-5, 10));
     _tracker?.Dispose();
     _tracker = _ints.TrackMin(-1);
 }