public void PrefixAndTail_must_signal_error_if_substream_has_been_not_subscribed_in_time()
{
this.AssertAllStagesStopped(() =>
{
var settings = ActorMaterializerSettings.Create(Sys)
.WithSubscriptionTimeoutSettings(
new StreamSubscriptionTimeoutSettings(
StreamSubscriptionTimeoutTerminationMode.CancelTermination,
TimeSpan.FromMilliseconds(500)));
var tightTimeoutMaterializer = ActorMaterializer.Create(Sys, settings);
var futureSink = NewHeadSink;
var fut = Source.From(Enumerable.Range(1, 2)).PrefixAndTail(1).RunWith(futureSink, tightTimeoutMaterializer);
fut.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
fut.Result.Item1.ShouldAllBeEquivalentTo(Enumerable.Range(1, 1));
var tail = fut.Result.Item2;
var subscriber = TestSubscriber.CreateProbe<int>(this);
Thread.Sleep(1000);
tail.To(Sink.FromSubscriber(subscriber)).Run(tightTimeoutMaterializer);
subscriber.ExpectSubscriptionAndError()
.Message.Should()
.Be("Substream Source has not been materialized in 00:00:00.5000000");
}, Materializer);
}