From a44cc1d2e3c0f147e91a5c052ac7fd879e34e706 Mon Sep 17 00:00:00 2001 From: Eole Date: Thu, 21 Jan 2016 10:29:26 +0100 Subject: Init Server Composer Components --- .../promises/tests/RejectedPromiseTest.php | 143 +++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 server/vendor/guzzlehttp/promises/tests/RejectedPromiseTest.php (limited to 'server/vendor/guzzlehttp/promises/tests/RejectedPromiseTest.php') diff --git a/server/vendor/guzzlehttp/promises/tests/RejectedPromiseTest.php b/server/vendor/guzzlehttp/promises/tests/RejectedPromiseTest.php new file mode 100644 index 0000000..60f926e --- /dev/null +++ b/server/vendor/guzzlehttp/promises/tests/RejectedPromiseTest.php @@ -0,0 +1,143 @@ +assertEquals('rejected', $p->getState()); + try { + $p->wait(true); + $this->fail(); + } catch (\Exception $e) { + $this->assertEquals('rejected', $p->getState()); + $this->assertContains('foo', $e->getMessage()); + } + } + + public function testCannotCancel() + { + $p = new RejectedPromise('foo'); + $p->cancel(); + $this->assertEquals('rejected', $p->getState()); + } + + /** + * @expectedException \LogicException + * @exepctedExceptionMessage Cannot resolve a rejected promise + */ + public function testCannotResolve() + { + $p = new RejectedPromise('foo'); + $p->resolve('bar'); + } + + /** + * @expectedException \LogicException + * @exepctedExceptionMessage Cannot reject a rejected promise + */ + public function testCannotReject() + { + $p = new RejectedPromise('foo'); + $p->reject('bar'); + } + + public function testCanRejectWithSameValue() + { + $p = new RejectedPromise('foo'); + $p->reject('foo'); + } + + public function testThrowsSpecificException() + { + $e = new \Exception(); + $p = new RejectedPromise($e); + try { + $p->wait(true); + $this->fail(); + } catch (\Exception $e2) { + $this->assertSame($e, $e2); + } + } + + /** + * @expectedException \InvalidArgumentException + */ + public function testCannotResolveWithPromise() + { + new RejectedPromise(new Promise()); + } + + public function testReturnsSelfWhenNoOnReject() + { + $p = new RejectedPromise('a'); + $this->assertSame($p, $p->then()); + } + + public function testInvokesOnRejectedAsynchronously() + { + $p = new RejectedPromise('a'); + $r = null; + $f = function ($reason) use (&$r) { $r = $reason; }; + $p->then(null, $f); + $this->assertNull($r); + \GuzzleHttp\Promise\queue()->run(); + $this->assertEquals('a', $r); + } + + public function testReturnsNewRejectedWhenOnRejectedFails() + { + $p = new RejectedPromise('a'); + $f = function () { throw new \Exception('b'); }; + $p2 = $p->then(null, $f); + $this->assertNotSame($p, $p2); + try { + $p2->wait(); + $this->fail(); + } catch (\Exception $e) { + $this->assertEquals('b', $e->getMessage()); + } + } + + public function testWaitingIsNoOp() + { + $p = new RejectedPromise('a'); + $p->wait(false); + } + + public function testOtherwiseIsSugarForRejections() + { + $p = new RejectedPromise('foo'); + $p->otherwise(function ($v) use (&$c) { $c = $v; }); + \GuzzleHttp\Promise\queue()->run(); + $this->assertSame('foo', $c); + } + + public function testCanResolveThenWithSuccess() + { + $actual = null; + $p = new RejectedPromise('foo'); + $p->otherwise(function ($v) { + return $v . ' bar'; + })->then(function ($v) use (&$actual) { + $actual = $v; + }); + \GuzzleHttp\Promise\queue()->run(); + $this->assertEquals('foo bar', $actual); + } + + public function testDoesNotTryToRejectTwiceDuringTrampoline() + { + $fp = new RejectedPromise('a'); + $t1 = $fp->then(null, function ($v) { return $v . ' b'; }); + $t1->resolve('why!'); + $this->assertEquals('why!', $t1->wait()); + } +} -- cgit v1.2.3