예제 #1
0
function getMysqli()
{
    $_db = new mysqli(HOST, DB_USER, DB_PASS, DB);
    if ($_db->connect_errno > 0) {
        onError("Unable to connect to database.", $_db->connect_error);
    }
    return $_db;
}
예제 #2
0
파일: SumTest.php 프로젝트: ReactiveX/RxPHP
 /**
  * Adapted from RxJS
  *
  * @test
  */
 public function sum_number_throw()
 {
     $xs = $this->createHotObservable([onNext(150, 1), onError(210, new \Exception())]);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->sum();
     });
     $this->assertMessages([onError(210, new \Exception())], $results->getMessages());
 }
예제 #3
0
 /**
  * @test
  */
 public function select_calls_on_error()
 {
     $xs = $this->createHotObservable(array(onError(500, new Exception())));
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->select('RxIdentity');
     });
     $this->assertMessages(array(onError(500, new Exception())), $results->getMessages());
 }
예제 #4
0
 /**
  * @test
  */
 public function timestamp_error()
 {
     $error = new \Exception();
     $results = $this->scheduler->startWithCreate(function () use($error) {
         return Observable::error($error)->timestamp($this->scheduler);
     });
     $this->assertMessages([onError(201, $error)], $results->getMessages());
 }
예제 #5
0
 /**
  * @test
  */
 public function startWith_error()
 {
     $error = new \Exception();
     $xs = $this->createHotObservable([onNext(150, 1), onError(250, $error)]);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->startWithArray([1, 2, 3]);
     });
     $this->assertMessages([onNext(201, 1), onNext(202, 2), onNext(203, 3), onError(250, $error)], $results->getMessages());
 }
예제 #6
0
 public function testAsObservableThrow()
 {
     $error = new Exception();
     $xs = $this->createHotObservable([onNext(150, 1), onError(250, $error)]);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->asObservable();
     });
     $this->assertMessages([onError(250, $error)], $results->getMessages());
 }
예제 #7
0
 /**
  * @test
  */
 public function switchLatest_outer_throws()
 {
     $error = new \Exception();
     $xs = $this->createHotObservable([onNext(300, $this->createColdObservable([onNext(10, 101), onNext(20, 102), onNext(110, 103), onNext(120, 104), onNext(210, 105), onNext(220, 106), onCompleted(230)])), onNext(400, $this->createColdObservable([onNext(10, 201), onNext(20, 202), onNext(30, 203), onNext(40, 204), onCompleted(50)])), onError(500, $error)]);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->switchLatest();
     });
     $this->assertMessages([onNext(310, 101), onNext(320, 102), onNext(410, 201), onNext(420, 202), onNext(430, 203), onNext(440, 204), onError(500, $error)], $results->getMessages());
 }
예제 #8
0
 /**
  * @test
  */
 public function pluck_object_property_missing()
 {
     $xs = $this->createHotObservable([onNext(180, (object) ['prop' => 1]), onNext(210, (object) ['prop' => 2]), onNext(240, (object) ['prop' => 3]), onNext(290, new \stdClass()), onNext(350, (object) ['prop' => 5]), onError(400, new \Exception())]);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->pluck('prop');
     });
     $this->assertMessages([onNext(210, 2), onNext(240, 3), onError(290, new \Exception())], $results->getMessages());
     $this->assertSubscriptions([subscribe(200, 290)], $xs->getSubscriptions());
 }
예제 #9
0
 /**
  * @test
  */
 public function bufferWithCountError()
 {
     $error = new \Exception();
     $xs = $this->createHotObservable([onNext(150, 1), onNext(210, 2), onNext(220, 3), onNext(230, 4), onNext(240, 5), onError(250, $error)]);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->bufferWithCount(5);
     });
     $this->assertMessages([onError(250, $error)], $results->getMessages());
 }
예제 #10
0
파일: StartTest.php 프로젝트: voryx/Rx.PHP
 /**
  * @test
  */
 public function start_with_error()
 {
     $error = new \Exception();
     $results = $this->scheduler->startWithCreate(function () use($error) {
         return Observable::start(function () use($error) {
             throw $error;
         }, $this->scheduler);
     });
     $this->assertMessages([onError(200, $error)], $results->getMessages());
 }
예제 #11
0
 /**
  * @test
  */
 public function subscribeOn_error()
 {
     $error = new \Exception();
     $xs = $this->createHotObservable([onNext(150, 1), onError(210, $error)]);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->subscribeOn($this->scheduler);
     });
     $this->assertMessages([onError(210, $error)], $results->getMessages());
     $this->assertSubscriptions([subscribe(201, 211)], $xs->getSubscriptions());
 }
예제 #12
0
 /**
  * @test
  */
 public function calls_on_error_if_predicate_throws_an_exception()
 {
     $xs = $this->createHotObservable(array(onNext(500, 42)));
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->where(function () {
             throw new Exception();
         });
     });
     $this->assertMessages(array(onError(500, new Exception())), $results->getMessages());
 }
예제 #13
0
 /**
  * @test
  */
 public function throttle_error()
 {
     $error = new \Exception();
     $xs = $this->createHotObservable([onNext(150, 1), onNext(210, 2), onNext(250, 3), onNext(310, 4), onNext(350, 5), onError(410, $error), onNext(450, 7), onCompleted(500)]);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->throttle(200);
     });
     $this->assertMessages([onNext(210, 2), onError(410, $error)], $results->getMessages());
     $this->assertSubscriptions([subscribe(200, 410)], $xs->getSubscriptions());
 }
예제 #14
0
 /**
  * @test
  */
 public function generator_throws_error()
 {
     $error = new \Exception();
     $generator = $this->genError($error);
     $xs = new \Rx\Observable\IteratorObservable($generator);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs;
     });
     $this->assertMessages([onError(201, $error)], $results->getMessages());
 }
예제 #15
0
 public function testToArrayError()
 {
     $error = new \Exception();
     $xs = $this->createHotObservable([onNext(110, 1), onNext(220, 2), onNext(330, 3), onNext(440, 4), onNext(550, 5), onError(660, $error)]);
     /** @var MockObserver $results */
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->toArray();
     });
     $this->assertMessages([onError(660, $error)], $results->getMessages());
     $this->assertSubscriptions([subscribe(200, 660)], $xs->getSubscriptions());
 }
예제 #16
0
 /**
  * @test
  */
 public function flatMapTo_it_passes_on_error()
 {
     $xs = $this->createColdObservable(array(onNext(100, 4), onNext(200, 2), onNext(300, 3), onNext(400, 1), onCompleted(510)));
     $ys = $this->createColdObservable(array(onNext(50, 'foo'), onNext(100, 'bar'), onNext(150, 'baz'), onError(210, new Exception()), onCompleted(250)));
     $results = $this->scheduler->startWithCreate(function () use($xs, $ys) {
         return $xs->flatMapTo($ys);
     });
     $this->assertMessages(array(onNext(350, "foo"), onNext(400, "bar"), onNext(450, "baz"), onNext(450, "foo"), onNext(500, "bar"), onError(510, new Exception())), $results->getMessages());
     $this->assertSubscriptions(array(subscribe(200, 510)), $xs->getSubscriptions());
     $this->assertSubscriptions(array(subscribe(300, 510), subscribe(400, 510), subscribe(500, 510)), $ys->getSubscriptions());
 }
예제 #17
0
 /**
  * @test
  */
 public function doOnError_should_call_after_resubscription()
 {
     $xs = $this->createColdObservable([onError(10, new \Exception("Hello")), onCompleted(20)]);
     $messages = [];
     $xs->doOnError(function ($x) use(&$messages) {
         $messages[] = onError($this->scheduler->getClock(), $x);
     })->retry(2)->subscribeCallback(null, function () {
     }, null, $this->scheduler);
     $this->scheduler->start();
     $this->assertMessages([onError(10, new \Exception("Hello")), onError(20, new \Exception("Hello"))], $messages);
 }
예제 #18
0
 public function testSkipUntilNeverError()
 {
     $error = new \Exception();
     $l = Observable::never();
     $r = $this->createHotObservable([onNext(150, 1), onError(225, $error)]);
     /** @var MockObserver $results */
     $results = $this->scheduler->startWithCreate(function () use($l, $r) {
         return $l->skipUntil($r);
     });
     $this->assertMessages([onError(225, $error)], $results->getMessages());
 }
예제 #19
0
 /**
  * @test
  */
 public function it_passes_on_error_from_sources()
 {
     $xs = $this->createColdObservable(array(onNext(100, 4), onNext(200, 2), onNext(300, 3), onNext(400, 1), onCompleted(500)));
     $ys = $this->createColdObservable(array(onNext(50, $xs), onError(200, new Exception()), onCompleted(250)));
     $results = $this->scheduler->startWithCreate(function () use($ys) {
         return Observable::mergeAll($ys);
     });
     $this->assertMessages(array(onNext(350, 4), onError(400, new Exception())), $results->getMessages());
     $this->assertSubscriptions(array(subscribe(250, 400)), $xs->getSubscriptions());
     $this->assertSubscriptions(array(subscribe(200, 400)), $ys->getSubscriptions());
 }
예제 #20
0
 /**
  * @test
  */
 public function defer_throw()
 {
     $invoked = 0;
     $results = $this->scheduler->startWithCreate(function () use(&$invoked) {
         return BaseObservable::defer(function () use(&$invoked) {
             $invoked++;
             throw new \Exception('error');
         });
     });
     $this->assertMessages([onError(200, new \Exception('error'))], $results->getMessages());
     $this->assertEquals(1, $invoked);
 }
예제 #21
0
파일: logger.php 프로젝트: gogolB/pinkies2
function l_log($pinkieID, $user, $msg, $lvl)
{
    $_db = getMysqli();
    $_sql = "INSERT INTO Log (PinkieID, User, Level, Message) VALUES (?,?,?,?)";
    $_stmt = $_db->prepare((string) $_sql);
    $_stmt->bind_param('isss', $pinkieID, $user, $lvl, $msg);
    $_stmt->execute();
    if ($_stmt->errno) {
        onError("Error in Logger.php::log()", $_stmt->error);
    }
    $_stmt->close();
    // Close up the database connection.
    $_db->close();
}
예제 #22
0
파일: CreateTest.php 프로젝트: voryx/Rx.PHP
 /**
  * @test
  */
 public function create_error()
 {
     $error = new \Exception();
     $results = $this->scheduler->startWithCreate(function () use($error) {
         return Observable::create(function (ObserverInterface $o) use($error) {
             $o->onError($error);
             $o->onNext(100);
             $o->onError(new \Exception());
             $o->onCompleted();
             return new EmptyDisposable();
         });
     });
     $this->assertMessages([onError(200, $error)], $results->getMessages());
 }
예제 #23
0
 /**
  * @test
  */
 public function doOnError_should_see_errors()
 {
     $ex = new RuntimeException('boom!');
     $xs = $this->createHotObservable([onNext(150, 1), onNext(210, 2), onError(220, $ex), onCompleted(250)]);
     $called = 0;
     $error = null;
     $this->scheduler->startWithCreate(function () use($xs, &$called, &$error) {
         return $xs->doOnError(function ($err) use(&$called, &$error) {
             $called++;
             $error = $err;
         });
     });
     $this->assertEquals(1, $called);
     $this->assertSame($ex, $error);
 }
예제 #24
0
 /**
  * @test
  */
 public function defer_throw()
 {
     $invoked = 0;
     $results = $this->scheduler->startWithCreate(function () use(&$invoked) {
         return Observable::defer(function () use(&$invoked) {
             $invoked++;
             throw new \Exception('error');
         });
     });
     // Note: these tests differ from the RxJS tests that they were based on because RxJS was
     // explicitly using the immediate scheduler on subscribe internally. When we pass the
     // proper scheduler in, the subscription gets scheduled which requires an extra tick.
     $this->assertMessages([onError(201, new \Exception('error'))], $results->getMessages());
     $this->assertEquals(1, $invoked);
 }
예제 #25
0
 /**
  * @test
  */
 public function repeatWhen_next_error()
 {
     $error = new Exception("test");
     $xs = $this->createColdObservable([onNext(10, 1), onNext(20, 2), onError(30, $error), onCompleted(40)]);
     $results = $this->scheduler->startWithCreate(function () use($xs, $error) {
         return $xs->repeatWhen(function (Observable $attempts) use($error) {
             return $attempts->scan(function ($count) use($error) {
                 if (++$count === 2) {
                     throw $error;
                 }
                 return $count;
             }, 0);
         });
     });
     $this->assertMessages([onNext(210, 1), onNext(220, 2), onError(230, $error)], $results->getMessages());
     $this->assertSubscriptions([subscribe(200, 230)], $xs->getSubscriptions());
 }
예제 #26
0
 public function testRetryObservableRetryCountDispose()
 {
     $error = new \Exception();
     $xs = $this->createColdObservable([onNext(5, 1), onNext(10, 2), onNext(15, 3), onError(20, $error)]);
     $results = $this->scheduler->startWithDispose(function () use($xs) {
         return $xs->retry(3);
     }, 231);
     $this->assertMessages([onNext(205, 1), onNext(210, 2), onNext(215, 3), onNext(225, 1), onNext(230, 2)], $results->getMessages());
     $this->assertSubscriptions([subscribe(200, 220), subscribe(220, 231)], $xs->getSubscriptions());
 }
예제 #27
0
 /**
  * @test
  */
 public function distinct_until_changed_comparer_throws()
 {
     $xs = $this->createHotObservable([onNext(150, 1), onNext(210, 2), onNext(220, 3), onCompleted(250)]);
     $results = $this->scheduler->startWithCreate(function () use($xs) {
         return $xs->distinctUntilChanged(null, function ($x, $y) {
             throw new \Exception('ex');
         });
     });
     $this->assertMessages([onNext(210, 2), onError(220, new \Exception('ex'))], $results->getMessages());
 }
예제 #28
0
 /**
  * @test
  */
 public function takeUntil_before_first_produced_remain_silent_and_proper_disposed()
 {
     $sourceNotDisposed = false;
     $l = $this->createHotObservable([onNext(150, 1), onError(215, new \Exception()), onCompleted(240)])->doOnNext(function () use(&$sourceNotDisposed) {
         $sourceNotDisposed = true;
     });
     $r = $this->createHotObservable([onNext(150, 1), onNext(210, 2), onCompleted(220)]);
     $result = $this->scheduler->startWithCreate(function () use($l, $r) {
         return $l->takeUntil($r);
     });
     $this->assertMessages([onCompleted(210)], $result->getMessages());
     $this->assertFalse($sourceNotDisposed);
 }
예제 #29
0
 /**
  * @test
  */
 public function partitionError()
 {
     $error = new \Exception('error1');
     $xs = $this->createHotObservable([onNext(180, 5), onNext(210, 4), onNext(240, 3), onError(290, $error), onNext(350, 1), onCompleted(360)]);
     $observables = null;
     $s1 = null;
     $s2 = null;
     $r1 = $this->scheduler->createObserver();
     $r2 = $this->scheduler->createObserver();
     $this->scheduler->scheduleAbsolute(TestScheduler::CREATED, function () use(&$observables, $xs) {
         $observables = $xs->partition([$this, 'isEven']);
     });
     $this->scheduler->scheduleAbsolute(TestScheduler::SUBSCRIBED, function () use(&$observables, &$s1, &$s2, $r1, $r2) {
         $s1 = $observables[0]->subscribe($r1);
         $s2 = $observables[1]->subscribe($r2);
     });
     $this->scheduler->scheduleAbsolute(TestScheduler::DISPOSED, function () use(&$s1, &$s2) {
         $s1->dispose();
         $s2->dispose();
     });
     $this->scheduler->start();
     $this->assertMessages([onNext(210, 4), onError(290, $error)], $r1->getMessages());
     $this->assertMessages([onNext(240, 3), onError(290, $error)], $r2->getMessages());
     $this->assertSubscriptions([subscribe(200, 290), subscribe(200, 290)], $xs->getSubscriptions());
 }
예제 #30
0
 /**
  * @test
  */
 public function catchError_ThrowFromNestedCatch()
 {
     $error = new \Exception();
     $error2 = new \InvalidArgumentException();
     $firstHandlerCalled = false;
     $secondHandlerCalled = false;
     $o1 = $this->createHotObservable([onNext(150, 1), onNext(210, 2), onError(215, $error)]);
     $o2 = $this->createHotObservable([onNext(220, 3), onError(225, $error2)]);
     $o3 = $this->createHotObservable([onNext(230, 4), onCompleted(235)]);
     $results = $this->scheduler->startWithCreate(function () use($o1, $o2, $o3, &$firstHandlerCalled, &$secondHandlerCalled, $error, $error2) {
         return $o1->catchError(function ($e) use($o2, &$firstHandlerCalled, $error) {
             $firstHandlerCalled = true;
             $this->assertSame($e, $error);
             return $o2;
         })->catchError(function ($e) use($o3, &$secondHandlerCalled, $error2) {
             $secondHandlerCalled = true;
             $this->assertSame($e, $error2);
             return $o3;
         });
     });
     $this->assertMessages([onNext(210, 2), onNext(220, 3), onNext(230, 4), onCompleted(235)], $results->getMessages());
     $this->assertTrue($firstHandlerCalled);
     $this->assertTrue($secondHandlerCalled);
 }