/** * @test */ public function never_basic() { $xs = BaseObservable::never(); $results = new MockObserver($this->scheduler); $xs->subscribe($results); $this->assertMessages([], $results->getMessages()); }
public function testAsObservableNever() { $results = $this->scheduler->startWithCreate(function () { return BaseObservable::never()->asObservable(); }); $this->assertMessages([], $results->getMessages()); }
/** * @test */ public function distinct_until_changed_never() { $results = $this->scheduler->startWithCreate(function () { $o = new EmptyObservable(); return BaseObservable::never()->distinctUntilChanged(); }); $this->assertMessages([], $results->getMessages()); }
/** * @test */ public function it_calls_on_complete_when_the_array_is_empte() { $xs = BaseObservable::fromArray(array(), $this->scheduler); $results = $this->scheduler->startWithCreate(function () use($xs) { return $xs; }); $this->assertCount(1, $results->getMessages()); $this->assertMessages(array(onCompleted(201)), $results->getMessages()); }
/** * @test */ public function it_passes_on_completed_from_sources() { $ys = $this->createHotObservable(array(onCompleted(250))); $results = $this->scheduler->startWithCreate(function () use($ys) { return BaseObservable::mergeAll($ys); }); $this->assertMessages(array(onCompleted(250)), $results->getMessages()); $this->assertSubscriptions(array(subscribe(200, 250)), $ys->getSubscriptions()); }
public function testScanNoSeedNever() { $results = $this->scheduler->startWithCreate(function () { return BaseObservable::never()->scan(function ($acc, $x) { return $acc + $x; }); }); $this->assertMessages([], $results->getMessages()); }
public function testSkipUntilNeverNever() { $l = BaseObservable::never(); $r = BaseObservable::never(); $results = $this->scheduler->startWithCreate(function () use($l, $r) { return $l->skipUntil($r); }); $this->assertMessages([], $results->getMessages()); }
/** * Returns an observable sequence that invokes the specified factory function whenever a new observer subscribes. * * @param callable $factory * @return \Rx\Observable\AnonymousObservable */ public static function toObservable($factory) { if (!is_callable($factory)) { throw new InvalidArgumentException('Factory should be a callable.'); } $observableFactory = function () use($factory) { return Promise::toObservable($factory()); }; return BaseObservable::defer($observableFactory); }
/** * @test * */ public function promise_success() { $source = BaseObservable::just(42); $promise = Promise::fromObservable($source); $promise->then(function ($value) { $this->assertEquals(42, $value); }, function () { $this->assertTrue(false); }); }
/** * @param \Rx\ObservableInterface $observable * @param \Rx\ObserverInterface $observer * @param \Rx\SchedulerInterface $scheduler * @return \Rx\DisposableInterface */ public function __invoke(ObservableInterface $observable, ObserverInterface $observer, SchedulerInterface $scheduler = null) { $factory = $this->factory; try { $result = $factory(); return $result->subscribe($observer); } catch (\Exception $e) { return BaseObservable::error($e)->subscribe($observer); } }
/** * Converts a Promise to an Observable sequence * * @param \React\Promise\PromiseInterface $promise * @return \Rx\Observable\AnonymousObservable */ public static function toObservable(PromiseInterface $promise) { return BaseObservable::defer(function () use($promise) { $subject = new AsyncSubject(); $promise->then(function ($value) use($subject) { $subject->onNext($value); $subject->onCompleted(); }, [$subject, "onError"]); return $subject; }); }
/** * @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); }
public function testConcatNeverReturn() { $e1 = $this->createHotObservable([onNext(150, 1), onNext(210, 2), onCompleted(230)]); $e2 = BaseObservable::never(); $results = $this->scheduler->startWithCreate(function () use($e1, $e2) { return $e2->concat($e1); }); $this->assertMessages([], $results->getMessages()); }
/** * @test */ public function it_replays_with_no_scheduler() { $rs = new ReplaySubject(); $o = BaseObservable::fromArray(range(1, 5)); $o->subscribe($rs); $result = []; $completed = false; $rs->subscribeCallback(function ($x) use(&$result) { $result[] = $x; }, function ($e) { $this->fail("Should not have failed"); }, function () use(&$result, &$completed) { $completed = true; $this->assertEquals($result, range(1, 5)); }); $this->assertTrue($completed); }
<?php require_once __DIR__ . '/../bootstrap.php'; $source = \Rx\Observable\BaseObservable::defer(function () { return \Rx\Observable\BaseObservable::just(42); }); $subscription = $source->subscribe($stdoutObserver); //Next value: 42 //Complete!
<?php require_once __DIR__ . '/../bootstrap.php'; $source1 = \Rx\Observable\BaseObservable::just(42); $source2 = \Rx\Observable\BaseObservable::just(56); $source = (new \Rx\Observable\EmptyObservable())->concat($source1)->concat($source2); $subscription = $source->subscribe($stdoutObserver); //Next value: 42 //Next value: 56 //Complete!
public function testCountAfterRange() { $xs = BaseObservable::fromArray(range(1, 10)); $results = $this->scheduler->startWithCreate(function () use($xs) { return $xs->count(); }); $this->assertMessages([onNext(211, 10), onCompleted(211)], $results->getMessages()); }
<?php require_once __DIR__ . '/../bootstrap.php'; $source = \Rx\Observable\BaseObservable::just(42); $subscription = $source->subscribe($stdoutObserver); //Next value: 42 //Complete!