123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- namespace React\Promise;
- class CancellationQueueTest extends TestCase
- {
- /** @test */
- public function acceptsSimpleCancellableThenable()
- {
- $p = new SimpleTestCancellableThenable();
- $cancellationQueue = new CancellationQueue();
- $cancellationQueue->enqueue($p);
- $cancellationQueue();
- $this->assertTrue($p->cancelCalled);
- }
- /** @test */
- public function ignoresSimpleCancellable()
- {
- $p = new SimpleTestCancellable();
- $cancellationQueue = new CancellationQueue();
- $cancellationQueue->enqueue($p);
- $cancellationQueue();
- $this->assertFalse($p->cancelCalled);
- }
- /** @test */
- public function callsCancelOnPromisesEnqueuedBeforeStart()
- {
- $d1 = $this->getCancellableDeferred();
- $d2 = $this->getCancellableDeferred();
- $cancellationQueue = new CancellationQueue();
- $cancellationQueue->enqueue($d1->promise());
- $cancellationQueue->enqueue($d2->promise());
- $cancellationQueue();
- }
- /** @test */
- public function callsCancelOnPromisesEnqueuedAfterStart()
- {
- $d1 = $this->getCancellableDeferred();
- $d2 = $this->getCancellableDeferred();
- $cancellationQueue = new CancellationQueue();
- $cancellationQueue();
- $cancellationQueue->enqueue($d2->promise());
- $cancellationQueue->enqueue($d1->promise());
- }
- /** @test */
- public function doesNotCallCancelTwiceWhenStartedTwice()
- {
- $d = $this->getCancellableDeferred();
- $cancellationQueue = new CancellationQueue();
- $cancellationQueue->enqueue($d->promise());
- $cancellationQueue();
- $cancellationQueue();
- }
- /** @test */
- public function rethrowsExceptionsThrownFromCancel()
- {
- $this->setExpectedException('\Exception', 'test');
- $mock = $this
- ->getMockBuilder('React\Promise\CancellablePromiseInterface')
- ->getMock();
- $mock
- ->expects($this->once())
- ->method('cancel')
- ->will($this->throwException(new \Exception('test')));
- $cancellationQueue = new CancellationQueue();
- $cancellationQueue->enqueue($mock);
- $cancellationQueue();
- }
- private function getCancellableDeferred()
- {
- $mock = $this->createCallableMock();
- $mock
- ->expects($this->once())
- ->method('__invoke');
- return new Deferred($mock);
- }
- }
|