Beispiel #1
0
        public void Mapper_Crash_Max_Concurrency()
        {
            for (int k = 1; k < 5; k++)
            {
                var count  = 0;
                var source = CompletableSource.FromAction(() => count++);

                var u = 0;

                new[] { source, source, source }
                .ToObservable()
                .FlatMap(v =>
                {
                    if (++u == 2)
                    {
                        throw new InvalidOperationException();
                    }
                    return(v);
                }, maxConcurrency: k)
                .Test()
                .AssertFailure(typeof(InvalidOperationException));

                Assert.AreEqual(1, count);
            }
        }
        public void Timeout_Fallback_Error()
        {
            var ts = new TestScheduler();
            var us = new CompletableSubject();

            var count = 0;
            var fb    = CompletableSource.FromAction(() =>
            {
                ++count;
                throw new InvalidOperationException();
            });

            var to = us
                     .Timeout(TimeSpan.FromSeconds(1), ts, fb)
                     .Test();

            to.AssertEmpty();

            ts.AdvanceTimeBy(100);

            Assert.True(us.HasObserver());

            ts.AdvanceTimeBy(900);

            Assert.False(us.HasObserver());

            to.AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(1, count);
        }
        public void Timeout_Fallback()
        {
            var ts = new TestScheduler();
            var us = new CompletableSubject();

            var count = 0;
            var fb    = CompletableSource.FromAction(() => count++);

            var to = us
                     .Timeout(TimeSpan.FromSeconds(1), ts, fb)
                     .Test();

            to.AssertEmpty();

            ts.AdvanceTimeBy(100);

            Assert.True(us.HasObserver());

            ts.AdvanceTimeBy(900);

            Assert.False(us.HasObserver());

            to.AssertResult();

            Assert.AreEqual(1, count);
        }
        public void Error()
        {
            var count = 0;

            var us = new UnicastSubject <int>();

            var to = us
                     .ConcatMap(v => {
                if (v == 2)
                {
                    return(CompletableSource.Error(new InvalidOperationException()));
                }
                return(CompletableSource.FromAction(() => count++));
            })
                     .Test();

            to.AssertEmpty()
            .AssertSubscribed();

            us.OnNext(0);
            us.OnNext(1);
            us.OnNext(2);

            to.AssertFailure(typeof(InvalidOperationException));

            Assert.False(us.HasObserver());

            Assert.AreEqual(2, count);
        }
Beispiel #5
0
        public void Array_Basic_Delay_Errors()
        {
            var count  = 0;
            var source = CompletableSource.FromAction(() => count++);

            CompletableSource.Merge(true, new[] { source, source, source })
            .Test()
            .AssertResult();

            Assert.AreEqual(3, count);
        }
Beispiel #6
0
        public void Array_Basic_Params()
        {
            var count  = 0;
            var source = CompletableSource.FromAction(() => count++);

            CompletableSource.Merge(source, source, source)
            .Test()
            .AssertResult();

            Assert.AreEqual(3, count);
        }
Beispiel #7
0
        public void Main_Disposed_Handler_Completes()
        {
            var count = 0;

            CompletableSource.FromAction(() => count++)
            .RepeatWhen(v => Observable.Empty <int>())
            .Test()
            .AssertResult();

            Assert.AreEqual(0, count);
        }
Beispiel #8
0
        public void Handler_Completes()
        {
            var subs = 0;

            CompletableSource.FromAction(() => subs++)
            .RepeatWhen(v => v.Take(1).Skip(1))
            .Test()
            .AssertResult();

            Assert.AreEqual(1, subs);
        }
Beispiel #9
0
        public void Handler_Errors()
        {
            var subs = 0;

            CompletableSource.FromAction(() => subs++)
            .RepeatWhen(v => v.Take(1).Skip(1).ConcatError(new NotImplementedException()))
            .Test()
            .AssertFailure(typeof(NotImplementedException));

            Assert.AreEqual(1, subs);
        }
Beispiel #10
0
        public void Main_Disposed_Handler_Errors()
        {
            var count = 0;

            CompletableSource.FromAction(() => count++)
            .RepeatWhen(v => Observable.Throw <int>(new InvalidOperationException()))
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(0, count);
        }
        public void Basic_DelayError()
        {
            var count = 0;

            Observable.Range(1, 10)
            .ConcatMap(v => CompletableSource.FromAction(() => count++), true)
            .Test()
            .AssertResult();

            Assert.AreEqual(10, count);
        }
        public void Single_Main_Error()
        {
            var count = 0;

            SingleSource.Error <int>(new InvalidOperationException())
            .FlatMap(v => CompletableSource.FromAction(() => count++))
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(0, count);
        }
        public void Single_Basic()
        {
            var count = 0;

            SingleSource.Just(1)
            .FlatMap(v => CompletableSource.FromAction(() => count++))
            .Test()
            .AssertResult();

            Assert.AreEqual(1, count);
        }
        public void Maybe_Empty()
        {
            var count = 0;

            MaybeSource.Empty <int>()
            .FlatMap(v => CompletableSource.FromAction(() => count++))
            .Test()
            .AssertResult();

            Assert.AreEqual(0, count);
        }
Beispiel #15
0
        public void Error_Delayed()
        {
            var count = 0;

            Observable.Range(1, 5).ConcatError(new InvalidOperationException())
            .SwitchMap(v => CompletableSource.FromAction(() => count++), true)
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(5, count);
        }
        public void Basic_No_Error()
        {
            var subs = 0;

            CompletableSource.FromAction(() => subs++)
            .RetryWhen(v => v)
            .Test()
            .AssertResult();

            Assert.AreEqual(1, subs);
        }
Beispiel #17
0
        public void Basic()
        {
            var count = 0;

            Observable.Range(1, 5)
            .SwitchMap(v => CompletableSource.FromAction(() => count++))
            .Test()
            .AssertResult();

            Assert.AreEqual(5, count);
        }
Beispiel #18
0
        public void Empty()
        {
            var count = 0;

            Observable.Empty <int>()
            .SwitchMap(v => CompletableSource.FromAction(() => count++))
            .Test()
            .AssertResult();

            Assert.AreEqual(0, count);
        }
        public void Completable_Basic()
        {
            var count = 0;

            CompletableSource.Empty()
            .AndThen(CompletableSource.FromAction(() => count++))
            .Test()
            .AssertResult();

            Assert.AreEqual(1, count);
        }
Beispiel #20
0
        public void Error()
        {
            var count = 0;
            var fb    = CompletableSource.FromAction(() => count++);

            CompletableSource.Error(new InvalidOperationException())
            .OnErrorResumeNext(fb)
            .Test()
            .AssertResult();

            Assert.AreEqual(1, count);
        }
Beispiel #21
0
        public void Array_Basic()
        {
            var count  = 0;
            var source = CompletableSource.FromAction(() => count++);

            new[] { source, source, source }
            .MergeAll()
            .Test()
            .AssertResult();

            Assert.AreEqual(3, count);
        }
Beispiel #22
0
        public void Handler_Basic()
        {
            var count = 0;
            var fb    = CompletableSource.FromAction(() => count++);

            CompletableSource.Empty()
            .OnErrorResumeNext(e => fb)
            .Test()
            .AssertResult();

            Assert.AreEqual(0, count);
        }
        public void Error_Fallback()
        {
            var count = 0;
            var fb    = CompletableSource.FromAction(() => count++);

            CompletableSource.Error(new InvalidOperationException())
            .Timeout(TimeSpan.FromMinutes(1), NewThreadScheduler.Default, fb)
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(0, count);
        }
        public void Basic_Fallback()
        {
            var count = 0;
            var fb    = CompletableSource.FromAction(() => count++);

            CompletableSource.Empty()
            .Timeout(TimeSpan.FromMinutes(1), NewThreadScheduler.Default, fb)
            .Test()
            .AssertResult();

            Assert.AreEqual(0, count);
        }
Beispiel #25
0
        public void Array_Error()
        {
            var count  = 0;
            var source = CompletableSource.FromAction(() => count++);
            var err    = CompletableSource.Error(new InvalidOperationException());

            CompletableSource.Merge(source, err, source)
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(1, count);
        }
        public void Disposed_Upfront()
        {
            var count = 0;

            var c = CompletableSource.FromAction(() => count++);

            c.Test(true)
            .AssertSubscribed()
            .AssertEmpty();

            Assert.AreEqual(0, count);
        }
Beispiel #27
0
        public void Basic_Error_Delay()
        {
            var count = 0;

            CompletableSource.Concat(true,
                                     CompletableSource.Error(new InvalidOperationException()),
                                     CompletableSource.FromAction(() => count++)
                                     )
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(1, count);
        }
Beispiel #28
0
        public void Basic_Delay_Errors()
        {
            var count  = 0;
            var source = CompletableSource.FromAction(() => count++);

            new[] { source, source, source }
            .ToObservable()
            .FlatMap(v => v, true)
            .Test()
            .AssertResult();

            Assert.AreEqual(3, count);
        }
Beispiel #29
0
        public void Basic_Delay_Errors()
        {
            var count = 0;

            CompletableSource.Concat(true,
                                     CompletableSource.FromAction(() => count++),
                                     CompletableSource.FromAction(() => count++)
                                     )
            .Test()
            .AssertResult();

            Assert.AreEqual(2, count);
        }
Beispiel #30
0
        public void Error()
        {
            var count  = 0;
            var source = CompletableSource.FromAction(() => count++);
            var err    = CompletableSource.Error(new InvalidOperationException());

            new [] { source, err, source }
            .ToObservable()
            .FlatMap(v => v)
            .Test()
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(1, count);
        }