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

partitionSingle() public method

public partitionSingle ( )
    public function partitionSingle()
    {
        $xs = $this->createHotObservable([onNext(180, 5), onNext(210, 4), onCompleted(220)]);
        $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), onCompleted(220)], $r1->getMessages());
        $this->assertMessages([onCompleted(220)], $r2->getMessages());
        $this->assertSubscriptions([subscribe(200, 220), subscribe(200, 220)], $xs->getSubscriptions());
    }