public function testCaseSocketServer_HandlesIncomingMessages()
{
$this->simulate(function (SimulationInterface $sim) {
$component = $this->createComponent();
$loop = $sim->getLoop();
$server = $this->createServer($component, $loop);
$client = $this->createClient($loop);
$component->on('connect', function (NetworkConnectionInterface $conn) use($sim) {
$sim->expect('connect');
});
$component->on('disconnect', function (NetworkConnectionInterface $conn) use($sim) {
$sim->expect('disconnect');
});
$component->on('message', function (NetworkConnectionInterface $conn, NetworkMessageInterface $message) use($sim) {
$sim->expect('message', [$message->read()]);
$sim->done();
});
$sim->onStart(function () use($client) {
$client->write('multipart');
$client->write('rawdata');
});
$sim->onStop(function () use($client, $server) {
$client->stop();
$server->stop();
});
unset($server);
unset($component);
unset($loop);
})->expect([['connect'], ['message', ['multipartrawdata']], ['disconnect']]);
}