Kraken\_Module\Channel\ChannelTest::testChannel_SendsAndReceivesData_InPairWithoutBuffer PHP Method

testChannel_SendsAndReceivesData_InPairWithoutBuffer() public method

    public function testChannel_SendsAndReceivesData_InPairWithoutBuffer($data)
    {
        $this->simulate(function (SimulationInterface $sim) use($data) {
            $loop = $sim->getLoop();
            $sim->delayOnce('pass', 3, function () use($sim) {
                $sim->done();
            });
            $master = $this->createChannel($data['master'], $loop);
            $slaver = $this->createChannel($data['slave1'], $loop);
            $master->on('start', function () use($master, $slaver) {
                $master->send(self::ALIAS_B, self::MSG_2, Channel::MODE_STANDARD);
                $slaver->start();
            });
            $slaver->on('start', function () use($master, $loop) {
                $loop->addTimer(0.25, function () use($master) {
                    $master->send(self::ALIAS_B, self::MSG_3, Channel::MODE_STANDARD);
                });
            });
            $slaver->on('input', function ($alias, $message) use($sim) {
                $sim->expect('input', [$alias, $message->getMessage()]);
                $sim->done();
            });
            $sim->onStart(function () use($slaver, $master) {
                $master->start();
                $slaver->start();
            });
            $sim->onStop(function () use($slaver, $master) {
                $master->stop();
                $slaver->stop();
                usleep(200000.0);
            });
            $master->send(self::ALIAS_B, self::MSG_1, Channel::MODE_STANDARD);
        })->expect([['input', [self::ALIAS_A, self::MSG_3]]]);
    }