Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

MINOR Using SQLQuery wrapper in DbDatetimeTest to provide better cros…

…s-db support, specifically correct LIMIT syntax in MSSQL (previously broken in a9b1350)
  • Loading branch information...
commit 11b409aac8cee8a1e1666adf56a965bb5ed1d897 1 parent cfe0066
@chillu chillu authored
Showing with 29 additions and 22 deletions.
  1. +29 −22 tests/model/DbDatetimeTest.php
View
51 tests/model/DbDatetimeTest.php
@@ -54,8 +54,8 @@ function setUp() {
function testCorrectNow() {
if($this->supportDbDatetime) {
- $query = 'SELECT ' . $this->adapter->formattedDatetimeClause('now', '%U');
- $result = DB::query($query)->value();
+ $query = new SQLQuery($this->adapter->formattedDatetimeClause('now', '%U'));
+ $result = $query->execute()->value();
$this->assertRegExp('/^\d*$/', (string) $result);
$this->assertTrue($result>0);
}
@@ -63,16 +63,16 @@ function testCorrectNow() {
function testDbDatetimeFormat() {
if($this->supportDbDatetime) {
- $query = 'SELECT ' . $this->adapter->formattedDatetimeClause('1973-10-14 10:30:00', '%H:%i, %d/%m/%Y');
- $result = DB::query($query)->value();
+ $query = new SQLQuery($this->adapter->formattedDatetimeClause('1973-10-14 10:30:00', '%H:%i, %d/%m/%Y'));
+ $result = $query->execute()->value();
$this->matchesRoughly($result, date('H:i, d/m/Y', strtotime('1973-10-14 10:30:00')), 'nice literal time');
- $query = 'SELECT ' . $this->adapter->formattedDatetimeClause('now', '%d');
- $result = DB::query($query)->value();
+ $query = new SQLQuery($this->adapter->formattedDatetimeClause('now', '%d'));
+ $result = $query->execute()->value();
$this->matchesRoughly($result, date('d', $this->getDbNow()), 'todays day');
- $query = 'SELECT ' . $this->adapter->formattedDatetimeClause('"Created"', '%U') . ' AS test FROM "DbDateTimeTest_Team"';
- $result = DB::query($query)->value();
+ $query = new SQLQuery($this->adapter->formattedDatetimeClause('"Created"', '%U') . ' AS test FROM "DbDateTimeTest_Team"');
+ $result = $query->execute()->value();
$this->matchesRoughly($result, strtotime(DataObject::get_one('DbDateTimeTest_Team')->Created), 'fixture ->Created as timestamp');
}
@@ -81,16 +81,19 @@ function testDbDatetimeFormat() {
function testDbDatetimeInterval() {
if($this->supportDbDatetime) {
- $query = 'SELECT ' . $this->adapter->datetimeIntervalClause('1973-10-14 10:30:00', '+18 Years');
- $result = DB::query($query)->value();
+ $query = new SQLQuery($this->adapter->datetimeIntervalClause('1973-10-14 10:30:00', '+18 Years'));
+ $result = $query->execute()->value();
$this->matchesRoughly($result, '1991-10-14 10:30:00', 'add 18 years');
- $query = 'SELECT ' . $this->adapter->datetimeIntervalClause('now', '+1 Day');
- $result = DB::query($query)->value();
+ $query = new SQLQuery($this->adapter->datetimeIntervalClause('now', '+1 Day'));
+ $result = $query->execute()->value();
$this->matchesRoughly($result, date('Y-m-d H:i:s', strtotime('+1 Day', $this->getDbNow())), 'tomorrow');
- $query = 'SELECT ' . $this->adapter->datetimeIntervalClause('"Created"', '-15 Minutes') . ' AS "test" FROM "DbDateTimeTest_Team" LIMIT 1';
- $result = DB::query($query)->value();
+ $query = new SQLQuery();
+ $query->select($this->adapter->datetimeIntervalClause('"Created"', '-15 Minutes') . ' AS "test"')
+ ->from("DbDateTimeTest_Team")
+ ->limit(1);
+ $result = $query->execute()->value();
$this->matchesRoughly($result, date('Y-m-d H:i:s', strtotime(Dataobject::get_one('DbDateTimeTest_Team')->Created) - 900), '15 Minutes before creating fixture');
}
@@ -99,20 +102,24 @@ function testDbDatetimeInterval() {
function testDbDatetimeDifference() {
if($this->supportDbDatetime) {
- $query = 'SELECT ' . $this->adapter->datetimeDifferenceClause('1974-10-14 10:30:00', '1973-10-14 10:30:00');
- $result = DB::query($query)->value();
+ $query = new SQLQuery($this->adapter->datetimeDifferenceClause('1974-10-14 10:30:00', '1973-10-14 10:30:00'));
+ $result = $query->execute()->value();
$this->matchesRoughly($result/86400, 365, '1974 - 1973 = 365 * 86400 sec');
- $query = 'SELECT ' . $this->adapter->datetimeDifferenceClause(date('Y-m-d H:i:s', strtotime('-15 seconds')), 'now');
- $result = DB::query($query)->value();
+ $query = new SQLQuery($this->adapter->datetimeDifferenceClause(date('Y-m-d H:i:s', strtotime('-15 seconds')), 'now'));
+ $result = $query->execute()->value();
$this->matchesRoughly($result, -15, '15 seconds ago - now');
- $query = 'SELECT ' . $this->adapter->datetimeDifferenceClause('now', $this->adapter->datetimeIntervalClause('now', '+45 Minutes'));
- $result = DB::query($query)->value();
+ $query = new SQLQuery($this->adapter->datetimeDifferenceClause('now', $this->adapter->datetimeIntervalClause('now', '+45 Minutes')));
+ $result = $query->execute()->value();
$this->matchesRoughly($result, -45 * 60, 'now - 45 minutes ahead');
- $query = 'SELECT ' . $this->adapter->datetimeDifferenceClause('"LastEdited"', '"Created"') . ' AS "test" FROM "DbDateTimeTest_Team" LIMIT 1';
- $result = DB::query($query)->value();
+ $query = new SQLQuery();
+ $query->select($this->adapter->datetimeDifferenceClause('"LastEdited"', '"Created"') . ' AS "test"')
+ ->from("DbDateTimeTest_Team")
+ ->limit(1);
+
+ $result = $query->execute()->value();
$lastedited = Dataobject::get_one('DbDateTimeTest_Team')->LastEdited;
$created = Dataobject::get_one('DbDateTimeTest_Team')->Created;
$this->matchesRoughly($result, strtotime($lastedited) - strtotime($created), 'age of HomePage record in seconds since unix epoc');
Please sign in to comment.
Something went wrong with that request. Please try again.