Esempio n. 1
0
        public void Concat_Enumerable_Dispose()
        {
            var scheduler = new TestScheduler();

            var o1 = scheduler.CreateHotObservable(
                OnNext(150, 1),
                OnNext(210, 2),
                OnNext(220, 3),
                OnCompleted <int>(230)
                );

            var o2 = scheduler.CreateHotObservable(
                OnNext(150, 1),
                OnNext(200, 2),
                OnNext(210, 3),
                OnNext(240, 4),
                OnNext(270, 5),
                OnNext(320, 6),
                OnNext(330, 7),
                OnCompleted <int>(340)
                );

            var xss = new MockEnumerable <ITestableObservable <int> >(scheduler, new[] { o1, o2 });

            var res = scheduler.Start(() =>
                                      xss.Select(xs => (IObservable <int>)xs).Concat(),
                                      300
                                      );

            res.Messages.AssertEqual(
                OnNext(210, 2),
                OnNext(220, 3),
                OnNext(240, 4),
                OnNext(270, 5)
                );

            o1.Subscriptions.AssertEqual(
                Subscribe(200, 230)
                );

            o2.Subscriptions.AssertEqual(
                Subscribe(230, 300)
                );

            xss.Subscriptions.AssertEqual(
                Subscribe(200, 300)
                );
        }
Esempio n. 2
0
        public void Concat_EnumerableTiming()
        {
            var scheduler = new TestScheduler();

            var o1 = scheduler.CreateHotObservable(
                OnNext(150, 1),
                OnNext(210, 2), // !
                OnNext(220, 3), // !
                OnCompleted <int>(230)
                );

            var o2 = scheduler.CreateColdObservable(
                OnNext(50, 4),  // !
                OnNext(60, 5),  // !
                OnNext(70, 6),  // !
                OnCompleted <int>(80)
                );

            var o3 = scheduler.CreateHotObservable(
                OnNext(150, 1),
                OnNext(200, 2),
                OnNext(210, 3),
                OnNext(220, 4),
                OnNext(230, 5),
                OnNext(270, 6),
                OnNext(320, 7), // !
                OnNext(330, 8), // !
                OnCompleted <int>(340)
                );

            var xss = new MockEnumerable <ITestableObservable <int> >(scheduler, new[] { o1, o2, o3, o2 });

            var res = scheduler.Start(() =>
                                      xss.Select(xs => (IObservable <int>)xs).Concat()
                                      );

            res.Messages.AssertEqual(
                OnNext(210, 2),
                OnNext(220, 3),
                OnNext(280, 4),
                OnNext(290, 5),
                OnNext(300, 6),
                OnNext(320, 7),
                OnNext(330, 8),
                OnNext(390, 4),
                OnNext(400, 5),
                OnNext(410, 6),
                OnCompleted <int>(420)
                );

            o1.Subscriptions.AssertEqual(
                Subscribe(200, 230)
                );

            o2.Subscriptions.AssertEqual(
                Subscribe(230, 310),
                Subscribe(340, 420)
                );

            o3.Subscriptions.AssertEqual(
                Subscribe(310, 340)
                );

            xss.Subscriptions.AssertEqual(
                Subscribe(200, 420)
                );
        }