Add database tests for INSERT/SELECT date format.
This commit is contained in:
parent
786017c247
commit
bd1163b7d5
|
@ -178,4 +178,25 @@
|
|||
</declaration>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<name>*dbprefix*timestamp</name>
|
||||
<declaration>
|
||||
<field>
|
||||
<name>id</name>
|
||||
<autoincrement>1</autoincrement>
|
||||
<type>integer</type>
|
||||
<default>0</default>
|
||||
<notnull>true</notnull>
|
||||
<length>4</length>
|
||||
</field>
|
||||
|
||||
<field>
|
||||
<name>timestamptest</name>
|
||||
<type>timestamp</type>
|
||||
<default></default>
|
||||
<notnull>false</notnull>
|
||||
</field>
|
||||
</declaration>
|
||||
</table>
|
||||
|
||||
</database>
|
||||
|
|
|
@ -75,4 +75,25 @@
|
|||
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<name>*dbprefix*timestamp</name>
|
||||
<declaration>
|
||||
<field>
|
||||
<name>id</name>
|
||||
<autoincrement>1</autoincrement>
|
||||
<type>integer</type>
|
||||
<default>0</default>
|
||||
<notnull>true</notnull>
|
||||
<length>4</length>
|
||||
</field>
|
||||
|
||||
<field>
|
||||
<name>timestamptest</name>
|
||||
<type>timestamp</type>
|
||||
<default></default>
|
||||
<notnull>false</notnull>
|
||||
</field>
|
||||
</declaration>
|
||||
</table>
|
||||
|
||||
</database>
|
||||
|
|
|
@ -145,4 +145,42 @@ class Test_DB extends PHPUnit_Framework_TestCase {
|
|||
$this->assertEquals(1, $result->numRows());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests whether the database is configured so it accepts and returns dates
|
||||
* in the expected format.
|
||||
*/
|
||||
public function testTimestampDateFormat() {
|
||||
$table = '*PREFIX*'.$this->test_prefix.'timestamp';
|
||||
$column = 'timestamptest';
|
||||
|
||||
$expectedFormat = 'Y-m-d H:i:s';
|
||||
$now = new \DateTime;
|
||||
|
||||
$query = OC_DB::prepare("INSERT INTO `$table` (`$column`) VALUES (?)");
|
||||
$result = $query->execute(array($now->format($expectedFormat)));
|
||||
$this->assertEquals(
|
||||
1,
|
||||
$result,
|
||||
"Database failed to accept dates in the format '$expectedFormat'."
|
||||
);
|
||||
|
||||
$id = OC_DB::insertid($table);
|
||||
$query = OC_DB::prepare("SELECT * FROM `$table` WHERE `id` = ?");
|
||||
$result = $query->execute(array($id));
|
||||
$row = $result->fetchRow();
|
||||
|
||||
$dateFromDb = \DateTime::createFromFormat($expectedFormat, $row[$column]);
|
||||
$this->assertInstanceOf(
|
||||
'\DateTime',
|
||||
$dateFromDb,
|
||||
"Database failed to return dates in the format '$expectedFormat'."
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
$now->format('c u'),
|
||||
$dateFromDb->format('c u'),
|
||||
'Failed asserting that the returned date is the same as the inserted.'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue