public void TestRemove() { IReactiveSet <int> set = new ReactiveSet <int>(); set.Add(2); set.Add(2); set.Add(4); Assert.IsFalse(set.Remove(5)); Assert.IsTrue(set.Remove(2)); Assert.AreEqual(1, set.Count); CollectionAssert.AreEquivalent(set, new[] { 4 }); }
public void TestRemoveObservable() { IReactiveSet <int> set = new ReactiveSet <int>(); int?lastRemoved = null; set.ObserveRemove().Subscribe(@event => lastRemoved = @event.Value); set.Add(2); set.Add(3); set.Add(4); set.Remove(3); Assert.AreEqual(3, lastRemoved); lastRemoved = null; set.Remove(3); Assert.IsNull(lastRemoved); set.Remove(4); Assert.AreEqual(4, lastRemoved); }