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);
}