function () use ($promise) { return $promise; }, 'resolve' => $resolveCallback, 'reject' => $rejectCallback, 'notify' => $progressCallback, 'settle' => $resolveCallback, ]); } /** @test */ public function shouldRejectIfResolverThrowsException() { $exception = new \Exception('foo'); $promise = new Promise(function () use ($exception) { throw $exception; }); $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo($exception)); $promise ->then($this->expectCallableNever(), $mock); } /** @test */ public function shouldFulfillIfFullfilledWithSimplePromise() { $adapter = $this->getPromiseTestAdapter(); $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo('foo')); $adapter->promise() ->then($mock); $adapter->resolve(new SimpleFulfilledTestPromise()); } /** @test */ public function shouldRejectIfRejectedWithSimplePromise() { $adapter = $this->getPromiseTestAdapter(); $mock = $this->createCallableMock(); $mock ->expects($this->once()) ->method('__invoke') ->with($this->identicalTo('foo')); $adapter->promise() ->then($this->expectCallableNever(), $mock); $adapter->resolve(new SimpleRejectedTestPromise()); } }