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); } } }
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); }
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); }
public void SetupData() { _ints = new ObservableCollection <int>(Enumerable.Range(-5, 10)); _tracker?.Dispose(); _tracker = _ints.TrackMin(-1); }