Akka.Streams.Tests.Dsl.FlowPrefixAndTailSpec.PrefixAndTail_must_throw_if_tail_is_attempted_to_be_materialized_twice C# (CSharp) Method

PrefixAndTail_must_throw_if_tail_is_attempted_to_be_materialized_twice() private method

        public void PrefixAndTail_must_throw_if_tail_is_attempted_to_be_materialized_twice()
        {
            this.AssertAllStagesStopped(() =>
            {
                var futureSink = NewHeadSink;
                var fut = Source.From(Enumerable.Range(1, 2)).PrefixAndTail(1).RunWith(futureSink, Materializer);
                fut.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
                fut.Result.Item1.ShouldAllBeEquivalentTo(Enumerable.Range(1, 1));
                var tail = fut.Result.Item2;

                var subscriber1 = TestSubscriber.CreateProbe<int>(this);
                tail.To(Sink.FromSubscriber(subscriber1)).Run(Materializer);

                var subscriber2 = TestSubscriber.CreateProbe<int>(this);
                tail.To(Sink.FromSubscriber(subscriber2)).Run(Materializer);

                subscriber2.ExpectSubscriptionAndError()
                    .Message.Should()
                    .Be("Substream Source cannot be materialized more than once");
                subscriber1.RequestNext(2).ExpectComplete();
            }, Materializer);
        }