l10n = $this->getMockBuilder(IL10N::class)->getMock(); $this->timeFactory = $this->getMockBuilder(ITimeFactory::class)->getMock(); $this->taskProcessingManager = $this->getMockBuilder(IManager::class)->getMock(); $this->check = new TaskProcessingSuccessRate( $this->l10n, $this->taskProcessingManager, $this->timeFactory, ); } public function testPass(): void { $tasks = []; for ($i = 0; $i < 100; $i++) { $task = new Task('test', ['test' => 'test'], 'settings', 'user' . $i); $task->setStartedAt(0); $task->setEndedAt(1); if ($i < 15) { $task->setStatus(Task::STATUS_FAILED); // 15% get status FAILED } else { $task->setStatus(Task::STATUS_SUCCESSFUL); } $tasks[] = $task; } $this->taskProcessingManager->method('getTasks')->willReturn($tasks); $this->assertEquals(SetupResult::SUCCESS, $this->check->run()->getSeverity()); } public function testFail(): void { $tasks = []; for ($i = 0; $i < 100; $i++) { $task = new Task('test', ['test' => 'test'], 'settings', 'user' . $i); $task->setStartedAt(0); $task->setEndedAt(1); if ($i < 30) { $task->setStatus(Task::STATUS_FAILED); // 30% get status FAILED } else { $task->setStatus(Task::STATUS_SUCCESSFUL); } $tasks[] = $task; } $this->taskProcessingManager->method('getTasks')->willReturn($tasks); $this->assertEquals(SetupResult::WARNING, $this->check->run()->getSeverity()); } }