Rx\Functional\Operator\PartitionTest::partitionCompleted PHP Method

partitionCompleted() public method

public partitionCompleted ( )
    public function partitionCompleted()
    {
        $xs = $this->createHotObservable([onNext(180, 5), onNext(210, 4), onNext(240, 3), onNext(290, 2), 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), onNext(290, 2), onCompleted(360)], $r1->getMessages());
        $this->assertMessages([onNext(240, 3), onNext(350, 1), onCompleted(360)], $r2->getMessages());
        $this->assertSubscriptions([subscribe(200, 360), subscribe(200, 360)], $xs->getSubscriptions());
    }