5 include_once __DIR__
."/../../../setup.inc";
8 use React\Promise\Deferred
as Reacted
;
9 use Amp\Deferred
as Amped
;
11 class AsyncExecutorTest
extends \PHPUnit_Framework_TestCase
{
15 protected function setUp() {
16 $this->conn
= new Connection(PQ_TEST_DSN
);
17 $this->query
= new Writer("SELECT \$1::int,\$2::int", [1,2]);
20 function testReact() {
21 $exec = new AsyncExecutor($this->conn
);
28 function(Reacted
$context, $result) {
29 $context->resolve($result);
32 function(Reacted
$context, callable
$cb) {
33 return $context->promise()->then($cb);
36 $guard = new \stdClass
;
37 $exec->execute($this->query
, function($result) use($guard) {
38 $guard->result
= $result;
40 $this->conn
->getResult();
41 $this->assertTrue(!empty($guard->result
), "guard is empty");
42 $this->assertInstanceOf("pq\\Result", $guard->result
);
43 $this->assertSame([[1,2]], $guard->result
->fetchAll());
47 $exec = new AsyncExecutor($this->conn
);
54 function(Amped
$context, $result) {
55 $context->succeed($result);
58 function(Amped
$context, callable
$cb) {
59 return $context->promise()->when(function($error, $result) use ($cb) {
63 $guard = new \stdClass
;
64 $exec->execute($this->query
, function($result) use($guard) {
65 $guard->result
= $result;
67 $this->conn
->getResult();
68 $this->assertTrue(!empty($guard->result
), "guard is empty");
69 $this->assertInstanceOf("pq\\Result", $guard->result
);
70 $this->assertSame([[1,2]], $guard->result
->fetchAll());