From 17fe94cf014236568a36e02251caf3e640e7dcff Mon Sep 17 00:00:00 2001 From: Michael Dowling Date: Sun, 5 Oct 2014 18:59:19 -0700 Subject: [PATCH] Not relying on validated deferred --- src/Message/FutureResponse.php | 10 +++------- tests/Message/FutureResponseTest.php | 19 ++++--------------- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/src/Message/FutureResponse.php b/src/Message/FutureResponse.php index 5e03acd8..4aaa923b 100644 --- a/src/Message/FutureResponse.php +++ b/src/Message/FutureResponse.php @@ -3,8 +3,8 @@ namespace GuzzleHttp\Message; use GuzzleHttp\Ring\Future\MagicFutureTrait; use GuzzleHttp\Ring\Future\FutureInterface; -use GuzzleHttp\Ring\ValidatedDeferredInstance; use GuzzleHttp\Stream\StreamInterface; +use React\Promise\Deferred; /** * Represents a response that has not been fulfilled. @@ -59,15 +59,11 @@ class FutureResponse implements ResponseInterface, FutureInterface callable $deref, callable $cancel = null ) { - $deferred = new ValidatedDeferredInstance('GuzzleHttp\Message\ResponseInterface'); + $deferred = new Deferred(); return new FutureResponse( $deferred->promise(), function () use ($deferred, $deref) { - try { - $deferred->resolve(call_user_func($deref)); - } catch (\Exception $e) { - $deferred->reject($e); - } + $deferred->resolve($deref()); }, $cancel ); diff --git a/tests/Message/FutureResponseTest.php b/tests/Message/FutureResponseTest.php index 1d35b4ef..23795bef 100644 --- a/tests/Message/FutureResponseTest.php +++ b/tests/Message/FutureResponseTest.php @@ -18,16 +18,6 @@ class FutureResponseTest extends \PHPUnit_Framework_TestCase $f->foo; } - /** - * @expectedException \InvalidArgumentException - * @expectedExceptionMessage Expected the resolved value to be an instance of "GuzzleHttp\Message\ResponseInterface", but got NULL - */ - public function testEnsuresDerefReturnsTransaction() - { - $f = FutureResponse::createFuture(function () {}); - $f->getStatusCode(); - } - public function testDoesTheSameAsResponseWhenDereferenced() { $str = Stream::factory('foo'); @@ -138,16 +128,15 @@ class FutureResponseTest extends \PHPUnit_Framework_TestCase public function testExceptionInToStringTriggersError() { - $future = FutureResponse::createFuture(function () {}); + $future = FutureResponse::createFuture(function () { + throw new \Exception('foo'); + }); $err = ''; set_error_handler(function () use (&$err) { $err = func_get_args()[1]; }); echo $future; restore_error_handler(); - $this->assertContains( - 'Expected the resolved value to be an instance of "GuzzleHttp\Message\ResponseInterface", but got NULL', - $err - ); + $this->assertContains('foo', $err); } }