From 84f8c78e0520635aff420b778df056ed6b17f829 Mon Sep 17 00:00:00 2001 From: gwoo Date: Thu, 4 Oct 2007 15:54:59 +0000 Subject: [PATCH] updating mysql, postrges tests git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@5717 3807eeeb-6ff5-0310-8944-8be069107fe0 --- .../model/datasources/dbo/dbo_mysql.test.php | 106 ++++++++++++++++- .../datasources/dbo/dbo_postgres.test.php | 107 +++++++++++++++++- 2 files changed, 201 insertions(+), 12 deletions(-) diff --git a/cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php b/cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php index 2297386bd..646621925 100644 --- a/cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php +++ b/cake/tests/cases/libs/model/datasources/dbo/dbo_mysql.test.php @@ -25,8 +25,75 @@ * @license http://www.opensource.org/licenses/mit-license.php The MIT License */ -uses('model' . DS . 'datasources' . DS . 'dbo_source', - 'model' . DS . 'datasources' . DS . 'dbo' . DS . 'dbo_mysql'); +if (!defined('CAKEPHP_UNIT_TEST_EXECUTION')) { + define('CAKEPHP_UNIT_TEST_EXECUTION', 1); +} +require_once LIBS.'model'.DS.'model.php'; +require_once LIBS.'model'.DS.'datasources'.DS.'datasource.php'; +require_once LIBS.'model'.DS.'datasources'.DS.'dbo_source.php'; +require_once LIBS.'model'.DS.'datasources'.DS.'dbo'.DS.'dbo_mysql.php'; + +/** + * Short description for class. + * + * @package cake.tests + * @subpackage cake.tests.cases.libs.model.datasources + */ +class DboMysqlTestDb extends DboMysql { + + var $simulated = array(); + + function _execute($sql) { + $this->simulated[] = $sql; + return null; + } + + function getLastQuery() { + return $this->simulated[count($this->simulated) - 1]; + } +} +/** + * Short description for class. + * + * @package cake.tests + * @subpackage cake.tests.cases.libs.model.datasources + */ +class MysqlTestModel extends Model { + + var $name = 'MysqlTestModel'; + var $useTable = false; + + function find($conditions = null, $fields = null, $order = null, $recursive = null) { + return $conditions; + } + + function findAll($conditions = null, $fields = null, $order = null, $recursive = null) { + return $conditions; + } + + function schema() { + return new Set(array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'client_id' => array('type' => 'integer', 'null' => '', 'default' => '0', 'length' => '11'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'login' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'passwd' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'addr_1' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'addr_2' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '25'), + 'zip_code' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'city' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'country' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'phone' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'fax' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'url' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'email' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'comments' => array('type' => 'text', 'null' => '1', 'default' => '', 'length' => ''), + 'last_login'=> array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => ''), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + )); + } +} /** * The test class for the DboMysql * @@ -53,7 +120,7 @@ class DboMysqlTest extends UnitTestCase { $skip = false; } $this->skipif ($skip, 'Mysql not installed'); - } + } /** * Sets up a Dbo class instance for testing @@ -62,8 +129,11 @@ class DboMysqlTest extends UnitTestCase { * @access public */ function setUp() { - $this->Db =& new DboMysql(array()); - $this->Db->fullDebug = 0; + require_once r('//', '/', APP) . 'config/database.php'; + $config = new DATABASE_CONFIG(); + $this->Db =& new DboMysqlTestDb($config->default, false); + $this->Db->fullDebug = false; + $this->model = new MysqlTestModel(); } /** * Sets up a Dbo class instance for testing @@ -80,7 +150,31 @@ class DboMysqlTest extends UnitTestCase { * @return void * @access public */ - function testValue() { + function testQuoting() { + + $result = $this->Db->fields($this->model); + $expected = array( + 'MysqlTestModel`.`id` AS `MysqlTestModel__0`', + '`MysqlTestModel`.`client_id` AS `MysqlTestModel__1`', + '`MysqlTestModel`.`name` AS `MysqlTestModel__2`', + '`MysqlTestModel`.`login` AS `MysqlTestModel__3`', + '`MysqlTestModel`.`passwd` AS `MysqlTestModel__4`', + '`MysqlTestModel`.`addr_1` AS `MysqlTestModel__5`', + '`MysqlTestModel`.`addr_2` AS `MysqlTestModel__6`', + '`MysqlTestModel`.`zip_code` AS `MysqlTestModel__7`', + '`MysqlTestModel`.`city` AS `MysqlTestModel__8`', + '`MysqlTestModel`.`country` AS `MysqlTestModel__9`', + '`MysqlTestModel`.`phone` AS `MysqlTestModel__10`', + '`MysqlTestModel`.`fax` AS `MysqlTestModel__11`', + '`MysqlTestModel`.`url` AS `MysqlTestModel__12`', + '`MysqlTestModel`.`email` AS `MysqlTestModel__13`', + '`MysqlTestModel`.`comments` AS `MysqlTestModel__14`', + '`MysqlTestModel`.`last_login` AS `MysqlTestModel__15`', + '`MysqlTestModel`.`created` AS `MysqlTestModel__16`', + '`MysqlTestModel`.`updated` AS `MysqlTestModel__17`' + ); + $this->assertEqual($result, $expected); + $expected = 1.2; $result = $this->Db->value(1.2, 'float'); $this->assertIdentical($expected, $result); diff --git a/cake/tests/cases/libs/model/datasources/dbo/dbo_postgres.test.php b/cake/tests/cases/libs/model/datasources/dbo/dbo_postgres.test.php index c6f9c040a..4fd6b8aa7 100644 --- a/cake/tests/cases/libs/model/datasources/dbo/dbo_postgres.test.php +++ b/cake/tests/cases/libs/model/datasources/dbo/dbo_postgres.test.php @@ -25,8 +25,75 @@ * @license http://www.opensource.org/licenses/mit-license.php The MIT License */ -uses('model' . DS . 'datasources' . DS . 'dbo_source', - 'model' . DS . 'datasources' . DS . 'dbo' . DS . 'dbo_postgres'); +if (!defined('CAKEPHP_UNIT_TEST_EXECUTION')) { + define('CAKEPHP_UNIT_TEST_EXECUTION', 1); +} +require_once LIBS.'model'.DS.'model.php'; +require_once LIBS.'model'.DS.'datasources'.DS.'datasource.php'; +require_once LIBS.'model'.DS.'datasources'.DS.'dbo_source.php'; +require_once LIBS.'model'.DS.'datasources'.DS.'dbo'.DS.'dbo_postgres.php'; + +/** + * Short description for class. + * + * @package cake.tests + * @subpackage cake.tests.cases.libs.model.datasources + */ +class DboPostgresTestDb extends DboPostgres { + + var $simulated = array(); + + function _execute($sql) { + $this->simulated[] = $sql; + return null; + } + + function getLastQuery() { + return $this->simulated[count($this->simulated) - 1]; + } +} +/** + * Short description for class. + * + * @package cake.tests + * @subpackage cake.tests.cases.libs.model.datasources + */ +class PostgresTestModel extends Model { + + var $name = 'PostgresTestModel'; + var $useTable = false; + + function find($conditions = null, $fields = null, $order = null, $recursive = null) { + return $conditions; + } + + function findAll($conditions = null, $fields = null, $order = null, $recursive = null) { + return $conditions; + } + + function schema() { + return new Set(array( + 'id' => array('type' => 'integer', 'null' => '', 'default' => '', 'length' => '8'), + 'client_id' => array('type' => 'integer', 'null' => '', 'default' => '0', 'length' => '11'), + 'name' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'login' => array('type' => 'string', 'null' => '', 'default' => '', 'length' => '255'), + 'passwd' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'addr_1' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'addr_2' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '25'), + 'zip_code' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'city' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'country' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'phone' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'fax' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'url' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '255'), + 'email' => array('type' => 'string', 'null' => '1', 'default' => '', 'length' => '155'), + 'comments' => array('type' => 'text', 'null' => '1', 'default' => '', 'length' => ''), + 'last_login'=> array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => ''), + 'created' => array('type' => 'date', 'null' => '1', 'default' => '', 'length' => ''), + 'updated' => array('type' => 'datetime', 'null' => '1', 'default' => '', 'length' => null) + )); + } +} /** * The test class for the DboPostgres * @@ -52,8 +119,9 @@ class DboPostgresTest extends UnitTestCase { if(function_exists('pg_connect')) { $skip = false; } - $this->skipif ($skip, 'Postgres not installed'); + $this->skipif (true, 'Postgres not installed'); } + /** * Sets up a Dbo class instance for testing * @@ -61,8 +129,11 @@ class DboPostgresTest extends UnitTestCase { * @access public */ function setUp() { - $this->Db =& new DboPostgres(array()); - $this->Db->fullDebug = 0; + require_once r('//', '/', APP) . 'config/database.php'; + $config = new DATABASE_CONFIG(); + $this->Db =& new DboPostgresTestDb($config->default, false); + $this->Db->fullDebug = false; + $this->model = new PostgresTestModel(); } /** * Sets up a Dbo class instance for testing @@ -79,7 +150,31 @@ class DboPostgresTest extends UnitTestCase { * @return void * @access public */ - function testValue() { + function testQuoting() { + + $result = $this->Db->fields($this->model); + $expected = array( + 'PostgresTestModel`.`id` AS `PostgresTestModel__0`', + '`PostgresTestModel`.`client_id` AS `PostgresTestModel__1`', + '`PostgresTestModel`.`name` AS `PostgresTestModel__2`', + '`PostgresTestModel`.`login` AS `PostgresTestModel__3`', + '`PostgresTestModel`.`passwd` AS `PostgresTestModel__4`', + '`PostgresTestModel`.`addr_1` AS `PostgresTestModel__5`', + '`PostgresTestModel`.`addr_2` AS `PostgresTestModel__6`', + '`PostgresTestModel`.`zip_code` AS `PostgresTestModel__7`', + '`PostgresTestModel`.`city` AS `PostgresTestModel__8`', + '`PostgresTestModel`.`country` AS `PostgresTestModel__9`', + '`PostgresTestModel`.`phone` AS `PostgresTestModel__10`', + '`PostgresTestModel`.`fax` AS `PostgresTestModel__11`', + '`PostgresTestModel`.`url` AS `PostgresTestModel__12`', + '`PostgresTestModel`.`email` AS `PostgresTestModel__13`', + '`PostgresTestModel`.`comments` AS `PostgresTestModel__14`', + '`PostgresTestModel`.`last_login` AS `PostgresTestModel__15`', + '`PostgresTestModel`.`created` AS `PostgresTestModel__16`', + '`PostgresTestModel`.`updated` AS `PostgresTestModel__17`' + ); + $this->assertEqual($result, $expected); + $expected = 1.2; $result = $this->Db->value(1.2, 'float'); $this->assertIdentical($expected, $result);