Skip to content

Commit 03230ff

Browse files
committed
Add tests on date cast timezone
1 parent 7551f76 commit 03230ff

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

tests/Casts/DateTest.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,28 @@
1111
use MongoDB\Laravel\Tests\Models\Casting;
1212
use MongoDB\Laravel\Tests\TestCase;
1313

14+
use function date_default_timezone_get;
15+
use function date_default_timezone_set;
1416
use function now;
1517

1618
class DateTest extends TestCase
1719
{
20+
private string $timezone;
21+
1822
protected function setUp(): void
1923
{
2024
parent::setUp();
2125

26+
$this->timezone = date_default_timezone_get();
27+
date_default_timezone_set('Europe/Rome');
28+
}
29+
30+
protected function tearDown(): void
31+
{
32+
date_default_timezone_set($this->timezone);
2233
Casting::truncate();
34+
35+
parent::tearDown();
2336
}
2437

2538
public function testDate(): void
@@ -28,30 +41,35 @@ public function testDate(): void
2841

2942
self::assertInstanceOf(Carbon::class, $model->dateField);
3043
self::assertEquals(now()->startOfDay()->format('Y-m-d H:i:s'), (string) $model->dateField);
44+
self::assertEquals(date_default_timezone_get(), (string) $model->dateField->getTimezone());
3145

3246
$model->update(['dateField' => now()->subDay()]);
3347

3448
self::assertInstanceOf(Carbon::class, $model->dateField);
3549
self::assertInstanceOf(UTCDateTime::class, $model->getRawOriginal('dateField'));
3650
self::assertEquals(now()->subDay()->startOfDay()->format('Y-m-d H:i:s'), (string) $model->dateField);
51+
self::assertEquals(date_default_timezone_get(), (string) $model->dateField->getTimezone());
3752

3853
$model->update(['dateField' => new DateTime()]);
3954

4055
self::assertInstanceOf(Carbon::class, $model->dateField);
4156
self::assertInstanceOf(UTCDateTime::class, $model->getRawOriginal('dateField'));
4257
self::assertEquals(now()->startOfDay()->format('Y-m-d H:i:s'), (string) $model->dateField);
58+
self::assertEquals(date_default_timezone_get(), (string) $model->dateField->getTimezone());
4359

4460
$model->update(['dateField' => (new DateTime())->modify('-1 day')]);
4561

4662
self::assertInstanceOf(Carbon::class, $model->dateField);
4763
self::assertInstanceOf(UTCDateTime::class, $model->getRawOriginal('dateField'));
4864
self::assertEquals(now()->subDay()->startOfDay()->format('Y-m-d H:i:s'), (string) $model->dateField);
65+
self::assertEquals(date_default_timezone_get(), (string) $model->dateField->getTimezone());
4966

5067
$refetchedModel = Casting::query()->find($model->getKey());
5168

5269
self::assertInstanceOf(Carbon::class, $refetchedModel->dateField);
5370
self::assertInstanceOf(UTCDateTime::class, $model->getRawOriginal('dateField'));
5471
self::assertEquals(now()->subDay()->startOfDay()->format('Y-m-d H:i:s'), (string) $refetchedModel->dateField);
72+
self::assertEquals(date_default_timezone_get(), (string) $model->dateField->getTimezone());
5573

5674
$model = Casting::query()->create();
5775
$this->assertNull($model->dateField);
@@ -69,6 +87,7 @@ public function testDateAsString(): void
6987
Carbon::createFromTimestamp(1698577443)->startOfDay()->format('Y-m-d H:i:s'),
7088
(string) $model->dateField,
7189
);
90+
self::assertEquals(date_default_timezone_get(), (string) $model->dateField->getTimezone());
7291

7392
$model->update(['dateField' => '2023-10-28']);
7493

@@ -77,6 +96,7 @@ public function testDateAsString(): void
7796
Carbon::createFromTimestamp(1698577443)->subDay()->startOfDay()->format('Y-m-d H:i:s'),
7897
(string) $model->dateField,
7998
);
99+
self::assertEquals(date_default_timezone_get(), (string) $model->dateField->getTimezone());
80100
}
81101

82102
public function testDateWithCustomFormat(): void

0 commit comments

Comments
 (0)