Beispiel #1
0
        public void Dispose_Suppress_OnNext_OnCompleted()
        {
            var ts   = new TestScheduler();
            var subj = new PublishSubject <int>();

            var name = "";

            var to = subj
                     .DoOnDispose(() => name = Thread.CurrentThread.Name)
                     .UnsubscribeOn(ts)
                     .Test();

            Assert.True(subj.HasObservers);

            to.AssertEmpty();

            Assert.AreEqual("", name);

            to.Dispose();

            Assert.True(subj.HasObservers);

            subj.OnNext(1);

            to.AssertEmpty();

            subj.OnCompleted();

            to.AssertEmpty();

            Assert.AreEqual("", name);

            ts.AdvanceTimeBy(1);

            Assert.False(subj.HasObservers);
            Assert.AreEqual(Thread.CurrentThread.Name, name);

            to.AssertEmpty();
        }
Beispiel #2
0
        public void Dispose()
        {
            var subj = new PublishSubject <int>();

            var name = "";

            var to = subj
                     .DoOnDispose(() => name = Thread.CurrentThread.Name)
                     .UnsubscribeOn(CurrentThreadScheduler.Instance)
                     .Test();

            Assert.True(subj.HasObservers);

            to.AssertEmpty();

            Assert.AreEqual("", name);

            to.Dispose();

            Assert.False(subj.HasObservers);

            Assert.AreEqual(Thread.CurrentThread.Name, name);
        }