aboutsummaryrefslogtreecommitdiffstats
path: root/apps/updatenotification/tests/Controller/AdminControllerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/updatenotification/tests/Controller/AdminControllerTest.php')
-rw-r--r--apps/updatenotification/tests/Controller/AdminControllerTest.php84
1 files changed, 84 insertions, 0 deletions
diff --git a/apps/updatenotification/tests/Controller/AdminControllerTest.php b/apps/updatenotification/tests/Controller/AdminControllerTest.php
new file mode 100644
index 00000000000..2263495fc14
--- /dev/null
+++ b/apps/updatenotification/tests/Controller/AdminControllerTest.php
@@ -0,0 +1,84 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCA\UpdateNotification\Tests\Controller;
+
+use OCA\UpdateNotification\BackgroundJob\ResetToken;
+use OCA\UpdateNotification\Controller\AdminController;
+use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\BackgroundJob\IJobList;
+use OCP\IAppConfig;
+use OCP\IConfig;
+use OCP\IL10N;
+use OCP\IRequest;
+use OCP\Security\ISecureRandom;
+use PHPUnit\Framework\MockObject\MockObject;
+use Test\TestCase;
+
+class AdminControllerTest extends TestCase {
+ private IRequest&MockObject $request;
+ private IJobList&MockObject $jobList;
+ private ISecureRandom&MockObject $secureRandom;
+ private IConfig&MockObject $config;
+ private ITimeFactory&MockObject $timeFactory;
+ private IL10N&MockObject $l10n;
+ private IAppConfig&MockObject $appConfig;
+
+ private AdminController $adminController;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->request = $this->createMock(IRequest::class);
+ $this->jobList = $this->createMock(IJobList::class);
+ $this->secureRandom = $this->createMock(ISecureRandom::class);
+ $this->config = $this->createMock(IConfig::class);
+ $this->appConfig = $this->createMock(IAppConfig::class);
+ $this->timeFactory = $this->createMock(ITimeFactory::class);
+ $this->l10n = $this->createMock(IL10N::class);
+
+ $this->adminController = new AdminController(
+ 'updatenotification',
+ $this->request,
+ $this->jobList,
+ $this->secureRandom,
+ $this->config,
+ $this->appConfig,
+ $this->timeFactory,
+ $this->l10n
+ );
+ }
+
+ public function testCreateCredentials(): void {
+ $this->jobList
+ ->expects($this->once())
+ ->method('add')
+ ->with(ResetToken::class);
+ $this->secureRandom
+ ->expects($this->once())
+ ->method('generate')
+ ->with(64)
+ ->willReturn('MyGeneratedToken');
+ $this->config
+ ->expects($this->once())
+ ->method('setSystemValue')
+ ->with('updater.secret');
+ $this->timeFactory
+ ->expects($this->once())
+ ->method('getTime')
+ ->willReturn(12345);
+ $this->appConfig
+ ->expects($this->once())
+ ->method('setValueInt')
+ ->with('core', 'updater.secret.created', 12345);
+
+ $expected = new DataResponse('MyGeneratedToken');
+ $this->assertEquals($expected, $this->adminController->createCredentials());
+ }
+}