public function testApiReject_MakesPromiseImmutable()
{
$deferred = $this->createDeferred();
$test = $this->getTest();
$mock = $test->createCallableMock();
$mock->expects($test->once())->method('__invoke')->with($test->identicalTo(1));
$deferred->getPromise()->then(null, function ($value) use($deferred) {
$deferred->reject(3);
return Promise::doReject($value);
})->then($test->expectCallableNever(), $mock);
$deferred->reject(1);
$deferred->reject(2);
}