public void Single_Dispose_Main()
        {
            var cs = new CompletableSubject();

            var to = cs
                     .AndThen(SingleSource.Just(1))
                     .Test();

            Assert.True(cs.HasObserver());

            to.Dispose();

            Assert.False(cs.HasObserver());
        }
        public void Observable_Dispose_Main()
        {
            var cs = new CompletableSubject();

            var to = cs
                     .AndThen(Observable.Range(1, 5))
                     .Test();

            Assert.True(cs.HasObserver());

            to.Dispose();

            Assert.False(cs.HasObserver());
        }
        public void Completable_Dispose_Main()
        {
            var cs    = new CompletableSubject();
            var count = 0;

            var to = cs
                     .AndThen(CompletableSource.FromAction(() => count++))
                     .Test();

            Assert.True(cs.HasObserver());

            to.Dispose();

            Assert.False(cs.HasObserver());

            Assert.AreEqual(0, count);
        }