public void complete_does_not_equate_to_value() { var eventOwnerA = new EventOwner(); var observableA = Observable.FromEvent<EventArgs>(x => eventOwnerA.Event += x, x => eventOwnerA.Event -= x); var stats = new StatsObserver<IEvent<EventArgs>>(); observableA .SkipUntil(Observable.Empty<int>()) .Subscribe(stats); eventOwnerA.Fire(); eventOwnerA.Fire(); eventOwnerA.Fire(); Assert.AreEqual(0, stats.NextCount); Assert.IsFalse(stats.CompletedCalled); }
public void returns_values_after_other_emits_value() { var eventOwnerA = new EventOwner(); var eventOwnerB = new EventOwner(); var observableA = Observable.FromEvent<EventArgs>(x => eventOwnerA.Event += x, x => eventOwnerA.Event -= x); var observableB = Observable.FromEvent<EventArgs>(x => eventOwnerB.Event += x, x => eventOwnerB.Event -= x); var stats = new StatsObserver<IEvent<EventArgs>>(); observableA.SkipUntil(observableA) .Subscribe(stats); eventOwnerA.Fire(); eventOwnerA.Fire(); eventOwnerA.Fire(); eventOwnerB.Fire(); eventOwnerA.Fire(); Assert.AreEqual(3, stats.NextCount); }
public void other_sources_are_unsubscribed_when_value_is_received() { var sourceA = new EventOwner(); var sourceB = new EventOwner(); var sourceC = new EventOwner(); var obs = Observable.Amb( sourceA.GetObservableEvent(), sourceB.GetObservableEvent(), sourceC.GetObservableEvent() ); var stats = new StatsObserver<IEvent<EventArgs>>(); obs.Subscribe(stats); sourceB.Fire(); Assert.IsFalse(sourceA.HasSubscriptions); Assert.IsTrue(sourceB.HasSubscriptions); Assert.IsFalse(sourceC.HasSubscriptions); }