Пример #1
0
 function testLoopRun()
 {
     $loop = new Loop();
     $loop->add(new CallbackWatcher(function () {
     }));
     $loop->run(2);
     $this->assertSame($loop->getTicks(), 2);
     $c = 0;
     $loop->filter(function () {
         return false;
     });
     $loop->setMinDuration(100);
     $loop->add(new CallbackWatcher(function ($w) use(&$c) {
         usleep(101);
         $w->getLoop()->stop();
         $c++;
     }));
     $this->assertSame(0, $c);
     $loop->run();
     $this->assertSame(1, $c);
     $a = 0;
     $b = 0;
     $loop->reset();
     $loop->setMinDuration(100);
     $loop->add(new CallbackWatcher(function ($w) use(&$a) {
         if ($w->getLoop()->getTicks() === 3) {
             $w->stop();
         } else {
             $a++;
         }
     }));
     $loop->add(new CallbackWatcher(function ($w) use(&$b) {
         if ($w->getLoop()->getTicks() === 5) {
             $w->finished();
         } else {
             $b++;
         }
     }));
     $loop->run();
     $this->assertSame(3, $a);
     $this->assertSame(5, $b);
 }