public function repeatWhen_Observable_next_complete()
{
$xs = $this->createColdObservable([onNext(10, 1), onNext(20, 2), onCompleted(30)]);
$results = $this->scheduler->startWithCreate(function () use($xs) {
return $xs->repeatWhen(function (Observable $attempts) {
return $attempts->scan(function ($count) {
return $count + 1;
}, 0)->takeWhile(function ($count) {
return $count < 2;
});
});
});
$this->assertMessages([onNext(210, 1), onNext(220, 2), onNext(240, 1), onNext(250, 2), onCompleted(260)], $results->getMessages());
$this->assertSubscriptions([subscribe(200, 230), subscribe(230, 260)], $xs->getSubscriptions());
}