aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/Command/BackgroundModeTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/Command/BackgroundModeTest.php')
-rw-r--r--tests/lib/Command/BackgroundModeTest.php60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/lib/Command/BackgroundModeTest.php b/tests/lib/Command/BackgroundModeTest.php
new file mode 100644
index 00000000000..ab036ef87ee
--- /dev/null
+++ b/tests/lib/Command/BackgroundModeTest.php
@@ -0,0 +1,60 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2016-2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2015 Christian Kampka <christian@kampka.net>
+ * SPDX-License-Identifier: MIT
+ */
+namespace Test\Command;
+
+use OC\Core\Command\Background\Mode;
+use OCP\IAppConfig;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputDefinition;
+use Symfony\Component\Console\Tester\CommandTester;
+use Test\TestCase;
+
+/**
+ * @group DB
+ */
+class BackgroundModeTest extends TestCase {
+ private IAppConfig $appConfig;
+
+ private Mode $command;
+
+ public function setUp(): void {
+ $this->appConfig = $this->createMock(IAppConfig::class);
+
+ $inputDefinition = new InputDefinition([
+ new InputArgument('command', InputArgument::REQUIRED, 'The command to execute'),
+ ]);
+
+ $this->command = new Mode($this->appConfig);
+ $this->command->setDefinition($inputDefinition);
+ }
+
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataModeCommand')]
+ public function testModeCommand(string $mode): void {
+ $this->appConfig->expects($this->once())
+ ->method('setValueString')
+ ->with('core', 'backgroundjobs_mode', $mode);
+
+ $commandTester = new CommandTester($this->command);
+ $commandTester->execute(['command' => 'background:' . $mode]);
+
+ $commandTester->assertCommandIsSuccessful();
+
+ $output = $commandTester->getDisplay();
+ $this->assertStringContainsString($mode, $output);
+ }
+
+ public static function dataModeCommand(): array {
+ return [
+ 'ajax' => ['ajax'],
+ 'cron' => ['cron'],
+ 'webcron' => ['webcron'],
+ ];
+ }
+}