Autoría | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle 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 General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>.namespace calendartype_gregorian;/*** Tests for Gregorian calendar type** @package calendartype_gregorian* @category test* @copyright Andrew Lyons <andrew@nicols.co.uk>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later* @covers \calendartype_gregorian\structure*/final class structure_test extends \advanced_testcase {public function tearDown(): void {parent::tearDown();get_string_manager(true);}/*** Test the timestamp_to_date_string method with different input values.** @dataProvider timestamp_to_date_string_provider* @param string $locale* @param int $timestamp* @param string $format* @param string $timezone* @param bool $fixday* @param bool $fixhour* @param string $expected*/public function test_timestamp_to_date_string(string $locale,int $timestamp,string $format,string $timezone,bool $fixday,bool $fixhour,string $expected,): void {$this->resetAfterTest();$stringmanager = $this->get_mocked_string_manager();$stringmanager->mock_string('locale', 'langconfig', $locale);$structure = new structure();$this->assertEquals($expected,$structure->timestamp_to_date_string($timestamp,$format,$timezone,$fixday,$fixhour,),);}/*** Data provider for timestamp_to_date_string tests.** @return array*/public static function timestamp_to_date_string_provider(): array {return ['English with UTC timezone' => ['en',0,'%Y-%m-%d %H:%M:%S','UTC',false,false,'1970-01-01 00:00:00',],'English with London timezone' => ['en',1728487003,"%d %B %Y",'Europe/London',false,false,"09 October 2024",],'English with Sydney (+11) timezone' => ['en',1728487003,"%d %B %Y",'Australia/Sydney',false,false,"10 October 2024",],'Russian with Sydney (+11) timezone' => ['ru',1728487003,"%d %B %Y %H:%M:%S",'Australia/Sydney',false,false,'10 октября 2024 02:16:43',],'Russian %B %Y (Genitive) with Sydney (+11) timezone' => ['ru',1728487003,"%B %Y",'Australia/Sydney',false,false,"октябрь 2024",],'Russian %d %B %Y (Nominative) with London timezone' => ['ru',1728487003,"%d %B %Y",'Europe/London',false,false,"09 октября 2024",],'Russian %d %B %Y (Nominative) with London timezone fixing leading zero' => ['ru',1728487003,"%d %B %Y",'Europe/London',true,false,"9 октября 2024",],'Russian %e %B %Y (Nominative) with London timezone' => ['ru',1728487003,"%e %B %Y",'Europe/London',false,false," 9 октября 2024",],'Time %I without fixing leading zero' => ['ru',1728487003,"%I:%M:%S",'Australia/Sydney',false,false,"02:16:43",],'Time %I fixing leading zero' => ['ru',1728487003,"%I:%M:%S",'Australia/Sydney',false,true,"2:16:43",],'Time %l without fixing leading zero' => ['ru',1728487003,"%l:%M:%S",'Australia/Sydney',false,false," 2:16:43",],'Time %l fixing leading zero' => ['ru',1728487003,"%l:%M:%S",'Australia/Sydney',false,true," 2:16:43",],];}}