/** * @dataProvider containerProvider * @param RuntimeContainer $container */ 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); }