run = false; $this->timeFactory = \OCP\Server::get(ITimeFactory::class); $this->logger = $this->createMock(LoggerInterface::class); \OC::$server->registerService(LoggerInterface::class, fn ($c) => $this->logger); } public function testRemoveAfterException(): void { $jobList = new DummyJobList(); $e = new \Exception(); $job = new TestJob($this->timeFactory, $this, function () use ($e) { throw $e; }); $jobList->add($job); $this->logger->expects($this->once()) ->method('error'); $this->assertCount(1, $jobList->getAll()); $job->start($jobList); $this->assertTrue($this->run); $this->assertCount(1, $jobList->getAll()); } public function testRemoveAfterError(): void { $jobList = new DummyJobList(); $job = new TestJob($this->timeFactory, $this, function () { $test = null; $test->someMethod(); }); $jobList->add($job); $this->logger->expects($this->once()) ->method('error'); $this->assertCount(1, $jobList->getAll()); $job->start($jobList); $this->assertTrue($this->run); $this->assertCount(1, $jobList->getAll()); } public function markRun() { $this->run = true; } }