public void RegisterObservable_SubscribeBeforeUnregistering_NoEventsAfterUnregister() { var subscriptions = new CompositeDisposable(); var pubSub = new RxEventAggregator(); var calledCount = 0; var subject = new BehaviorSubject <TestEvent>(new TestEvent()); var registration = pubSub.Register <TestEvent>(subject); subscriptions.Add(registration); subject.OnNext(new TestEvent()); subscriptions.Add(pubSub.GetEvent <TestEvent>().Subscribe(e => { calledCount++; })); registration.Dispose(); subject.OnNext(new TestEvent()); subscriptions.Dispose(); Assert.AreEqual(1, calledCount); }
public void RegisterObservable_WarmObservableWithRegisteredConversionSubscribedAfterFiring_IsReceivedImmediately() { var subscriptions = new CompositeDisposable(); var pubSub = new RxEventAggregator(); var calledCount = 0; var subject = new Subject <TestEvent>(); subscriptions.Add(pubSub.Register <TestEvent>(subject.Replay(1).RefCount())); subject.OnNext(new TestEvent()); // Note, if you share from this point on you're creating a new 'root' for new subscriptions // which will not include the replay var newStream = pubSub.GetEvent <TestEvent>().Select(t => new TestEvent2()); pubSub.Register <TestEvent2>(newStream); subscriptions.Add(pubSub.GetEvent <TestEvent2>().Subscribe(e => { calledCount++; })); subscriptions.Dispose(); Assert.AreEqual(1, calledCount); }
public void Publish_SimpleEventOfType_IsReceived() { var subscriptions = new CompositeDisposable(); var pubSub = new RxEventAggregator(); var calledCount = 0; subscriptions.Add(pubSub.GetEventsOfType <ITestEvent>().Subscribe(e => { calledCount++; })); pubSub.Publish(new TestEvent()); subscriptions.Dispose(); Assert.AreEqual(1, calledCount); }
public void RegisterObservable_ColdObservableSubscribedBefore_IsReceived() { var subscriptions = new CompositeDisposable(); var pubSub = new RxEventAggregator(); var calledCount = 0; subscriptions.Add(pubSub.GetEvent <TestEvent>().Subscribe(e => { calledCount++; })); var observable = new[] { new TestEvent() }.ToObservable(); subscriptions.Add(pubSub.Register <TestEvent>(observable)); subscriptions.Dispose(); Assert.AreEqual(1, calledCount); }
public void RegisterObservable_HotObservablePublishedAfter_IsReceived() { var subscriptions = new CompositeDisposable(); var pubSub = new RxEventAggregator(); var calledCount = 0; var subject = new Subject <TestEvent>(); subscriptions.Add(pubSub.Register <TestEvent>(subject)); subscriptions.Add(pubSub.GetEvent <TestEvent>().Subscribe(e => { calledCount++; })); subject.OnNext(new TestEvent()); subscriptions.Dispose(); Assert.AreEqual(1, calledCount); }
public void RegisterObservable_WarmObservableSubscribedAfterFiring_IsReceivedImmediately() { var subscriptions = new CompositeDisposable(); var pubSub = new RxEventAggregator(); var calledCount = 0; var subject = new Subject <TestEvent>(); subscriptions.Add(pubSub.Register <TestEvent>(subject.Replay(1).RefCount())); subject.OnNext(new TestEvent()); subscriptions.Add(pubSub.GetEvent <TestEvent>().Subscribe(e => { calledCount++; })); subscriptions.Dispose(); Assert.AreEqual(1, calledCount); }