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

Tcp_listen_stream_must_be_able_to_implement_echo() private method

private Tcp_listen_stream_must_be_able_to_implement_echo ( ) : void
return void
        public void Tcp_listen_stream_must_be_able_to_implement_echo()
        {
            var serverAddress = TestUtils.TemporaryServerAddress();
            var t = Sys.TcpStream()
                .Bind(serverAddress.Address.ToString(), serverAddress.Port)
                .ToMaterialized(EchoHandler(), Keep.Both)
                .Run(Materializer);
            var bindingFuture = t.Item1;
            var echoServerFinish = t.Item2;

            // make sure that the server has bound to the socket
            bindingFuture.Wait(100).Should().BeTrue();
            var binding = bindingFuture.Result;

            var testInput = Enumerable.Range(0, 255).Select(i => ByteString.Create(new[] {Convert.ToByte(i)})).ToList();
            var expectedOutput = testInput.Aggregate(ByteString.Empty, (agg, b) => agg.Concat(b));
            var resultFuture =
                Source.From(testInput)
                    .Via(Sys.TcpStream().OutgoingConnection(serverAddress))
                    .RunAggregate(ByteString.Empty, (agg, b) => agg.Concat(b), Materializer);

            resultFuture.Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
            resultFuture.Result.ShouldBeEquivalentTo(expectedOutput);
            binding.Unbind().Wait(TimeSpan.FromSeconds(3)).Should().BeTrue();
            echoServerFinish.Wait(TimeSpan.FromSeconds(1)).Should().BeTrue();
        }