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) ); }
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) ); }