for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Doctrine\Tests\DBAL\Functional\Platform;
use Doctrine\DBAL\Schema\Table;
use Doctrine\Tests\DbalFunctionalTestCase;
use function sprintf;
class DateExpressionTest extends DbalFunctionalTestCase
{
/**
* @test
* @dataProvider dateDiffProvider
*/
public function diff(string $date1, string $date2, int $expected)
$table = new Table('date_expr_test');
$table->addColumn('date1', 'date');
$table->addColumn('date2', 'date');
$this->_conn->getSchemaManager()->dropAndCreateTable($table);
$this->_conn->insert('date_expr_test', [
'date1' => $date1,
'date2' => $date2,
]);
$platform = $this->_conn->getDatabasePlatform();
$sql = sprintf('SELECT %s FROM date_expr_test', $platform->getDateDiffExpression('date1', 'date2'));
$diff = $this->_conn->query($sql)->fetchColumn();
self::assertEquals($expected, $diff);
}
public static function dateDiffProvider()
return [
'same day' => ['2018-04-14 23:59:59', '2018-04-14 00:00:00', 0],
'midnight' => ['2018-04-14 00:00:00', '2018-04-13 23:59:59', 1],
];