public void KeepAlive_must_immediately_pull_upstream_after_busy_period()
{
var upstream = TestPublisher.CreateProbe<int>(this);
var downstream = TestSubscriber.CreateProbe<int>(this);
Source.Combine(Source.From(Enumerable.Range(1, 10)), Source.FromPublisher(upstream),
i => new Merge<int, int>(i))
.KeepAlive(TimeSpan.FromSeconds(1), () => 0)
.RunWith(Sink.FromSubscriber(downstream), Materializer);
downstream.Request(10);
downstream.ExpectNextN(10).ShouldAllBeEquivalentTo(Enumerable.Range(1, 10));
downstream.Request(1);
upstream.SendNext(1);
downstream.ExpectNext(1);
upstream.SendComplete();
downstream.ExpectComplete();
}