Rx\Functional\React\PromiseToObservableTest::two_observables_one_disposed_before_resolve PHP Method

two_observables_one_disposed_before_resolve() public method

    public function two_observables_one_disposed_before_resolve()
    {
        $canceled = false;
        $deferred = new Deferred(function () use(&$canceled) {
            $canceled = true;
        });
        $o1 = Promise::toObservable($deferred->promise());
        $o2 = Promise::toObservable($deferred->promise())->delay(100);
        $this->scheduler->schedule(function () use($deferred) {
            $deferred->resolve(1);
        }, 100);
        $results1 = new MockObserver($this->scheduler);
        $s1 = $o1->subscribe($results1, $this->scheduler);
        $this->scheduler->schedule(function () use($s1) {
            $s1->dispose();
        }, 50);
        $results2 = new MockObserver($this->scheduler);
        $o2->subscribe($results2, $this->scheduler);
        $this->scheduler->start();
        $this->assertMessages([], $results1->getMessages());
        $this->assertMessages([onNext(200, 1), onCompleted(200)], $results2->getMessages());
        $this->assertFalse($canceled);
    }