Kraken\_Module\Ipc\Socket\SocketTest::testSocketWritesAndReadsDataCorrectly PHP Method

testSocketWritesAndReadsDataCorrectly() public method

    public function testSocketWritesAndReadsDataCorrectly($endpoint)
    {
        $this->simulate(function (SimulationInterface $sim) use($endpoint) {
            $loop = $sim->getLoop();
            $server = new SocketListener($endpoint, $loop);
            $server->on('connect', function (SocketListenerInterface $server, SocketInterface $conn) use($sim) {
                $conn->on('data', function (SocketInterface $conn, $data) use($server, $sim) {
                    $sim->expect('data', $data);
                    $conn->write('secret answer!');
                    $server->close();
                });
            });
            $server->on('error', $this->expectCallableNever());
            $server->on('close', function () use($sim) {
                $sim->expect('close');
            });
            $client = new Socket($endpoint, $loop);
            $client->on('data', function (SocketInterface $conn, $data) use($loop, $sim) {
                $sim->expect('data', $data);
                $conn->close();
                $sim->done();
            });
            $client->on('error', $this->expectCallableNever());
            $client->on('close', function () use($sim) {
                $sim->expect('close');
            });
            $client->write('secret question!');
        })->expect([['data', 'secret question!'], ['close'], ['data', 'secret answer!'], ['close']]);
    }