diff options
Diffstat (limited to 'tests/lib/BackgroundJob/TestParallelAwareJob.php')
-rw-r--r-- | tests/lib/BackgroundJob/TestParallelAwareJob.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/lib/BackgroundJob/TestParallelAwareJob.php b/tests/lib/BackgroundJob/TestParallelAwareJob.php new file mode 100644 index 00000000000..6efb1a1fd8d --- /dev/null +++ b/tests/lib/BackgroundJob/TestParallelAwareJob.php @@ -0,0 +1,39 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +namespace Test\BackgroundJob; + +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\BackgroundJob\Job; +use OCP\Server; + +class TestParallelAwareJob extends Job { + /** + * @var callable $callback + */ + private $callback; + + /** + * @param JobTest $testCase + * @param callable $callback + */ + public function __construct( + ?ITimeFactory $time = null, + private $testCase = null, + $callback = null, + ) { + parent::__construct($time ?? Server::get(ITimeFactory::class)); + $this->setAllowParallelRuns(false); + $this->callback = $callback; + } + + public function run($argument) { + $this->testCase->markRun(); + $callback = $this->callback; + $callback($argument); + } +} |