20
20
21
21
class DateTimeValueResolverTest extends TestCase
22
22
{
23
+ private $ defaultTimezone ;
24
+
25
+ protected function setUp (): void
26
+ {
27
+ $ this ->defaultTimezone = date_default_timezone_get ();
28
+ }
29
+
30
+ protected function tearDown (): void
31
+ {
32
+ date_default_timezone_set ($ this ->defaultTimezone );
33
+ }
34
+
35
+ public function getTimeZones ()
36
+ {
37
+ yield ['UTC ' ];
38
+ yield ['Etc/GMT+9 ' ];
39
+ yield ['Etc/GMT-14 ' ];
40
+ }
41
+
23
42
public function testSupports ()
24
43
{
25
44
$ resolver = new DateTimeValueResolver ();
@@ -37,12 +56,16 @@ public function testSupports()
37
56
$ this ->assertFalse ($ resolver ->supports ($ request , $ argument ));
38
57
}
39
58
40
- public function testFullDate ()
59
+ /**
60
+ * @dataProvider getTimeZones
61
+ */
62
+ public function testFullDate (string $ timezone )
41
63
{
64
+ date_default_timezone_set ($ timezone );
42
65
$ resolver = new DateTimeValueResolver ();
43
66
44
67
$ argument = new ArgumentMetadata ('dummy ' , \DateTime::class, false , false , null );
45
- $ request = self ::requestWithAttributes (['dummy ' => '2012-07-21 00:00:00 ' ]);
68
+ $ request = self ::requestWithAttributes (['dummy ' => '2012-07-21 00:00:00+0000 ' ]);
46
69
47
70
/** @var \Generator $results */
48
71
$ results = $ resolver ->resolve ($ request , $ argument );
@@ -53,8 +76,12 @@ public function testFullDate()
53
76
$ this ->assertEquals ('2012-07-21 ' , $ results [0 ]->format ('Y-m-d ' ));
54
77
}
55
78
56
- public function testUnixTimestamp ()
79
+ /**
80
+ * @dataProvider getTimeZones
81
+ */
82
+ public function testUnixTimestamp (string $ timezone )
57
83
{
84
+ date_default_timezone_set ($ timezone );
58
85
$ resolver = new DateTimeValueResolver ();
59
86
60
87
$ argument = new ArgumentMetadata ('dummy ' , \DateTime::class, false , false , null );
@@ -86,6 +113,7 @@ public function testNullableWithEmptyAttribute()
86
113
87
114
public function testCustomClass ()
88
115
{
116
+ date_default_timezone_set ('UTC ' );
89
117
$ resolver = new DateTimeValueResolver ();
90
118
91
119
$ argument = new ArgumentMetadata ('dummy ' , FooDateTime::class, false , false , null );
@@ -100,12 +128,16 @@ public function testCustomClass()
100
128
$ this ->assertEquals ('2016-09-08 ' , $ results [0 ]->format ('Y-m-d ' ));
101
129
}
102
130
103
- public function testDateTimeImmutable ()
131
+ /**
132
+ * @dataProvider getTimeZones
133
+ */
134
+ public function testDateTimeImmutable (string $ timezone )
104
135
{
136
+ date_default_timezone_set ($ timezone );
105
137
$ resolver = new DateTimeValueResolver ();
106
138
107
139
$ argument = new ArgumentMetadata ('dummy ' , \DateTimeImmutable::class, false , false , null );
108
- $ request = self ::requestWithAttributes (['dummy ' => '2016-09-08 00:00:00 ' ]);
140
+ $ request = self ::requestWithAttributes (['dummy ' => '2016-09-08 00:00:00+0000 ' ]);
109
141
110
142
/** @var \Generator $results */
111
143
$ results = $ resolver ->resolve ($ request , $ argument );
0 commit comments