Kraken\_Module\Channel\ChannelModelTest::testChannelModel_EmitsRecvAndSendEvents_InPair PHP Method

testChannelModel_EmitsRecvAndSendEvents_InPair() public method

    public function testChannelModel_EmitsRecvAndSendEvents_InPair($data)
    {
        $this->simulate(function (SimulationInterface $sim) use($data) {
            $loop = $sim->getLoop();
            $sim->delayOnce('pass', 2, function () use($sim) {
                $sim->done();
            });
            $master = $this->createModel($data['master'], $loop);
            $slaver = $this->createModel($data['slave1'], $loop);
            $master->on('recv', function ($alias, $message) use($sim, $master, $slaver) {
                $sim->expect('recv', [$alias, $message]);
                $sim->emit('pass');
            });
            $slaver->on('send', function ($alias, $message) use($sim) {
                $sim->expect('send', [$alias, $message]);
                $sim->emit('pass');
            });
            $sim->onStart(function () use($slaver, $master, $slaver) {
                $master->start();
                $slaver->start();
            });
            $sim->onStop(function () use($slaver, $master) {
                $master->stop();
                $slaver->stop();
            });
            $slaver->unicast(self::ALIAS_A, self::MSG_1, Channel::MODE_BUFFER);
        })->expect([['send', [self::ALIAS_A, [self::MSG_1]]], ['recv', [self::ALIAS_B, [self::MSG_1]]]]);
    }