public function testApiDoResolve_SupportsDeepNestingInPromiseChains()
{
$test = $this->getTest();
$d = new Deferred();
$d->resolve(false);
$result = Promise::doResolve(Promise::doResolve($d->getPromise()->then(function ($val) {
$d = new Deferred();
$d->resolve($val);
$identity = function ($val) {
return $val;
};
return Promise::doResolve($d->getPromise()->then($identity))->then(function ($val) {
return !$val;
});
})));
$mock = $test->createCallableMock();
$mock->expects($test->once())->method('__invoke')->with($test->identicalTo(true));
$result->then($mock);
}