Akka.Streams.Tests.IO.TcpSpec.Outgoing_TCP_stream_must_properly_full_close_if_requested C# (CSharp) Method

Outgoing_TCP_stream_must_properly_full_close_if_requested() private method

        public void Outgoing_TCP_stream_must_properly_full_close_if_requested()
        {
            this.AssertAllStagesStopped(() =>
            {
                var serverAddress = TestUtils.TemporaryServerAddress();
                var writeButIgnoreRead = Flow.FromSinkAndSource(Sink.Ignore<ByteString>(),
                    Source.Single(ByteString.FromString("Early response")), Keep.Right);

                var task =
                    Sys.TcpStream()
                        .Bind(serverAddress.Address.ToString(), serverAddress.Port, halfClose: false)
                        .ToMaterialized(
                            Sink.ForEach<Tcp.IncomingConnection>(conn => conn.Flow.Join(writeButIgnoreRead).Run(Materializer)),
                            Keep.Left)
                        .Run(Materializer);
                task.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
                var binding = task.Result;

                var t = Source.Maybe<ByteString>()
                    .Via(Sys.TcpStream().OutgoingConnection(serverAddress.Address.ToString(), serverAddress.Port))
                    .ToMaterialized(Sink.Aggregate<ByteString, ByteString>(ByteString.Empty, (s, s1) => s + s1), Keep.Both)
                    .Run(Materializer);
                var promise = t.Item1;
                var result = t.Item2;

                result.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
                result.Result.ShouldBeEquivalentTo(ByteString.FromString("Early response"));

                promise.SetResult(null); // close client upstream, no more data
                binding.Unbind();

            }, Materializer);
        }