Merge branch 'backport/fix-date-issues-once-and-for-all' into 2.6
Backporting https://github.com/doctrine/doctrine2/pull/7055
This commit is contained in:
commit
496c6a9f03
@ -5,6 +5,7 @@ namespace Doctrine\Tests\ORM\Functional;
|
||||
use Doctrine\ORM\AbstractQuery;
|
||||
use Doctrine\Tests\Models\Company\CompanyManager;
|
||||
use Doctrine\Tests\OrmFunctionalTestCase;
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
* Functional Query tests.
|
||||
@ -292,7 +293,7 @@ class QueryDqlFunctionTest extends OrmFunctionalTestCase
|
||||
*
|
||||
* @dataProvider dateAddSubProvider
|
||||
*/
|
||||
public function testDateAdd(string $unit, int $amount, int $expectedValue, int $delta = 0) : void
|
||||
public function testDateAdd(string $unit, int $amount, int $delta = 0) : void
|
||||
{
|
||||
$query = sprintf(
|
||||
'SELECT CURRENT_TIMESTAMP() as now, DATE_ADD(CURRENT_TIMESTAMP(), %d, \'%s\') AS add FROM %s m',
|
||||
@ -308,9 +309,12 @@ class QueryDqlFunctionTest extends OrmFunctionalTestCase
|
||||
self::assertArrayHasKey('now', $result);
|
||||
self::assertArrayHasKey('add', $result);
|
||||
|
||||
$diff = strtotime($result['add']) - strtotime($result['now']);
|
||||
|
||||
self::assertEquals($expectedValue, $diff, '', $delta);
|
||||
self::assertEquals(
|
||||
(new \DateTimeImmutable($result['now']))->modify(sprintf('+%d %s', $amount, $unit)),
|
||||
new \DateTimeImmutable($result['add']),
|
||||
'',
|
||||
$delta
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -319,7 +323,7 @@ class QueryDqlFunctionTest extends OrmFunctionalTestCase
|
||||
*
|
||||
* @dataProvider dateAddSubProvider
|
||||
*/
|
||||
public function testDateSub(string $unit, int $amount, int $expectedValue, int $delta = 0) : void
|
||||
public function testDateSub(string $unit, int $amount, int $delta = 0) : void
|
||||
{
|
||||
$query = sprintf(
|
||||
'SELECT CURRENT_TIMESTAMP() as now, DATE_SUB(CURRENT_TIMESTAMP(), %d, \'%s\') AS sub FROM %s m',
|
||||
@ -335,9 +339,12 @@ class QueryDqlFunctionTest extends OrmFunctionalTestCase
|
||||
self::assertArrayHasKey('now', $result);
|
||||
self::assertArrayHasKey('sub', $result);
|
||||
|
||||
$diff = strtotime($result['now']) - strtotime($result['sub']);
|
||||
|
||||
self::assertEquals($expectedValue, $diff, '', $delta);
|
||||
self::assertEquals(
|
||||
(new \DateTimeImmutable($result['now']))->modify(sprintf('-%d %s', $amount, $unit)),
|
||||
new \DateTimeImmutable($result['sub']),
|
||||
'',
|
||||
$delta
|
||||
);
|
||||
}
|
||||
|
||||
public function dateAddSubProvider() : array
|
||||
@ -345,9 +352,10 @@ class QueryDqlFunctionTest extends OrmFunctionalTestCase
|
||||
$secondsInDay = 86400;
|
||||
|
||||
return [
|
||||
'year' => ['year', 1, 365 * $secondsInDay, 3 * $secondsInDay],
|
||||
'month' => ['month', 1, 30 * $secondsInDay, 2.5 * $secondsInDay],
|
||||
'week' => ['week', 1, 7 * $secondsInDay, $secondsInDay],
|
||||
'year' => ['year', 1, $secondsInDay],
|
||||
'month' => ['month', 1, $secondsInDay],
|
||||
'week' => ['week', 1, $secondsInDay],
|
||||
'day' => ['day', 2, $secondsInDay],
|
||||
'hour' => ['hour', 1, 3600],
|
||||
'minute' => ['minute', 1, 60],
|
||||
'second' => ['second', 10, 10],
|
||||
|
Loading…
x
Reference in New Issue
Block a user