|
4 | 4 |
|
5 | 5 | namespace Keboola\JobQueueInternalClient\Tests\JobFactory; |
6 | 6 |
|
| 7 | +use DateTimeImmutable; |
7 | 8 | use Keboola\JobQueueInternalClient\Exception\ClientException; |
8 | 9 | use Keboola\JobQueueInternalClient\JobFactory; |
9 | 10 | use Keboola\JobQueueInternalClient\JobFactory\Job; |
@@ -1017,4 +1018,46 @@ public function testGetExecutionTokenDecryptedNoFeature(): void |
1017 | 1018 |
|
1018 | 1019 | self::assertSame('token', $executionToken); |
1019 | 1020 | } |
| 1021 | + |
| 1022 | + public static function provideDatetimeStrings(): iterable |
| 1023 | + { |
| 1024 | + yield 'endTime - MySQL offset' => [ |
| 1025 | + 'datetimeString' => '2024-06-11T10:11:37+00:00', |
| 1026 | + 'timeField' => 'endTime', |
| 1027 | + ]; |
| 1028 | + yield 'endTime - Elastic offset' => [ |
| 1029 | + 'datetimeString' => '2024-06-11T10:11:37.000Z', |
| 1030 | + 'timeField' => 'endTime', |
| 1031 | + ]; |
| 1032 | + yield 'startTime - MySQL offset' => [ |
| 1033 | + 'datetimeString' => '2024-06-11T10:11:37+00:00', |
| 1034 | + 'timeField' => 'startTime', |
| 1035 | + ]; |
| 1036 | + yield 'startTime - Elastic offset' => [ |
| 1037 | + 'datetimeString' => '2024-06-11T10:11:37.000Z', |
| 1038 | + 'timeField' => 'startTime', |
| 1039 | + ]; |
| 1040 | + yield 'createdTime - MySQL offset' => [ |
| 1041 | + 'datetimeString' => '2024-06-11T10:11:37+00:00', |
| 1042 | + 'timeField' => 'createdTime', |
| 1043 | + ]; |
| 1044 | + yield 'createdTime - Elastic offset' => [ |
| 1045 | + 'datetimeString' => '2024-06-11T10:11:37.000Z', |
| 1046 | + 'timeField' => 'createdTime', |
| 1047 | + ]; |
| 1048 | + } |
| 1049 | + |
| 1050 | + /** @dataProvider provideDatetimeStrings */ |
| 1051 | + public function testTimeGetters(string $datetimeString, string $timeField): void |
| 1052 | + { |
| 1053 | + $jobData = $this->jobData; |
| 1054 | + $getterMethodName = 'get' . ucfirst($timeField); |
| 1055 | + self::assertNull($this->getJob($jobData)->$getterMethodName()); |
| 1056 | + |
| 1057 | + $jobData[$timeField] = $datetimeString; |
| 1058 | + $job = $this->getJob($jobData); |
| 1059 | + |
| 1060 | + self::assertEquals(new DateTimeImmutable('2024-06-11T10:11:37+00:00'), $job->$getterMethodName()); |
| 1061 | + self::assertEquals('+00:00', $job->$getterMethodName()->getTimezone()->getName()); |
| 1062 | + } |
1020 | 1063 | } |
0 commit comments