Beispiel #1
0
 function testMicrotime()
 {
     $now = "2028-08-29 17:28:49";
     $unix = \strtotime($now);
     TimeMachine::setNow($now, 200);
     $this->assertEquals($unix + 0.2, round(microtime(true), 3));
     usleep(200 * 1000 + 200);
     $this->assertEquals($unix + 0.4, round(microtime(true), 2));
     TimeMachine::freeze();
     $now = microtime(true);
     usleep(200 * 1000);
     $this->assertEquals($now, microtime(true));
     $realNow = \microtime();
     $realNowParts = explode(" ", $realNow);
     TimeMachine::setNow(doubleval(doubleval($realNowParts[1]) + doubleval($realNowParts[0])));
     $now = microtime();
     $nowParts = explode(" ", $now);
     $this->assertEquals($realNowParts[1], $nowParts[1]);
     //we have to round the first part because double is not precise enough :-(
     $this->assertEquals(round($realNowParts[0], 4), round($nowParts[0], 4));
     TimeMachine::unfreeze();
 }