From 85b9552617a1989a56d1252e683b632cc002bf4c Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 30 May 2024 15:07:39 +0200 Subject: [PATCH] test: update DummyJobList Signed-off-by: Robin Appelman --- tests/lib/BackgroundJob/DummyJobList.php | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/tests/lib/BackgroundJob/DummyJobList.php b/tests/lib/BackgroundJob/DummyJobList.php index fc80786d28b68..7b7fce7e9e8aa 100644 --- a/tests/lib/BackgroundJob/DummyJobList.php +++ b/tests/lib/BackgroundJob/DummyJobList.php @@ -26,6 +26,7 @@ class DummyJobList extends \OC\BackgroundJob\JobList { private array $reserved = []; private int $last = 0; + private int $lastId = 0; public function __construct() { } @@ -40,6 +41,8 @@ public function add($job, $argument = null, ?int $firstCheck = null): void { $job = \OCP\Server::get($job); } $job->setArgument($argument); + $job->setId($this->lastId); + $this->lastId++; if (!$this->has($job, null)) { $this->jobs[] = $job; } @@ -54,9 +57,20 @@ public function scheduleAfter(string $job, int $runAfter, $argument = null): voi * @param mixed $argument */ public function remove($job, $argument = null): void { - $index = array_search($job, $this->jobs); - if ($index !== false) { - unset($this->jobs[$index]); + foreach ($this->jobs as $index => $listJob) { + if (get_class($job) === get_class($listJob) && $job->getArgument() == $listJob->getArgument()) { + unset($this->jobs[$index]); + return; + } + } + } + + public function removeById(int $id): void { + foreach ($this->jobs as $index => $listJob) { + if ($listJob->getId() === $id) { + unset($this->jobs[$index]); + return; + } } } @@ -126,7 +140,7 @@ public function setLastJob(IJob $job): void { } } - public function getById(int $id): IJob { + public function getById(int $id): ?IJob { foreach ($this->jobs as $job) { if ($job->getId() === $id) { return $job;