예제 #1
0
 public function callFailure()
 {
     $deferred = new \React\Promise\Deferred();
     //$deferred->reject("Call has failed :(");
     $this->getLoop()->addTimer(0, function () use($deferred) {
         $deferred->reject("Call has failed :(");
     });
     return $deferred->promise();
 }
예제 #2
0
 public function callPublish($args)
 {
     $deferred = new \React\Promise\Deferred();
     $this->getPublisher()->publish($this->session, "com.example.publish", [$args[0]], ["key1" => "test1", "key2" => "test2"], ["acknowledge" => true])->then(function () use($deferred) {
         $deferred->resolve('ok');
     }, function ($error) use($deferred) {
         $deferred->reject("failed: {$error}");
     });
     return $deferred->promise();
 }
예제 #3
0
    $client = new \Rx\Websocket\Client($reportUrl);
    $client->subscribe(new \Rx\Observer\CallbackObserver());
};
$runIndividualTest = function ($case) {
    echo "Running " . $case . "\n";
    $casePath = "/runCase?case={$case}&agent=" . AGENT;
    $client = new \Rx\Websocket\Client("ws://127.0.0.1:9001" . $casePath, true);
    $deferred = new \React\Promise\Deferred();
    $client->subscribe(new \Rx\Observer\CallbackObserver(function (\Rx\Websocket\MessageSubject $messages) {
        $messages->subscribe(new \Rx\Observer\CallbackObserver(function ($x) use($messages) {
            //echo $x . "\n";
            $messages->onNext($x);
        }, [$messages, "onError"], [$messages, "onCompleted"]));
    }, function ($error) use($case, $deferred) {
        echo "Error on " . $case . "\n";
        $deferred->reject($error);
    }, function () use($case, $deferred) {
        echo "Finished " . $case . "\n";
        $deferred->resolve();
    }));
    return $deferred->promise();
};
$runTests = function ($testCount) use($runIndividualTest, $runReports) {
    echo "Server would like us to run " . $testCount . " tests.\n";
    $i = 0;
    $deferred = new \React\Promise\Deferred();
    $runNextCase = function () use(&$i, &$runNextCase, $testCount, $deferred, $runIndividualTest) {
        $i++;
        if ($i > $testCount) {
            $deferred->resolve();
            return;