Esempio n. 1
0
        public void An_ObservableSource_must_receive_events_from_an_observable()
        {
            this.AssertAllStagesStopped(() =>
            {
                var o = new TestObservable <int>();
                var s = this.CreateManualSubscriberProbe <int>();
                Source.FromObservable(o)
                .To(Sink.FromSubscriber(s))
                .Run(_materializer);

                var sub = s.ExpectSubscription();

                sub.Request(2);

                o.Event(1);
                o.Event(2);
                o.Event(3);

                s.ExpectNext(1);
                s.ExpectNext(2);
                s.ExpectNoMsg();

                sub.Request(2);

                s.ExpectNext(3);
                s.ExpectNoMsg();

                o.Event(4);

                s.ExpectNext(4);

                o.Complete();
            }, _materializer);
        }
Esempio n. 2
0
        public void An_ObservableSource_must_drop_newest_element_on_DropTail_overflow()
        {
            this.AssertAllStagesStopped(() =>
            {
                var o = new TestObservable <int>();
                var s = this.CreateManualSubscriberProbe <int>();
                Source.FromObservable(o, maxBufferCapacity: 2, overflowStrategy: OverflowStrategy.DropTail)
                .To(Sink.FromSubscriber(s))
                .Run(_materializer);

                var sub = s.ExpectSubscription();

                o.Event(1);
                o.Event(2); // this should be dropped
                o.Event(3);

                sub.Request(3);

                s.ExpectNext(1);
                s.ExpectNext(3);
                s.ExpectNoMsg();

                sub.Cancel();
            }, _materializer);
        }
Esempio n. 3
0
        public void An_ObservableSource_must_receive_errors_from_an_observable()
        {
            this.AssertAllStagesStopped(() =>
            {
                var o = new TestObservable <int>();
                var s = this.CreateManualSubscriberProbe <int>();
                Source.FromObservable(o)
                .To(Sink.FromSubscriber(s))
                .Run(_materializer);

                var sub = s.ExpectSubscription();
                sub.Request(2);

                var e = new Exception("hello");

                o.Event(1);
                o.Error(e);
                o.Event(2);

                s.ExpectNext(1);
                s.ExpectError().ShouldBe(e);
                s.ExpectNoMsg();
            }, _materializer);
        }
Esempio n. 4
0
        public void An_ObservableSource_must_be_able_to_unsubscribe()
        {
            this.AssertAllStagesStopped(() =>
            {
                var o = new TestObservable <int>();
                var s = this.CreateManualSubscriberProbe <int>();
                Source.FromObservable(o)
                .To(Sink.FromSubscriber(s))
                .Run(_materializer);

                var sub = s.ExpectSubscription();

                o.Event(1);

                sub.Cancel();

                Thread.Sleep(100);

                o.Subscribed.ShouldBeFalse();
            }, _materializer);
        }