public void SplitWhen_must_fail_stream_if_substream_not_materialized_in_time()
{
this.AssertAllStagesStopped(() =>
{
var tightTimeoutMaterializer = ActorMaterializer.Create(Sys,
ActorMaterializerSettings.Create(Sys)
.WithSubscriptionTimeoutSettings(
new StreamSubscriptionTimeoutSettings(
StreamSubscriptionTimeoutTerminationMode.CancelTermination,
TimeSpan.FromMilliseconds(500))));
var testSource =
Source.Single(1)
.MapMaterializedValue<TaskCompletionSource<int>>(_ => null)
.Concat(Source.Maybe<int>())
.SplitWhen(_ => true);
Action action = () =>
{
var task =
testSource.Lift()
.Delay(TimeSpan.FromSeconds(1))
.ConcatMany(s => s.MapMaterializedValue<TaskCompletionSource<int>>(_ => null))
.RunWith(Sink.Ignore<int>(), tightTimeoutMaterializer);
task.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
};
action.ShouldThrow<SubscriptionTimeoutException>();
}, Materializer);
}