11
11
use MongoDB \Laravel \Tests \Models \Casting ;
12
12
use MongoDB \Laravel \Tests \TestCase ;
13
13
14
+ use function date_default_timezone_get ;
15
+ use function date_default_timezone_set ;
14
16
use function now ;
15
17
16
18
class DateTest extends TestCase
17
19
{
20
+ private string $ timezone ;
21
+
18
22
protected function setUp (): void
19
23
{
20
24
parent ::setUp ();
21
25
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 );
22
33
Casting::truncate ();
34
+
35
+ parent ::tearDown ();
23
36
}
24
37
25
38
public function testDate (): void
@@ -28,30 +41,35 @@ public function testDate(): void
28
41
29
42
self ::assertInstanceOf (Carbon::class, $ model ->dateField );
30
43
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 ());
31
45
32
46
$ model ->update (['dateField ' => now ()->subDay ()]);
33
47
34
48
self ::assertInstanceOf (Carbon::class, $ model ->dateField );
35
49
self ::assertInstanceOf (UTCDateTime::class, $ model ->getRawOriginal ('dateField ' ));
36
50
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 ());
37
52
38
53
$ model ->update (['dateField ' => new DateTime ()]);
39
54
40
55
self ::assertInstanceOf (Carbon::class, $ model ->dateField );
41
56
self ::assertInstanceOf (UTCDateTime::class, $ model ->getRawOriginal ('dateField ' ));
42
57
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 ());
43
59
44
60
$ model ->update (['dateField ' => (new DateTime ())->modify ('-1 day ' )]);
45
61
46
62
self ::assertInstanceOf (Carbon::class, $ model ->dateField );
47
63
self ::assertInstanceOf (UTCDateTime::class, $ model ->getRawOriginal ('dateField ' ));
48
64
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 ());
49
66
50
67
$ refetchedModel = Casting::query ()->find ($ model ->getKey ());
51
68
52
69
self ::assertInstanceOf (Carbon::class, $ refetchedModel ->dateField );
53
70
self ::assertInstanceOf (UTCDateTime::class, $ model ->getRawOriginal ('dateField ' ));
54
71
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 ());
55
73
56
74
$ model = Casting::query ()->create ();
57
75
$ this ->assertNull ($ model ->dateField );
@@ -69,6 +87,7 @@ public function testDateAsString(): void
69
87
Carbon::createFromTimestamp (1698577443 )->startOfDay ()->format ('Y-m-d H:i:s ' ),
70
88
(string ) $ model ->dateField ,
71
89
);
90
+ self ::assertEquals (date_default_timezone_get (), (string ) $ model ->dateField ->getTimezone ());
72
91
73
92
$ model ->update (['dateField ' => '2023-10-28 ' ]);
74
93
@@ -77,6 +96,7 @@ public function testDateAsString(): void
77
96
Carbon::createFromTimestamp (1698577443 )->subDay ()->startOfDay ()->format ('Y-m-d H:i:s ' ),
78
97
(string ) $ model ->dateField ,
79
98
);
99
+ self ::assertEquals (date_default_timezone_get (), (string ) $ model ->dateField ->getTimezone ());
80
100
}
81
101
82
102
public function testDateWithCustomFormat (): void
0 commit comments