public function testApiCreateThread_RecreatesThreadWithForceSoft_WhenThreadDoesExistAndForceIsForceSoft()
{
$manager = $this->createThreadManager(['destroyThread']);
$manager->allocateThread($alias = 'alias', $object = new StdClass());
$name = 'name';
$flags = Runtime::CREATE_FORCE_SOFT;
$manager->expects($this->once())->method('destroyThread')->with($alias, Runtime::DESTROY_FORCE_SOFT)->will($this->returnCallback(function () {
$mock = $this->getMock(PromiseFulfilled::class, ['then'], [], '', false);
$mock->expects($this->any())->method('then')->will($this->returnCallback(function ($func) {
return new PromiseFulfilled();
}));
return $mock;
}));
$callable = $this->createCallableMock();
$callable->expects($this->once())->method('__invoke');
$manager->createThread($alias, $name, $flags)->then($callable);
}