diff --git a/tests/DataDict/OracleTestCase.php b/tests/DataDict/OracleTestCase.php index bee55b3e7..d10fec017 100644 --- a/tests/DataDict/OracleTestCase.php +++ b/tests/DataDict/OracleTestCase.php @@ -20,7 +20,7 @@ */ /** - * Doctrine_DataDict_Mysql_TestCase + * Doctrine_DataDict_Oracle_TestCase * * @package Doctrine * @author Konsta Vesterinen diff --git a/tests/DataDict/PgsqlTestCase.php b/tests/DataDict/PgsqlTestCase.php index 71cf83a06..ff9424bff 100644 --- a/tests/DataDict/PgsqlTestCase.php +++ b/tests/DataDict/PgsqlTestCase.php @@ -1,11 +1,146 @@ . + */ + +/** + * Doctrine_DataDict_Oracle_TestCase + * + * @package Doctrine + * @author Konsta Vesterinen + * @license http://www.opensource.org/licenses/lgpl-license.php LGPL + * @category Object Relational Mapping + * @link www.phpdoctrine.com + * @since 1.0 + * @version $Revision$ + */ class Doctrine_DataDict_Pgsql_TestCase extends Doctrine_UnitTestCase { - - public function getDeclaration($type) { return $this->dataDict->getPortableDeclaration(array('type' => $type, 'name' => 'colname', 'length' => 2, 'fixed' => true)); } - public function testGetPortableDeclarationSupportsIntegers() { + public function testGetPortableDeclarationForUnknownNativeTypeThrowsException() { + try { + $this->dataDict->getPortableDeclaration(array('type' => 'some_unknown_type')); + $this->fail(); + } catch(Doctrine_DataDict_Pgsql_Exception $e) { + $this->pass(); + } + } + public function testGetPortableDeclarationSupportsNativeBlobTypes() { + $type = $this->dataDict->getPortableDeclaration(array('type' => 'blob')); + + $this->assertEqual($type, array(array('blob'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'tinyblob')); + + $this->assertEqual($type, array(array('blob'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'mediumblob')); + + $this->assertEqual($type, array(array('blob'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'longblob')); + + $this->assertEqual($type, array(array('blob'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'bytea')); + + $this->assertEqual($type, array(array('blob'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'oid')); + + $this->assertEqual($type, array(array('blob', 'clob'), null, null, null)); + } + public function testGetPortableDeclarationSupportsNativeTimestampTypes() { + $type = $this->dataDict->getPortableDeclaration(array('type' => 'timestamp')); + + $this->assertEqual($type, array(array('timestamp'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'datetime')); + + $this->assertEqual($type, array(array('timestamp'), null, null, null)); + } + public function testGetPortableDeclarationSupportsNativeDecimalTypes() { + $type = $this->dataDict->getPortableDeclaration(array('type' => 'decimal')); + + $this->assertEqual($type, array(array('decimal'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'money')); + + $this->assertEqual($type, array(array('decimal'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'numeric')); + + $this->assertEqual($type, array(array('decimal'), null, null, null)); + } + public function testGetPortableDeclarationSupportsNativeFloatTypes() { + $type = $this->dataDict->getPortableDeclaration(array('type' => 'float')); + + $this->assertEqual($type, array(array('float'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'double')); + + $this->assertEqual($type, array(array('float'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'real')); + + $this->assertEqual($type, array(array('float'), null, null, null)); + } + public function testGetPortableDeclarationSupportsNativeYearType() { + $type = $this->dataDict->getPortableDeclaration(array('type' => 'year')); + + $this->assertEqual($type, array(array('integer', 'date'), null, null, null)); + } + public function testGetPortableDeclarationSupportsNativeDateType() { + $type = $this->dataDict->getPortableDeclaration(array('type' => 'date')); + + $this->assertEqual($type, array(array('date'), null, null, null)); + } + public function testGetPortableDeclarationSupportsNativeTimeType() { + $type = $this->dataDict->getPortableDeclaration(array('type' => 'time')); + + $this->assertEqual($type, array(array('time'), null, null, null)); + } + public function testGetPortableDeclarationSupportsNativeStringTypes() { + $type = $this->dataDict->getPortableDeclaration(array('type' => 'text')); + + $this->assertEqual($type, array(array('string', 'clob'), null, null, null)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'varchar', 'length' => 1)); + + $this->assertEqual($type, array(array('string', 'boolean'), 1, null, false)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'unknown', 'length' => 1)); + + $this->assertEqual($type, array(array('string', 'boolean'), 1, null, true)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'char', 'length' => 1)); + + $this->assertEqual($type, array(array('string', 'boolean'), 1, null, true)); + + $type = $this->dataDict->getPortableDeclaration(array('type' => 'bpchar', 'length' => 1)); + + $this->assertEqual($type, array(array('string', 'boolean'), 1, null, true)); + } + public function testGetPortableDeclarationSupportsNativeIntegerTypes() { + $type = $this->dataDict->getPortableDeclaration(array('type' => 'smallint')); + $this->assertEqual($this->getDeclaration('smallint'), array(array('integer', 'boolean'), 2, false, null)); $this->assertEqual($this->getDeclaration('int2'), array(array('integer', 'boolean'), 2, false, null)); @@ -20,7 +155,7 @@ class Doctrine_DataDict_Pgsql_TestCase extends Doctrine_UnitTestCase { $this->assertEqual($this->getDeclaration('bigserial'), array(array('integer'), 8, false, null)); $this->assertEqual($this->getDeclaration('serial8'), array(array('integer'), 8, false, null)); } - public function testGetPortableDeclarationSupportsBooleans() { + public function testGetPortableDeclarationSupportsNativeBooleanTypes() { $this->assertEqual($this->getDeclaration('bool'), array(array('boolean'), 1, false, null)); $this->assertEqual($this->getDeclaration('boolean'), array(array('boolean'), 1, false, null)); }