Skip to content

Commit b3e9668

Browse files
committed
Fix timezone influenced tests
1 parent e2273b5 commit b3e9668

File tree

1 file changed

+37
-5
lines changed

1 file changed

+37
-5
lines changed

Tests/Controller/ArgumentResolver/DateTimeValueResolverTest.php

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,25 @@
2020

2121
class DateTimeValueResolverTest extends TestCase
2222
{
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+
2342
public function testSupports()
2443
{
2544
$resolver = new DateTimeValueResolver();
@@ -37,12 +56,16 @@ public function testSupports()
3756
$this->assertFalse($resolver->supports($request, $argument));
3857
}
3958

40-
public function testFullDate()
59+
/**
60+
* @dataProvider getTimeZones
61+
*/
62+
public function testFullDate(string $timezone)
4163
{
64+
date_default_timezone_set($timezone);
4265
$resolver = new DateTimeValueResolver();
4366

4467
$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']);
4669

4770
/** @var \Generator $results */
4871
$results = $resolver->resolve($request, $argument);
@@ -53,8 +76,12 @@ public function testFullDate()
5376
$this->assertEquals('2012-07-21', $results[0]->format('Y-m-d'));
5477
}
5578

56-
public function testUnixTimestamp()
79+
/**
80+
* @dataProvider getTimeZones
81+
*/
82+
public function testUnixTimestamp(string $timezone)
5783
{
84+
date_default_timezone_set($timezone);
5885
$resolver = new DateTimeValueResolver();
5986

6087
$argument = new ArgumentMetadata('dummy', \DateTime::class, false, false, null);
@@ -86,6 +113,7 @@ public function testNullableWithEmptyAttribute()
86113

87114
public function testCustomClass()
88115
{
116+
date_default_timezone_set('UTC');
89117
$resolver = new DateTimeValueResolver();
90118

91119
$argument = new ArgumentMetadata('dummy', FooDateTime::class, false, false, null);
@@ -100,12 +128,16 @@ public function testCustomClass()
100128
$this->assertEquals('2016-09-08', $results[0]->format('Y-m-d'));
101129
}
102130

103-
public function testDateTimeImmutable()
131+
/**
132+
* @dataProvider getTimeZones
133+
*/
134+
public function testDateTimeImmutable(string $timezone)
104135
{
136+
date_default_timezone_set($timezone);
105137
$resolver = new DateTimeValueResolver();
106138

107139
$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']);
109141

110142
/** @var \Generator $results */
111143
$results = $resolver->resolve($request, $argument);

0 commit comments

Comments
 (0)