Kraken\_Module\Runtime\RuntimeModelTest::testCaseFailAndSucceed_BehavesAsIntended PHP Method

testCaseFailAndSucceed_BehavesAsIntended() public method

    public function testCaseFailAndSucceed_BehavesAsIntended()
    {
        $core = $this->createCore();
        $emitter = $this->createEmitter();
        $loop = $this->createLoop();
        $model = $this->createModel($core, $emitter);
        $queue = [];
        $super = $this->createSupervisor($model);
        $super->setSolver(Exception::class, new ModelContinue(['model' => $model, 'queue' => &$queue]));
        $emitter->on('start', function () use($loop, &$queue) {
            $loop->onTick(function () use(&$queue) {
                $queue[] = 'A';
                throw new Exception('Some random uncatched exception');
            });
            $loop->onTick(function () use($loop, &$queue) {
                $queue[] = 'B';
                $loop->stop();
            });
        });
        $model->setSupervisor($super);
        $model->setLoop($loop);
        $model->create();
        $this->assertSame('ACB', implode('', $queue));
        unset($super);
        unset($model);
        unset($loop);
        unset($emitter);
        unset($core);
    }