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