Kraken\_Module\Runtime\RuntimeContainerTest::testCaseFailAndSucceed_BehavesAsIntended PHP Метод

testCaseFailAndSucceed_BehavesAsIntended() публичный Метод

public testCaseFailAndSucceed_BehavesAsIntended ( RuntimeContainer $container )
$container Kraken\Runtime\RuntimeContainer
    public function testCaseFailAndSucceed_BehavesAsIntended($container)
    {
        $core = $this->createCore();
        $loop = $this->createLoop();
        $model = $container->getModel();
        $model->setCore($core);
        $model->setLoop($loop);
        $queue = [];
        $super = $this->createSupervisor();
        $super->setSolver(Exception::class, new ModelContinue(['model' => $model, 'queue' => &$queue]));
        $container->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($core);
    }