public void KeepAlive_must_work_if_timer_fires_before_initial_request_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(Enumerable.Range(1, 10));
downstream.ExpectNoMsg(TimeSpan.FromSeconds(1.5));
downstream.Request(1);
downstream.ExpectNext(0);
upstream.SendComplete();
downstream.ExpectComplete();
}