public void Dispose()
        {
            var count = 0;
            var us    = new CompletableSubject();

            var to = CompletableSource.Defer(() =>
            {
                if (count++ < 5)
                {
                    return(CompletableSource.Empty());
                }
                return(us);
            })
                     .Repeat()
                     .Test();

            to.AssertEmpty();

            Assert.True(us.HasObserver());

            to.Dispose();

            Assert.False(us.HasObserver());

            Assert.AreEqual(6, count);
        }
Пример #2
0
        public void Predicate_Dispose()
        {
            var count = 0;
            var us    = new CompletableSubject();

            var to = CompletableSource.Defer(() =>
            {
                if (count++ < 5)
                {
                    return(CompletableSource.Error(new InvalidOperationException()));
                }
                return(us);
            })
                     .Retry((e, c) => true)
                     .Test();

            to.AssertEmpty();

            Assert.True(us.HasObserver());

            to.Dispose();

            Assert.False(us.HasObserver());

            Assert.AreEqual(6, count);
        }
Пример #3
0
        public void Supplier_Crash()
        {
            var c = CompletableSource.Defer(() =>
            {
                throw new InvalidOperationException();
            });

            c.Test().AssertFailure(typeof(InvalidOperationException));
        }
        public void Retry()
        {
            var count = 0;

            CompletableSource.Defer(() =>
            {
                if (++count < 5)
                {
                    return(CompletableSource.Error(new InvalidOperationException()));
                }
                return(CompletableSource.Empty());
            })
            .RetryWhen(v => v)
            .Test()
            .AssertResult();
        }
Пример #5
0
        public void Basic()
        {
            var count = 0;

            var c = CompletableSource.Defer(() =>
            {
                count++;
                return(CompletableSource.Empty());
            });

            for (int i = 0; i < 100; i++)
            {
                Assert.AreEqual(i, count);

                c.Test().AssertResult();

                Assert.AreEqual(i + 1, count);
            }
        }