Rx\Scheduler\EventLoopSchedulerTest::eventloop_schedule_recursive PHP Method

eventloop_schedule_recursive() public method

    public function eventloop_schedule_recursive()
    {
        $loop = Factory::create();
        $scheduler = new EventLoopScheduler($loop);
        $actionCalled = false;
        $count = 0;
        $action = function ($reschedule) use(&$actionCalled, &$count, $loop) {
            $actionCalled = true;
            $count++;
            if ($count < 5) {
                $reschedule();
                return;
            }
            $loop->stop();
        };
        $disposable = $scheduler->scheduleRecursive($action);
        $this->assertInstanceOf('Rx\\DisposableInterface', $disposable);
        $this->assertFalse($actionCalled);
        $this->assertEquals(0, $count);
        $loop->run();
        $this->assertEquals(5, $count);
        $this->assertTrue($actionCalled);
    }