aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/AppFramework/Utility/TimeFactoryTest.php
blob: 276b2d6da4f64a2bf6699e55011c58f4fa3f6e59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php

declare(strict_types=1);

/**
 * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-only
 */

namespace Test\AppFramework\Utility;

use OC\AppFramework\Utility\TimeFactory;

class TimeFactoryTest extends \Test\TestCase {
	protected TimeFactory $timeFactory;

	protected function setUp(): void {
		$this->timeFactory = new TimeFactory();
	}

	public function testNow(): void {
		$now = $this->timeFactory->now();
		self::assertSame('UTC', $now->getTimezone()->getName());
	}

	public function testNowWithTimeZone(): void {
		$timezone = new \DateTimeZone('Europe/Berlin');
		$withTimeZone = $this->timeFactory->withTimeZone($timezone);

		$now = $withTimeZone->now();
		self::assertSame('Europe/Berlin', $now->getTimezone()->getName());
	}

	public function testGetTimeZone(): void {
		$expected = new \DateTimeZone('Europe/Berlin');
		$actual = $this->timeFactory->getTimeZone('Europe/Berlin');
		self::assertEquals($expected, $actual);
	}

	public function testGetTimeZoneUTC(): void {
		$expected = new \DateTimeZone('UTC');
		$actual = $this->timeFactory->getTimeZone();
		self::assertEquals($expected, $actual);
	}

	public function testGetTimeZoneInvalid(): void {
		$this->expectException(\Exception::class);
		$this->timeFactory->getTimeZone('blubblub');
	}
}