diff --git a/tests/ClockMockTest.php b/tests/ClockMockTest.php index 2a68cd2..ee777dc 100644 --- a/tests/ClockMockTest.php +++ b/tests/ClockMockTest.php @@ -184,14 +184,45 @@ public function test_gmstrftime() public function dateProvider_gmmktime(): array { + // NOTE: for all datasets, hour in freezeDateTime is completely irrelevant because always overridden by $hour + // parameter provided to gmmktime. Also, in expectedDateTime hour is always "13" because hour 10 in GMT + // corresponds to hour 13 when we are in +03:00 offset. return [ - ['2022-04-04 14:26:29.123456', [10], '2022-04-04 13:26:29.123456'], - ['2022-04-04 14:26:29.123456', [10, 10], '2022-04-04 13:10:29.123456'], - ['2022-04-04 14:26:29.123456', [10, null, 10], '2022-04-04 13:26:10.123456'], - ['2022-04-04 14:26:29.123456', [10, null, null, 10], '2022-10-04 13:26:29.123456'], - ['2022-04-04 14:26:29.123456', [10, null, null, null, 10], '2022-04-10 13:26:29.123456'], - ['2022-04-04 14:26:29.123456', [10, null, null, null, null, 10], '2010-04-04 13:26:29.123456'], - ['2022-04-04 14:26:29.123456', [10, 10, 10, 10, 10, 10], '2010-10-10 13:10:10.123456'], + [ + '2022-04-04T05:26:29+03:00', + [10], + '2022-04-04T13:26:29+00:00' + ], + [ + '2022-04-04T05:26:29+03:00', + [10, 10], + '2022-04-04T13:10:29+00:00' + ], + [ + '2022-04-04T05:26:29+03:00', + [10, null, 10], + '2022-04-04T13:26:10+00:00' + ], + [ + '2022-04-04T05:26:29+03:00', + [10, null, null, 10], + '2022-10-04T13:26:29+00:00' + ], + [ + '2022-04-04T05:26:29+03:00', + [10, null, null, null, 10], + '2022-04-10T13:26:29+00:00' + ], + [ + '2022-04-04T05:26:29+03:00', + [10, null, null, null, null, 10], + '2010-04-04T13:26:29+00:00' + ], + [ + '2022-04-04T05:26:29+03:00', + [10, 10, 10, 10, 10, 10], + '2010-10-10T13:10:10+00:00' + ], ]; } @@ -200,9 +231,9 @@ public function dateProvider_gmmktime(): array */ public function test_gmmktime(string $freezeDateTime, array $mktimeArgs, string $expectedDateTime) { - ClockMock::freeze((new \DateTime($freezeDateTime))->setTimezone(new \DateTimeZone('Europe/Kiev'))); + ClockMock::freeze(new \DateTime($freezeDateTime)); - $this->assertEquals($expected = strtotime($expectedDateTime), $actual = gmmktime(...$mktimeArgs)); + $this->assertEquals($expectedDateTime, date(DATE_ATOM, gmmktime(...$mktimeArgs))); } public function test_idate()