Akka.Tests.IO.TcpIntegrationSpec.The_TCP_transport_implementation_handle_tcp_connection_actor_death_properly C# (CSharp) Method

The_TCP_transport_implementation_handle_tcp_connection_actor_death_properly() private method

        public void The_TCP_transport_implementation_handle_tcp_connection_actor_death_properly()
        {
            new TestSetup(this, shouldBindServer:false).Run(x =>
            {
                var serverSocket = new Socket(SocketType.Stream, ProtocolType.Tcp);
                serverSocket.Bind(x.Endpoint);
                serverSocket.Listen(100);

                var connectCommander = CreateTestProbe();
                connectCommander.Send(Sys.Tcp(), new Tcp.Connect(x.Endpoint));

                var accept = serverSocket.Accept();
                connectCommander.ExpectMsg<Tcp.Connected>().RemoteAddress.AsInstanceOf<IPEndPoint>().Port.ShouldBe(x.Endpoint.Port);
                var connectionActor = connectCommander.LastSender;
                connectCommander.Send(connectionActor, PoisonPill.Instance);

                AwaitConditionNoThrow(() =>
                {
                    try
                    {
                        var buffer = new byte[1024];
                        return accept.Receive(buffer) == 0;
                    }
                    catch (SocketException ex)
                    {
                        return true;
                    }
                }, TimeSpan.FromSeconds(3));

                VerifyActorTermination(connectionActor);
            });
        }