Example #1
0
 public function testThen()
 {
     $results = array();
     $doneCallback = function ($result) use(&$results) {
         $results[] = $result;
     };
     $reasons = array();
     $failCallback = function ($reason) use(&$reasons) {
         $reasons[] = $reason;
     };
     $updates = array();
     $progressCallback = function ($update) use(&$updates) {
         $updates[] = $update;
     };
     $promise = new Promise();
     $promise->then($doneCallback);
     $promise->then($doneCallback, $failCallback);
     $promise->then($doneCallback, $failCallback, $progressCallback);
     $promise->resolve('foo');
     $promise->reject('bar');
     $promise->notify('foobar');
     $this->assertCount(3, $results);
     $this->assertSame(array('foo', 'foo', 'foo'), $results);
     $this->assertCount(2, $reasons);
     $this->assertSame(array('bar', 'bar'), $reasons);
     $this->assertCount(1, $updates);
     $this->assertSame(array('foobar'), $updates);
 }