* * @author Joas Schilling * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License, version 3, * along with this program. If not, see * */ 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'); } }