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