aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dashboard/tests/DashboardServiceTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dashboard/tests/DashboardServiceTest.php')
-rw-r--r--apps/dashboard/tests/DashboardServiceTest.php100
1 files changed, 100 insertions, 0 deletions
diff --git a/apps/dashboard/tests/DashboardServiceTest.php b/apps/dashboard/tests/DashboardServiceTest.php
new file mode 100644
index 00000000000..ebcd06cdf03
--- /dev/null
+++ b/apps/dashboard/tests/DashboardServiceTest.php
@@ -0,0 +1,100 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCA\Dashboard\Tests;
+
+use OC\Accounts\Account;
+use OCA\Dashboard\Service\DashboardService;
+use OCP\Accounts\IAccountManager;
+use OCP\IConfig;
+use OCP\IUser;
+use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
+use Test\TestCase;
+
+class DashboardServiceTest extends TestCase {
+
+ private IConfig&MockObject $config;
+ private IUserManager&MockObject $userManager;
+ private IAccountManager&MockObject $accountManager;
+ private DashboardService $service;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->config = $this->createMock(IConfig::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->accountManager = $this->createMock(IAccountManager::class);
+
+ $this->service = new DashboardService(
+ $this->config,
+ 'alice',
+ $this->userManager,
+ $this->accountManager,
+ );
+ }
+
+ public function testGetBirthdate(): void {
+ $user = $this->createMock(IUser::class);
+ $this->userManager->method('get')
+ ->willReturn($user);
+
+ $account = new Account($user);
+ $account->setProperty(
+ IAccountManager::PROPERTY_BIRTHDATE,
+ '2024-12-10T00:00:00.000Z',
+ IAccountManager::SCOPE_LOCAL,
+ IAccountManager::VERIFIED,
+ );
+
+ $this->accountManager->method('getAccount')
+ ->willReturn($account);
+
+ $birthdate = $this->service->getBirthdate();
+
+ $this->assertEquals('2024-12-10T00:00:00.000Z', $birthdate);
+ }
+
+ public function testGetBirthdatePropertyDoesNotExist(): void {
+ $user = $this->createMock(IUser::class);
+ $this->userManager->method('get')
+ ->willReturn($user);
+
+ $account = new Account($user);
+ $this->accountManager->method('getAccount')
+ ->willReturn($account);
+
+ $birthdate = $this->service->getBirthdate();
+
+ $this->assertEquals('', $birthdate);
+ }
+
+ public function testGetBirthdateUserNotFound(): void {
+ $this->userManager->method('get')
+ ->willReturn(null);
+
+ $birthdate = $this->service->getBirthdate();
+
+ $this->assertEquals('', $birthdate);
+ }
+
+ public function testGetBirthdateNoUserId(): void {
+ $service = new DashboardService(
+ $this->config,
+ null,
+ $this->userManager,
+ $this->accountManager,
+ );
+
+ $birthdate = $service->getBirthdate();
+
+ $this->assertEquals('', $birthdate);
+ }
+
+}