12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- declare(strict_types=1);
- /**
- * This file is part of the Carbon package.
- *
- * (c) Brian Nesbitt <brian@nesbot.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Tests\CarbonImmutable;
- use Carbon\CarbonImmutable as Carbon;
- use Generator;
- use Tests\AbstractTestCase;
- class ModifyNearDSTChangeTest extends AbstractTestCase
- {
- /**
- * Tests transition through DST change hour in non default timezone
- *
- * @param string $dateString
- * @param int $addHours
- * @param string $expected
- *
- * @dataProvider \Tests\CarbonImmutable\ModifyNearDSTChangeTest::dataForTransitionTests
- */
- public function testTransitionInNonDefaultTimezone($dateString, $addHours, $expected)
- {
- date_default_timezone_set('Europe/london');
- $date = Carbon::parse($dateString, 'America/New_York');
- $date = $date->addHours($addHours);
- $this->assertSame($expected, $date->format('c'));
- }
- /**
- * Tests transition through DST change hour in default timezone
- *
- * @param string $dateString
- * @param int $addHours
- * @param string $expected
- *
- * @dataProvider \Tests\CarbonImmutable\ModifyNearDSTChangeTest::dataForTransitionTests
- */
- public function testTransitionInDefaultTimezone($dateString, $addHours, $expected)
- {
- date_default_timezone_set('America/New_York');
- $date = Carbon::parse($dateString, 'America/New_York');
- $date = $date->addHours($addHours);
- $this->assertSame($expected, $date->format('c'));
- }
- public static function dataForTransitionTests(): Generator
- {
- // arguments:
- // - Date string to Carbon::parse in America/New_York.
- // - Hours to add
- // - Resulting string in 'c' format
- // testForwardTransition
- // When standard time was about to reach 2010-03-14T02:00:00-05:00 clocks were turned forward 1 hour to
- // 2010-03-14T03:00:00-04:00 local daylight time instead
- yield ['2010-03-14T00:00:00', 24, '2010-03-15T00:00:00-04:00'];
- // testBackwardTransition
- // When local daylight time was about to reach 2010-11-07T02:00:00-04:00 clocks were turned backward 1 hour
- // to 2010-11-07T01:00:00-05:00 local standard time instead
- yield ['2010-11-07T00:00:00', 24, '2010-11-08T00:00:00-05:00'];
- }
- }
|