public void CompletionTimeout_must_fail_if_not_completed_until_timeout()
{
this.AssertAllStagesStopped(() =>
{
var upstreamProbe = TestPublisher.CreateProbe<int>(this);
var downstreamProbe = this.CreateProbe<int>();
Source.FromPublisher<int>(upstreamProbe)
.CompletionTimeout(TimeSpan.FromSeconds(2))
.RunWith(Sink.FromSubscriber(downstreamProbe), Materializer);
upstreamProbe.SendNext(1);
downstreamProbe.RequestNext(1);
downstreamProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(500)); // No timeout yet
upstreamProbe.SendNext(2);
downstreamProbe.RequestNext(2);
downstreamProbe.ExpectNoMsg(TimeSpan.FromMilliseconds(500)); // No timeout yet
var ex = downstreamProbe.ExpectError();
ex.Message.Should().Be($"The stream has not been completed in {TimeSpan.FromSeconds(2)}.");
}, Materializer);
}