コード例 #1
0
        public void Action_Error()
        {
            var to = new TestObserver <object>();

            CompletableSource.Error(new InvalidOperationException())
            .BlockingSubscribe(to.OnCompleted, to.OnError);

            to.AssertFailure(typeof(InvalidOperationException));
        }
コード例 #2
0
        public void Observer_Error()
        {
            var to = new TestObserver <int>();

            MaybeSource.Error <int>(new InvalidOperationException())
            .BlockingSubscribe(to);

            to.AssertFailure(typeof(InvalidOperationException));
        }
コード例 #3
0
        public void Action_Error()
        {
            var to = new TestObserver <int>();

            MaybeSource.Error <int>(new InvalidOperationException())
            .BlockingSubscribe(to.OnSuccess, to.OnError, to.OnCompleted);

            to.AssertFailure(typeof(InvalidOperationException));
        }
コード例 #4
0
        public void Basic_Observer_Error()
        {
            var to = new TestObserver <int>();

            Observable.Range(1, 5).ConcatError(new InvalidOperationException())
            .BlockingSubscribe(to);

            to.AssertFailure(typeof(InvalidOperationException), 1, 2, 3, 4, 5);
        }
        public void Basic_Action_Error()
        {
            var to = new TestObserver <int>();

            ObservableSource.Range(1, 5).ConcatError(new InvalidOperationException())
            .BlockingSubscribe(to.OnNext, to.OnError, to.OnCompleted);

            to.AssertFailure(typeof(InvalidOperationException), 1, 2, 3, 4, 5);
        }
コード例 #6
0
        public void Lazy_Selector_Crash_Dispose_Crash()
        {
            var to = new TestObserver <int>(requireOnSubscribe: true);

            ObservableSource.Using <int, int>(() => 1, _ => throw new InvalidOperationException(), _ => throw new IndexOutOfRangeException(), false)
            .Subscribe(to);

            to
            .AssertFailure(typeof(InvalidOperationException));
        }
コード例 #7
0
        public void Eager_Complete_Dispose_Crash()
        {
            var to = new TestObserver <int>(requireOnSubscribe: true);

            ObservableSource.Using <int, int>(() => 1, _ => ObservableSource.Empty <int>(), _ => throw new InvalidOperationException(), true)
            .Subscribe(to);

            to
            .AssertFailure(typeof(InvalidOperationException));
        }
コード例 #8
0
        public void Error()
        {
            var to = new TestObserver <int>();

            var source = ObservableSource.Error <int>(new InvalidOperationException());

            source.Subscribe(to.OnNext, to.OnError, to.OnCompleted, to.OnSubscribe);

            to.AssertFailure(typeof(InvalidOperationException));
        }
コード例 #9
0
        public void Basic_With_Error()
        {
            var up = new UnicastSubject <int>();

            var to = new TestObserver <int>();

            up.Subscribe(ReactiveExtensions.ToSerialized(to));

            up.EmitError(new InvalidOperationException(), 1, 2, 3, 4, 5);

            to.AssertFailure(typeof(InvalidOperationException), 1, 2, 3, 4, 5);
        }
コード例 #10
0
        public void Basic_While_Error()
        {
            var to = new TestObserver <int>();

            Observable.Range(1, 5).ConcatError(new InvalidOperationException())
            .BlockingSubscribeWhile(v => {
                to.OnNext(v);
                return(true);
            }, to.OnError, to.OnCompleted);

            to.AssertFailure(typeof(InvalidOperationException), 1, 2, 3, 4, 5);
        }
コード例 #11
0
        public void Lazy_OnError_Cleanup()
        {
            var complete = -1;
            var to       = new TestObserver <int>(requireOnSubscribe: true);

            ObservableSource.Using(() => 0, _ => ObservableSource.Error <int>(new InvalidOperationException()), _ => complete = to.ErrorCount, false)
            .Subscribe(to);

            to.AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(1, complete);
        }
コード例 #12
0
        public void Basic_With_Error()
        {
            var up = new MonocastSubject <int>();

            var to = new TestObserver <int>();

            up.Subscribe(ObservableSource.ToSerialized(to));

            up.EmitError(new InvalidOperationException(), 1, 2, 3, 4, 5);

            to.AssertFailure(typeof(InvalidOperationException), 1, 2, 3, 4, 5);
        }
コード例 #13
0
        public void Lazy_Selector_Crash()
        {
            var complete = -1;

            var to = new TestObserver <int>(requireOnSubscribe: true);

            ObservableSource.Using <int, int>(() => 1, _ => throw new InvalidOperationException(), _ => complete = to.ErrorCount, false)
            .Subscribe(to);

            to
            .AssertFailure(typeof(InvalidOperationException));

            Assert.AreEqual(1, complete);
        }
        public void Basic_Error()
        {
            var to = new TestObserver <int>();

            try
            {
                foreach (var v in ObservableSource.Range(1, 5)
                         .ConcatError(new InvalidOperationException())
                         .BlockingEnumerable())
                {
                    to.OnNext(v);
                }
            } catch (Exception ex)
            {
                to.OnError(ex);
            }

            to.AssertFailure(typeof(InvalidOperationException), 1, 2, 3, 4, 5);
        }
コード例 #15
0
        public void Action_Error_Async()
        {
            for (int i = 0; i < TestHelper.RACE_LOOPS; i++)
            {
                var cs = new MaybeSubject <int>();

                var to = new TestObserver <int>();

                var cdl = new CountdownEvent(1);

                Task.Factory.StartNew(() =>
                {
                    while (!cs.HasObserver())
                    {
                        ;
                    }
                    cs.OnError(new InvalidOperationException());
                });

                cs.BlockingSubscribe(to.OnSuccess, to.OnError, to.OnCompleted);

                to.AssertFailure(typeof(InvalidOperationException));
            }
        }