public void SplitWhen_must_work_in_the_happy_case() { this.AssertAllStagesStopped(() => { WithSubstreamsSupport(elementCount: 4, run: (masterSubscriber, masterSubscription, getSubFlow) => { var s1 = new StreamPuppet(getSubFlow().RunWith(Sink.AsPublisher <int>(false), Materializer), this); masterSubscriber.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s1.Request(2); s1.ExpectNext(1); s1.ExpectNext(2); s1.Request(1); s1.ExpectComplete(); var s2 = new StreamPuppet(getSubFlow().RunWith(Sink.AsPublisher <int>(false), Materializer), this); masterSubscriber.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s2.Request(1); s2.ExpectNext(3); s2.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s2.Request(1); s2.ExpectNext(4); s2.Request(1); s2.ExpectComplete(); masterSubscription.Request(1); masterSubscriber.ExpectComplete(); }); }, Materializer); }
public void GroupBy_must_work_in_the_happy_case() { this.AssertAllStagesStopped(() => { WithSubstreamsSupport(2, run: (masterSubscriber, masterSubscription, getSubFlow) => { var s1 = new StreamPuppet(getSubFlow(1).RunWith(Sink.AsPublisher <int>(false), Materializer), this); masterSubscriber.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s1.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s1.Request(1); s1.ExpectNext(1); s1.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); var s2 = new StreamPuppet(getSubFlow(0).RunWith(Sink.AsPublisher <int>(false), Materializer), this); s2.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s2.Request(2); s2.ExpectNext(2); // Important to request here on the OTHER stream because the buffer space is exactly one without the fanout box s1.Request(1); s2.ExpectNext(4); s2.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s1.ExpectNext(3); s2.Request(1); // Important to request here on the OTHER stream because the buffer space is exactly one without the fanout box s1.Request(1); s2.ExpectNext(6); s2.ExpectComplete(); s1.ExpectNext(5); s1.ExpectComplete(); masterSubscription.Request(1); masterSubscriber.ExpectComplete(); }); }, Materializer); }
public void GroupBy_must_support_cancelling_substreams() { this.AssertAllStagesStopped(() => { WithSubstreamsSupport(2, run: (masterSubscriber, masterSubscription, getSubFlow) => { new StreamPuppet(getSubFlow(1).RunWith(Sink.AsPublisher <int>(false), Materializer), this).Cancel(); var substream = new StreamPuppet(getSubFlow(0).RunWith(Sink.AsPublisher <int>(false), Materializer), this); substream.Request(2); substream.ExpectNext(2); substream.ExpectNext(4); substream.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); substream.Request(2); substream.ExpectNext(6); substream.ExpectComplete(); masterSubscription.Request(1); masterSubscriber.ExpectComplete(); }); }, Materializer); }
public void GroupBy_must_work_in_the_happy_case() { this.AssertAllStagesStopped(() => { WithSubstreamsSupport(2, run: (masterSubscriber, masterSubscription, getSubFlow) => { var s1 = new StreamPuppet(getSubFlow(1).RunWith(Sink.AsPublisher<int>(false), Materializer), this); masterSubscriber.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s1.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s1.Request(1); s1.ExpectNext(1); s1.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); var s2 = new StreamPuppet(getSubFlow(0).RunWith(Sink.AsPublisher<int>(false), Materializer), this); s2.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s2.Request(2); s2.ExpectNext(2); // Important to request here on the OTHER stream because the buffer space is exactly one without the fanout box s1.Request(1); s2.ExpectNext(4); s2.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s1.ExpectNext(3); s2.Request(1); // Important to request here on the OTHER stream because the buffer space is exactly one without the fanout box s1.Request(1); s2.ExpectNext(6); s2.ExpectComplete(); s1.ExpectNext(5); s1.ExpectComplete(); masterSubscription.Request(1); masterSubscriber.ExpectComplete(); }); }, Materializer); }
public void GroupBy_must_support_cancelling_substreams() { this.AssertAllStagesStopped(() => { WithSubstreamsSupport(2, run: (masterSubscriber, masterSubscription, getSubFlow) => { new StreamPuppet(getSubFlow(1).RunWith(Sink.AsPublisher<int>(false), Materializer), this).Cancel(); var substream = new StreamPuppet(getSubFlow(0).RunWith(Sink.AsPublisher<int>(false), Materializer), this); substream.Request(2); substream.ExpectNext(2); substream.ExpectNext(4); substream.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); substream.Request(2); substream.ExpectNext(6); substream.ExpectComplete(); masterSubscription.Request(1); masterSubscriber.ExpectComplete(); }); }, Materializer); }
public void SplitWhen_must_work_in_the_happy_case() { this.AssertAllStagesStopped(() => { WithSubstreamsSupport(elementCount: 4, run: (masterSubscriber, masterSubscription, getSubFlow) => { var s1 = new StreamPuppet(getSubFlow().RunWith(Sink.AsPublisher<int>(false), Materializer), this); masterSubscriber.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s1.Request(2); s1.ExpectNext(1); s1.ExpectNext(2); s1.Request(1); s1.ExpectComplete(); var s2 = new StreamPuppet(getSubFlow().RunWith(Sink.AsPublisher<int>(false), Materializer), this); masterSubscriber.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s2.Request(1); s2.ExpectNext(3); s2.ExpectNoMsg(TimeSpan.FromMilliseconds(100)); s2.Request(1); s2.ExpectNext(4); s2.Request(1); s2.ExpectComplete(); masterSubscription.Request(1); masterSubscriber.ExpectComplete(); }); }, Materializer); }