setInterval(10); } public function run($argument) { $this->ran = true; } } class TimedJobTest extends \Test\TestCase { private DummyJobList $jobList; private ITimeFactory $time; protected function setUp(): void { parent::setUp(); $this->jobList = new DummyJobList(); $this->time = \OCP\Server::get(ITimeFactory::class); } public function testShouldRunAfterIntervalNew(): void { $job = new TestTimedJobNew($this->time); $job->setId(42); $this->jobList->add($job); $job->setLastRun(time() - 12); $job->start($this->jobList); $this->assertTrue($job->ran); } public function testShouldNotRunWithinIntervalNew(): void { $job = new TestTimedJobNew($this->time); $job->setId(42); $this->jobList->add($job); $job->setLastRun(time() - 5); $job->start($this->jobList); $this->assertFalse($job->ran); } public function testShouldNotTwiceNew(): void { $job = new TestTimedJobNew($this->time); $job->setId(42); $this->jobList->add($job); $job->setLastRun(time() - 15); $job->start($this->jobList); $this->assertTrue($job->ran); $job->ran = false; $job->start($this->jobList); $this->assertFalse($job->ran); } }